النتائج 1 إلى 2 من 2
- 22-12-2015, 12:37 AM #1
تعديلCODEاكسبيرت ارجوك ارجوك ارجوك ان تساعدني مستر دولار
السلام عيكم ورحمة اللة وبركاتة استاذ الكريم مستر دولار
رجو المساعدة في تعديل هذا اكسبيرت
اريد ان اضع مكان هده الدالة
كود:if(MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber) ==0)
1. إذا كان عدد الأوامر المفتوح شراء 1 والأوامر المفتوح بيع 1 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراءكود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_2,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",MagicNumber,0,Green);
كود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_4,ssl,3,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",MagicNumber,0,Green);
كود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_5,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_6,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_7,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_8,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_9,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_10,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_11,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_12,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_13,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
كود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_14,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
هدا هو الجز الدي اريد ان اعدله................................................. ..................................
كود:// //////////// //////// //// //////// /////////// ///////////////// ////////Ç if(MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber)==0) { OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES); ssl=OrderStopLoss(); PendingPrice=Bid+Zone*Point; if(OrderType()==OP_BUY && slot<Maxlot) { gT1=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",MagicNumber,0,Green); } if(OrderType()==OP_SELL && slot<Maxlot) { gT1=OrderSend(Symbol(),OP_BUYSTOP,slot,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",MagicNumber,0,Green); } } return(0); } // // ////////// ////////// ///////// // ////////// ////////// ///////// // ////////// ////////// //////// int MyRealOrdersTotal(int Magic) { int c=0; int total=OrdersTotal(); t1=-1; t2=-1; for(int cnt=0; cnt<total; cnt++) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL)) { if(t1==-1) { t1=OrderTicket(); } else { if(t2==-1) { t2=OrderTicket(); } } c++; } } return(c); } // / // ////////// ////////// ///////// // ////////// ////////// //////// int MyPendingOrdersTotal(int Magic) { int c=0; int total=OrdersTotal(); for(int cnt=0; cnt<total; cnt++) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)) { c++; } } return(c); } // / // ////////// ////////// ///////// // ////////// ////////// //////// int DeletePendingOrders(int Magic) { int total=OrdersTotal(); for(int cnt=total-1; cnt>=0; cnt--) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)) { OrderDelete(OrderTicket()); } } return(0); } //+------------------------------------------------------------------+
آخر تعديل بواسطة reki carrillo ، 22-12-2015 الساعة 12:42 AM
- 23-12-2015, 01:04 AM #2
الفكره في أنك تريد زيادة حجم اللوت في كل مره حسب عدد الصفقات أليس كذلك ؟
لماذا لا تقوم بعمل دالة تعود بحجم اللوت حسب عدد الصفقات المفتوحه
مثال
دالة لحساب مجموع الصفقات المفتوحه
كود PHP:int TotalOrders(int type=-1)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&(OrderType()==type||type==-1)){
cnt++;
}
}
}
return(cnt);
}
مثال
كود PHP:double NextLot()
{
switch(TotalOrders())
{
case 2:return (Lots_3);
case 3:return(Lots_4);
case 4:return(Lots_5);
case 5:return(Lots_6);
}
}