تمام بدون اخطاء
تمت التجربة ويغلق مع كل تقاطع ، جرب منصة أخرى .
تمام ، العمل صحيح
Printable View
الحمد لله
بانتظار الجديد
يتبقى لدينا تأكيد عدم الدخول اكثر من مرة في الشمعة الواحدة ، في الكود الحالي اذا تم التقاطع ودخلنا صفقة شراء مثلا وكان الهدف او الأستوب صغير وكانت الشمعة طويلة فسيغلق الصفقة ويتح اخرى لأن الشرط لازال قائم ويمكننا من دخول صفقة اخرى بأستخدام كود زمن الشمعة نضعه في شرط البيع وشرط الشراء ولاداعي لأضافته لشروط الأغلاق
ونضع تعريفه مع المتغيراتكود PHP:
&& tnv!=Time[0]
جربو هذه الأضافة وستلاحظون عدم التكراركود PHP:
datetime=tnv;
بعدها إن شاء الله سننتقل الى التريلنج وتحريك الأستوب وتحريك الهدف لنحصل على اقصى ربح .
فعلا أستاذ جميل النتائج إختلفت وهذا هو الإكسيبرت هل هناك أية أخطاء فى الإضافات الجديدة؟
يوجد مشكلة لدي وانه ام يتعرف علي هذا المتغير واعطا خطا
لان datetime
محجوزة للغة وليست هذه فورمتها
زال الخطا بعدازالة = من المتغير datetime
بعد الاطلاع علي اكسبرت اخي سامح
مرفقالاكسبرت
شكرا لك اخي سامح وبانتظار المستر
العفو أخى العزيز و منتظرين التصحيح من الأستاذ جميل
ممتاز فعلا كود المتغير هووانا اخطأت .كود PHP:
datetime tnv;
في هذه المرحلة سنتعلم TrailingStop و TrailingStep و TrailingProfit وهو قليل الأستخدام
إن شاء الله جاهزين ومنتظرينك يا باشا
هذه الدالة التي استخدمها ويستخدمها الكثير ، طبعا سنضعها خارج جسم الأكسبيرت .
ثم نضع شرط الأستدعاء في دالة OnTick() أن يكون قيمة Trailing اكبر من 0 وبالتالي اذا وضعنا 0 فلن تعمل ، والبعض يضع لها خيار فالس وترو .
كود PHP:
void TrailingStopp()
{
for (int i=OrdersTotal()-1; i >= 0; i--)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
double takeprofit = OrderTakeProfit();
if (OrderType() == OP_BUY && Ask - OrderOpenPrice() > TrailingStop*points)
{
if ((OrderStopLoss() < Ask-(TrailingStop+TrailingStep)*points) || (OrderStopLoss()==0))
{
if (TrailingProfit != 0) takeprofit = Ask+(TrailingProfit + TrailingStop)*points;
bool ret1 = OrderModify(OrderTicket(), OrderOpenPrice(), Ask-TrailingStop*points, takeprofit,0, White);
if (ret1 == false)
Print(" Trailing Buy OrderModify() error - , ErrorDescription: ",(GetLastError()));
}
}
if (OrderType() == OP_SELL && OrderOpenPrice() - Bid > TrailingStop*points)
{
if ((OrderStopLoss() > Bid+(TrailingStop+TrailingStep)*points) || (OrderStopLoss()==0))
{
if (TrailingProfit != 0) takeprofit = Bid-(TrailingProfit + TrailingStop)*points;
bool ret2 = OrderModify(OrderTicket(), OrderOpenPrice(), Bid+TrailingStop*points, takeprofit, 0, White);
if (ret2 == false)
Print("Trailing Sell OrderModify() error - , ErrorDescription: ",(GetLastError()));
}
}
}
}
}
ثم نضع في المتغيرات الكود التاليكود PHP:
if(TrailingStop>0) TrailingStopp();
تلقائيا حيأخد القيمة 0 .كود PHP:
extern int TrailingStop,TrailingStep,TrailingProfit;
متى نستفيد من التريلنج ؟؟ نستفيد عندما يكون لدينا اهداف بعيدة نريد مطاردتها وتغيير الأستوب والهدف للحصول على اقصى ربح ، ونستفيد لتقديم الأستوب الى نقطة الدخول حتى نحمي الرصيد اذا انعكس علينا السعر بعد تحرك التريلنج ، اختيار ارقام التريلنج تحتاج الى معرفة طبيعة استراتيجيتك واهدافك وتقييم الأرقام المناسبة لأنها قد تصبح نكبة على الحساب اذا لم نحسن الأستفادة منها .
بعد التجربة ساشرح الأكواد بالتفصيل .
لاحظت كثرة الزيارات للموضوع مع قلة المشاركات مع العلم ان نسبة المشاركات الى الزيارات تعتبر ممتازة و كثير من الأخوة يكتفون بالمشاهدة وبالتالي لايستفيدون من التجربة والصواب والخطأ ، فبدون ان نخطئ لن نتعلم .
هذا الاكسبيرت بعد اضافة التريلينج استوب
بصراحة مؤشري الموفينج طلعت عيني وغلبت فيهم لغاية لما شوفت الاكسبيرت بتاع الاخ سامح وعملت زي
هل هذا الاكسبيرت فيه اخطأ
وما الفرق بين الثلاث تريلينج فى الاعدادات
قمت باضافة دالة الاستدعاء مرتان
مرة
في دالة الشراء
ومرة
في دالة البيع