النتائج 1 إلى 6 من 6
- 14-11-2012, 10:30 AM #1
ارجو المساعدة ولو كانت حتى من المبتدئين مقبولة
السلام عليكم
اريد ان اعرف كيف تضع حلقة للاكسبيرت حيث: كلما اغلق امر يعيد وضع نفس الامر مع نف اوامر اخذ الربح وايقاف الخسارة
- 14-11-2012, 05:34 PM #2
ممكن توضيح اكتر لو سمحت ...
- 16-11-2012, 01:54 AM #3
وعليكم السلام ورحمة الله وبركاته
لو أنك حددت مثلا ماجيك نمبر محدد للأمر ثم ستقوم بالبحث في الصفقات المفتوحه إذا كان الأمر بنفس الماجيك غير موجود يتم فتحه مره أخرى
مثال
كود PHP:bool IsOrderOpen(){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(true);
}
}
return(false);
}
كود PHP:double OrderInfo(string Info_type){
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(Info_type=="TP")return(OrderTakeProfit());
if(Info_type=="SL")return(OrderStopLoss());
}
}
return(0);
}
كود PHP:if(IsOrderOpen()==false){
if(OrderInfo("cmd")==0)
OrderSend(Symbol(),OP_BUY,OrderInfo("Lots"),Ask,3,OrderInfo("SL"),OrderInfo("TP"),"EA",MagicNumber,0,Blue);
if(orderInfo("cmd")==1)
OrderSend(Symbol(),OP_SELL,OrderInfo("Lots"),Bid,3,OrderInfo("SL"),OrderInfo("TP"),"EA",MagicNumber,0,Red);
}
- 18-11-2012, 01:46 AM #4
- 12-12-2012, 11:24 PM #5
- 14-12-2012, 02:04 AM #6
راجع الإكسبرت المرفق
قمت بعمل دالتين لهذا الإكسبرت
الأول للبحث عن الصفقه المفتوحه بإستخدام الكومنت للصفقه
كود PHP:bool CheckOpenedOrders(string comment){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
string com=OrderComment();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(com==comment)return(true);
}
}
return(false);
}
ثم إستخدمت دالة أخرى لفتح الصفقه في حال كان الناتج false
كود PHP:void OpenClosedOrders(int type)
{
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
string comment=OrderComment();double open=OrderOpenPrice();
double lott=OrderLots();double stop=OrderStopLoss();double profit=OrderTakeProfit();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
if(CheckOpenedOrders(comment)==false){
if(type==OP_BUY){
if(Ask>open+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point){
OrderSend(Symbol(),OP_BUYLIMIT,lott,open,3,stop,profit,comment,MagicNumber,0,Green);}
if(Ask<open-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point){
OrderSend(Symbol(),OP_BUYSTOP,lott,open,3,stop,profit,comment,MagicNumber,0,Green);}
}
if(type==OP_SELL){
if(Bid>open+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point){
OrderSend(Symbol(),OP_SELLSTOP,lott,open,3,stop,profit,comment,MagicNumber,0,Green);}
if(Bid<open-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point){
OrderSend(Symbol(),OP_SELLLIMIT,lott,open,3,stop,profit,comment,MagicNumber,0,Green);}
}
}
}
}
}