النتائج 1 إلى 2 من 2
- 22-12-2015, 12:37 AM #1
تعديلCODEاكسبيرت ارجوك ارجوك ارجوك ان تساعدني مستر دولار
السلام عيكم ورحمة اللة وبركاتة استاذ الكريم مستر دولار
رجو المساعدة في تعديل هذا اكسبيرت
اريد ان اضع مكان هده الدالة
هده الأومر .. .. إعدادات ..... حجم اللوت كل واحد مختلفكود:if(MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber) ==0)
1. إذا كان عدد الأوامر المفتوح شراء 1 والأوامر المفتوح بيع 1 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراء2. إذا كان عدد الأوامر المفتوح شراء 2 والأوامر المفتوح بيع 1 فيتم وضع امر المعلق بيع في نفس السعر الدي فتح فيه صفقةكود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_2,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",MagicNumber,0,Green);
3. إذا كان عدد الأوامر المفتوح شراء 2 والأوامر المفتوح بيع 2 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراءكود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_4,ssl,3,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",MagicNumber,0,Green);
4. إذا كان عدد الأوامر المفتوح شراء 3 والأوامر المفتوح بيع 2 فيتم وضع امر المعلق بيع في نفس السعر الدي فتح فيه صفقة بيعكود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_5,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
5. إذا كان عدد الأوامر المفتوح شراء 3 والأوامر المفتوح بيع 3 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراءكود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_6,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
6. إذا كان عدد الأوامر المفتوح شراء 4 والأوامر المفتوح بيع 3 فيتم وضع امر المعلق بيع في نفس السعر الدي فتح فيه صفقة بيعكود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_7,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
7. إذا كان عدد الأوامر المفتوح شراء 4 والأوامر المفتوح بيع 4 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراءكود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_8,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
8. إذا كان عدد الأوامر المفتوح شراء5 والأوامر المفتوح بيع 4 فيتم وضع امر المعلق بيع في نفس السعر الدي فتح فيه صفقة بيعكود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_9,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
9. إذا كان عدد الأوامر المفتوح شراء 5 والأوامر المفتوح بيع 5 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراءكود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_10,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
10. إذا كان عدد الأوامر المفتوح شراء 6 والأوامر المفتوح بيع 5 فيتم وضع امر المعلق بيع في نفس السعر الدي فتح فيه صفقة بيعكود:gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots_11,PendingPrice,3,PendingPrice-StopLoss*Point,PendingPrice+TakeProfit*Point,"",Magic,0,Green);
11. إذا كان عدد الأوامر المفتوح شراء 6 والأوامر المفتوح بيع 6 فيتم وضع امر المعلق شراء في نفس السعر الدي فتح فيه صفقة شراءكود:gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots_12,PendingPrice,3 ,PendingPrice+StopLoss*Point,PendingPrice-TakeProfit*Point,"",Magic,0,Green);
12. إذا كان عدد الأوامر المفتوح شراء 7 والأوامر المفتوح بيع 6 فيتم وضع امر المعلق بيع في نفس السعر الدي فتح فيه صفقة بيعكود: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);
}
}
الأكثر زيارة
رد مع اقتباس