النتائج 1,141 إلى 1,155 من 10285
الموضوع: موضوع مخصص للأسئلة البرمجية
- 17-06-2011, 01:05 PM #1141
اخ اسامه... يمكن تقولي افضل طرق المضاعفات التي وجدتها حسب رايك اكثر امنا وربحا لانه طرق المضاعفات كثيره؟
- 17-06-2011, 07:41 PM #1142
الأخ الفاضل أسامه
لقد حاولت تعديل البرمجة للاكسبيرت المرفق اخذ الصيغة من اكسبيرت أخر أعجبني فيه متابعة ألصفقه وتنقل الربح عبر مسافة بالنقاط لأخر شمعة ، ولكن هناك مشكلة ظهرت .
والله الموفق
الكود
//|---------trailing stop
void MoveTrailingStop()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOp enPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<Normal izeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blu e);
return(0);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingSte p*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(Norma lizeDouble(Ask+TrailingStop*point,digits)))||(Orde rStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+TrailingStop*point,digits),OrderTakeP rofit(),0,Red);
return(0);
}
}
}
}
}
}
- 18-06-2011, 07:32 PM #1143
قم بعمل باك تست بالبطيء وتأكد من التريلينج ستيب ولن تجدها معطله مع العلم أنه يجب أيضا أن تقوم بتحديد قيمة للتريينج ستوب حتى يعمل التريلينج ستيب
نعم البريك أوت هو البريك إيفن وجميعها مسميات شائعه تم إستخدامها ولكن يمكنك تسمتها كما تريد فربما من يقوم بتطوير الكود بطريقه معينه ويترك الإسم كما هو وبعض المنصات يمكنك وضع التريلينج ستوب ثم إغلاق المنصه وسوف يعمل بدون مشاكل
لكن كثير من المنصات يجب أن تترك الميتاتريدر يعمل لكن لا أعلم أي شركه بالضبط تستخدم هذه الطريقه لأني لم أجربها
بالنسبة للتريلينج ستيب والبريك إيفن فهي غير موجوده في الميتاتريدر يوجد فقط التريلينج ستوب
بالنسبة لإدارة المال فلكل مبرمج يستخدم طريقه محدد لإدارة المال
في هذا الكود نقوم بحساب نسبة المخاطره بناء على المارجن المتاح ونسبة المخاطره التي يتم تحديدها في المتغير RiskPercent حسب ما تريد
مثلا إذا كان المارجن المتاح 10000 ونسبة المخاطره 2 %
فسوف تصبح 10000*2 / 100000 = 0.2 لوت
- 18-06-2011, 07:35 PM #1144
أفضل طرق المضاعفات
المضاعفات العكسيه إذا إستطعت إختيار التوقيت المناسب لتشغيلها
http://www.myfxbook.com/members/Arab...s-ea-v5/110648
والمضاعفات بناء على التشبع إذا إستطعت إيجاد الإعدادات الصحيحه لكل عمله
http://www.myfxbook.com/members/Arab...i-stoch/106783
والمضاعفات مع الهيدج
- 18-06-2011, 07:40 PM #1145
أرجو أن توضح أكثر المشكله التي ظهرت عندك
بالنسبة لهذا الكود فيوجد بها فقط أخطاء إملائيه بهذا الشكل صحيحه
كود PHP:void MoveTrailingStop()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
return(0);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
كود PHP:double B= (Open[2]>Close[2]&& Open[1]>Close[2] || Open[1]<Close[2] && Close[1]>Open[1]);
double S= (Open[2]<Close[2]&& Open[1]>Close[2] || Open[1]<Close[2] && Close[1]<Open[1]);
- 18-06-2011, 08:29 PM #1146
شكرا" اخي
هناك مشكلة عند التفعيل
Compiling 'raidy EA-M.mq4'...
'TrailingStep' - variable not defined C:\Documents and Settings\d\ÓØÍ ÇáãßÊÈ\raidy EA-M.mq4 (184, 40)
'TrailingStep' - variable not defined C:\Documents and Settings\d\ÓØÍ ÇáãßÊÈ\raidy EA-M.mq4 (195, 40)
2 error(s), 0 warning(s)
أما عن استفسارك عن الكود الثاني فهو المفروض يقري الشمعة الأولى عندما يوصل السوق إلى أعلى مستوى أو اقل مستوى مرتبطا" بمؤشر CCI ويبدأ يأخذ الاردر عند إغلاق الشمعة الثانية المتجه عكس الشمعة الأولى.
وإذا أرت إيضاح أكثر شرفنا باطلاعك على الموضوع https://forum.arabictrader.com/t121961.html
- 18-06-2011, 08:34 PM #1147
شكرا" اخي
هناك مشكلة عند التفعيل
Compiling 'raidy EA-M.mq4'...
'TrailingStep' - variable not defined C:\Documents and Settings\d\ÓØÍ ÇáãßÊÈ\raidy EA-M.mq4 (184, 40)
'TrailingStep' - variable not defined C:\Documents and Settings\d\ÓØÍ ÇáãßÊÈ\raidy EA-M.mq4 (195, 40)
2 error(s), 0 warning(s)
أما عن استفسارك عن الكود الثاني فهو المفروض يقري الشمعة الأولى عندما يوصل السوق إلى أعلى مستوى أو اقل مستوى مرتبطا" بمؤشر CCI ويبدأ يأخذ الاردر عند إغلاق الشمعة الثانية المتجه عكس الشمعة الأولى.
وإذا أرت إيضاح أكثر شرفنا باطلاعك على الموضوع https://forum.arabictrader.com/t121961.html
- 18-06-2011, 09:10 PM #1148
- 18-06-2011, 10:15 PM #1149بالنسبة لإدارة المال فلكل مبرمج يستخدم طريقه محدد لإدارة المال
في هذا الكود نقوم بحساب نسبة المخاطره بناء على المارجن المتاح ونسبة المخاطره التي يتم تحديدها في المتغير RiskPercent حسب ما تريد
مثلا إذا كان المارجن المتاح 10000 ونسبة المخاطره 2 %
فسوف تصبح 10000*2 / 100000 = 0.2 لوت
هذه المواقع بالانجليزي لم افهم منها ماذاتقصد.
بالنسبه لاداره المال مثلا قمت بتحديد lots=3 ولكن حسب كود اداره المال لايمكن سواء 1.5 لوت فقط . ماذا ينفذ الاكسبيرت عند هذه الحاله؟ وما الفائده اذن من المتغير الخارجي lots?
عندعمل باك تيست اجد هذه absolute drawdown- maximal drawdown-relativ drawdown
كيف افرق بين وما هو الاهم منهم absolute drawdown- maximal drawdown-relativ drawdown؟
اي قيمه لdrawdown يكون عندها الاكسبيرت امن ومقبول ؟يعني كم بالمائه او كم من المبلغ المودع؟آخر تعديل بواسطة al_naser ، 18-06-2011 الساعة 10:39 PM
- 18-06-2011, 11:29 PM #1150
اخ مستر كان عندي اقتراح لو ماعندك مانع.
ياريت تضع كل مايحتاجه المبرمج من اكواد البرمجه في موضوع خاص ومثبت حتى تعم الفائده وتوفر علينا وعليك.
- 19-06-2011, 01:33 AM #1151
ايش فائده هذا الاكود في حقك الاكسبيرتات
كود PHP:bool LastOrderProfit(){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()){
if(OrderProfit()>0){
return(true);
}
return(false);
}
}
return(true);
}
int LastOrdertype(){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
int t=OrderType();
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()){
return(t);
}
}
return(2);
}
double LastLot(){
double L;
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
L=OrderLots();
}
}
return(L);
}
bool LP(){
for(int i=OrdersHistoryTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderProfit()>=0)return(true);
else return(false);
}
}
return(true);
}
int SecondOrdertype(){
int V;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
int t=OrderType();double p=OrderProfit();
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()){
V++;
if(V==2&&p<0)return(t);
}
}
return(2);
}
آخر تعديل بواسطة al_naser ، 19-06-2011 الساعة 02:01 AM
- 20-06-2011, 01:32 AM #1152
المتغير الخارجي lots يستخدم في حال أردت تحديد حجم اللوت بشكل يدوي وليس له علاقة بخاصية إدارة المال فإذا قمت بتعطيل خاصية إدارة المال وحددت حجم اللوت يدويا فإن لم يكون هناك إمكانية لفتح الصفقه فلن يفتح الإكسبرت الصفقه أما في حال تفعيل خاصية إدارة المال ففي هذه الحاله يتجاهل الإكسبرت حجم اللوت اليدوي الذي قمت بتحديده في المتغير lots ثم يتم تحديد حجم اللوت بناء على المارجن المتاح كما تم شرحه سابقا
بالنسبة للسؤال الثاني فسوف تجد شرح بالتفصيل لمعنى الدروداون في هذا الموضوع
https://forum.arabictrader.com/t106518.html
أما عن نسبة الدروداون المسموحه ففي رأيي أن لا تزيد نسبة الدروداون عن 30% وأيضا تعتبر نسبة كبيره وكلما قلت كلما زادت قوة الإكسبرت وزادة نسبة نجاح صفقاته
- 20-06-2011, 01:45 AM #1153
لا يجب أن أفعل هذا يا أخي الكريم لأني بهذه الطريقه سوف أحول المتعلمين والباحثين عن التعلم إلى مجرد ناسخين أكواد وحافظين وهذا خاطئ فيجب أن تتعلم الأساسيات أولا ثم بعد ذلك مع البحث في الإكسبرت والإطلاع على الأكواد سوف تجد الموضوع ممتع وسهل ثم بعد ذلك ستجد أنك تقوم بنفسك ببرمجة أي دالة تحتاجها في الإكسبرت
الداله الأولى LastOrderProfit تقوم بمعرفة آخر صفقة هي أغلقت رابحه أم خاسره فإذا كانت خاسره تصبح قيمة الداله فولس وإذا كانت رابحه تصبح قيمة الداله ترو
الداله الثانيه LastOrderType تقوم بمعرفة آخر نوع صفقة أغلقت هل هي شراء أم بيع
الداله الثالثه LastLot تقوم بمعرفة حجم لوت لآخر صفقه أغلقت
الداله الرابعه LP هي أيضا لمعرفة آخر صفقة أغلقت على ربح أو خساره
الداله الخامسه SecondOrderType لمعرفة نوع الصفقه قبل الأخيره التي أغلقت
هذا شرح لأحد الدوال وسوف تجد أن باقي الدوال بنفس الأسلوب تم عملها
كود PHP:bool LastOrderProfit(){ // أولا تعريف الداله وهي من نوع دالة متغير منطقي
for(int i=OrdersHistoryTotal();i>=0;i--){ // نستخدم الحلقه للبحث في الصفقات التي أغلقت
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); // OrderSelect يتم إختيار الصفقه بإستخدام الداله
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()){ // نقوم بالمقارنه هل الماجيك نمبر لهذه الصفقه هو نفس الماجيك نمبر للإكسبرت ونفس العمله
if(OrderProfit()>0){ // في حال كان الربح للصفقه أكبر من صفرأي على مكسب
return(true); // تعود الداله بالقيمة ترو
}
return(false); // وإلا تعود الداله بالقيمه فولس
}
}
return(true); // في لم يكن هناك أي صفقات تم فتحها أيضا تعود الداله بالقيمه ترو
}
- 20-06-2011, 12:44 PM #1154
مشكلة عدم قدرة الاكسبرت فتح صفقة بسبب انتهاء الوقت
اخي الحبيب مستر دولار
واجهتني مشكلة عدم قدرة الاكسبرت فتح صفقة بسبب انتهاء الوقت
هل استطيع اعادة طلب فتح الصفقة اذا فشل في فتحها في المرة الاولى
لك مني كل تحية وتقدير
Failed Trade timeout
آخر تعديل بواسطة محمد بن حامد ، 20-06-2011 الساعة 12:48 PM
- 20-06-2011, 08:03 PM #1155
نعم بنفس الطريقة التي نحل بها مشكلة عدم فتح الصفقه لأي سبب آخر يمكننا إستخدامها
مثال :
كود PHP:int ticket;
ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),3*Q,SL,TP,"MR.dollar EA",MagicNumber,0,Blue);
while(ticket<0)ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),3*Q,SL,TP,"MR.dollar EA",MagicNumber,0,Blue);
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM