السلام عليكم
شوف اخي الكريم المؤشر الذي ارفقه الدكتور اسامة من اروع ما رأيت في البريك ايفن يمكنك استخدامه بكامل السهولة مع اي اكسبريت تريد ولذلك
ارفقه الاخ اسامة وهو مفتوح المصدر , لا حظ بمجرد وضعه على الشارت يعطيك على اليمين سعر البريك ايفن وعلى يساره الربح بالدولار انظر الصورة
الملف المرفق 454494
من داخل المؤشر احفظ قيمة BreakEven وكذلك Equity باستخدام الدالتين الظريفتن
كود PHP:
GlobalVariableSet() ;
GlobalVariableGet() ;
ثم تسترجع القيم من اجعل عمل شرط تحرك البريك ايفن مثال من داخل المؤشر
كود PHP:
GlobalVariableSet("BreakEven_Equity"+Symbol()+AccountName(),sum) ;
GlobalVariableSet("BreakEven_Level"+Symbol()+AccountName(),level0) ;
sum هي قيمة Equity و level0 هي قيمة البريك ايفن
ثم من داخل الاكسبريت اعمل الاتي لاسترجاع القيم هكذا بكل يسر
كود PHP:
iEquity = GlobalVariableGet("BreakEven_Equity"+Symbol()+AccountName()) ;
BreakLevel = GlobalVariableGet("BreakEven_Level"+Symbol()+AccountName()) ;
مع تعرف المتغيرين iEquity و BreakLevel كمتغيرين عامين
ثم بعد ذالك دالة الموديفاي وانا اكتبها في الغالب بهذا الشكل
كود PHP:
void ModifyStopLoss(double stoploss) {
bool ret;
ret = OrderModify(OrderTicket(),OrderOpenPrice(),stoploss,OrderTakeProfit(),0,CLR_NONE);
if (ret == false)
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
ثم اخر مرحلة كتابة شرط تحريك الستوب لوز مع استدعاء الدالة ModifyStopLoss
كود PHP:
void BreakEven()
{
double price = BreakLevel ;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(Ask > OrderOpenPrice() && iEquity >=0 && OrderStopLoss()< OrderOpenPrice() )
if(OrderType()==OP_BUY)
ModifyStopLoss(BreakLevel) ;
if(OrderType()==OP_SELL)
if(Bid < OrderOpenPrice() && iEquity >=0 && OrderStopLoss()> OrderOpenPrice() )
ModifyStopLoss(BreakLevel) ;
}
}
اظن ان الامور واضحة هذا ما استطيع فعله اخي الكريم وتقبل خالص ودي