بعد إذن أستاذ أسامة
هذه الدالة تعود بالبريك إيفن لصفقات الشراء أو صفقات البيع ( حتى لو إختلف حجم اللوت)
كود PHP:
double EVENPRICE (int type){
int total=OrdersTotal();
double nn=0,bb=0;
double factb=0;
for(int i=total-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && OrderType()==type)
{
double op=OrderOpenPrice();
double llot=OrderLots();
double itog=op*llot;
bb=bb+itog;
nn=nn+llot;
factb=bb/nn;
}
}
}
return(factb);
}
وتقوم بإستدعائها في دالة إستارت وإضافة شروطك
(مثلا شرط لو السعر الحالي أكبر من بريك إيفن عقود الشراء +10*Point يغلق العقود + عمل دالة لإغلاق العقود )
--------------------
اما في حالة كان إستخدامك للبريك إيفن لتعديل التيك بروفت والإستوب لوز ستقوم بعمل دالة لتعديلهم
كود PHP:
void ModifyBETP(int type,string Kind){
for (int cnt = OrdersTotal() ; cnt >=0 ; cnt--)
{
double BETP,BESL;
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
double sl=OrderStopLoss();
double tp=OrderTakeProfit();
if (OrderSymbol()==Symbol() && OrderType()==type){
if(type==OP_BUY && Kind=="tp"){
BETP=EVENPRICE(OP_BUY)+100*Point;//100 just an Example, u can make an external Variable for TP
OrderModify(ticket,OrderOpenPrice(),sl,BETP,0);
}
if(type==OP_BUY && Kind=="sl"){
BESL=EVENPRICE(OP_BUY)-100*point;//100 just an Example, u can make an external Variable for SL
OrderModify(ticket,OrderOpenPrice(),BESL,tp,0);
}
if(type==OP_SELL && Kind=="tp"){
BETP=EVENPRICE(OP_SELL)-100*point;
OrderModify(ticket,OrderOpenPrice(),sl,BETP,0);
}
if(type==OP_SELL && Kind=="sl"){
BESL=EVENPRICE(OP_SELL)+100*point;
OrderModify(ticket,OrderOpenPrice(),BESL,tp,0);
}
}
}
}