عرض مشاركة واحدة
قديم 2011 - 06 - 30, 17:13 رقم المشاركة : 1
alwaseem
ممنوع

الصورة الرمزية alwaseem
 
تاريخ التسجيل : 23 - 6 - 2011
رقم العضوية : 12161
المواضيع : 45
مجموع المشاركات : 686
بمعدل : 0.30 مشاركة في اليوم
نقاط التقييم : 10
معدل تقييم المستوى : alwaseem في بداية طريقه الى الشهره
آخر تواجد : 2017 - 04 - 29 (11:52)

معلومات إضافية
الجنس: الجنس: male
علم الدولة : علم الدولة Saudi Arabia
المزاج : المزاج rayg
alwaseem غير متواجد حالياً

افتراضي ممكن شرح اين احدد قيمة الربح في اغلاق الصفقات الالي

هذا كود سكربت اغلاق الصفقات الالي وين في الكود احط حد الربح ماعرفت وين القيمة اللي اكتبة عندها
لو كنت فاتح عشرات الصفقات هل اخذ مجموع الربح واضعة في السكربت؟
كود بلغة HTML:
/+------------------------------------------------------------------+
//|                                                  CloseAll-PL.mq4 |
//|                                                                  |
//+------------------------------------------------------------------+
 
extern int Profit=0;
double myProfit=0;
int EnableClose=0
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
myProfit=CalcProfit();
ShowInit();
 
if (EnableClose==1 && CntOrdAll(OP_BUY)==0 && CntOrdAll(OP_SELL)==0 && CntOrdAll(OP_BUYSTOP)==0 
   && CntOrdAll(OP_BUYLIMIT)==0 && CntOrdAll(OP_SELLSTOP)==0 && CntOrdAll(OP_SELLLIMIT)==0) {
   EnableClose=0; // Before Debug: EnableClose=1 
}
if ( (Profit>0 && myProfit>=Profit) || (Profit<0 && myProfit<=Profit)) {
 EnableClose=1;
}    
 
CloseAll();
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
void CloseAll () {   // #function of CloseAll
if (EnableClose==1) {  // #if Close is yes
int _total=OrdersTotal(); // number of lots or trades  ????
int _ordertype;// order type   
if (_total==0) {return;}  // if total==0
int _ticket; // ticket number
double _priceClose;// price to close orders;
for(int _i=_total-1;_i>=0;_i--)
      {  //# for loop
      if (OrderSelect(_i,SELECT_BY_POS))
         { //# if 
         _ordertype=OrderType();
         _ticket=OrderTicket();
         switch(_ordertype)
            {  //# switch
     case OP_BUYLIMIT:
                     OrderDelete(OrderTicket());
     case OP_BUYSTOP:
                        OrderDelete(OrderTicket());
       case OP_BUY:
               // close buy                
               _priceClose=MarketInfo(OrderSymbol(),MODE_BID);
               Print("Close on ",_i," position order with ticket ¹",_ticket);
               OrderClose(_ticket,OrderLots(),_priceClose,3,Red);
               break;
     case OP_SELLLIMIT:
                     OrderDelete(OrderTicket());
     case OP_SELLSTOP:
                       OrderDelete(OrderTicket());
       case OP_SELL:
               // close sell
               _priceClose=MarketInfo(OrderSymbol(),MODE_ASK);
               Print("Close on ",_i," position order with ticket ¹",_ticket);
               OrderClose(_ticket,OrderLots(),_priceClose,3,Red);
               break;
            default:
               // values from  1 to 5, deleting pending orders
//               Print("Delete on ",_i," position order with ticket ¹",_ticket);
//               OrderDelete(_ticket);  
               break;
            }    //# switch
         }  // # if 
}  // # for loop
} // #if Close yes
return;
} // #function of CloseAll
 
void ShowInit() {
   string sComment   = "";
   string sp         = "-----------------------------------------------------\n";
   string NL         = "\n";
   sComment = sp;
   sComment = sComment + "CloseByPL will close all trades at: " + Profit + NL;
   sComment = sComment + sp;
   sComment = sComment + "Current P/L="+DoubleToStr(myProfit,0)+ NL;
   Comment(sComment);
return;
}
double CalcProfit() {
double _sum=0;
int _total=OrdersTotal(); // number of lots  
 
if (_total==0) {return (0);}
_sum=AccountProfit();
return(_sum);
}
 
int CntOrdAll(int Type) {
//return number of orders with specific parameters
int _CntOrd;
_CntOrd=0;
for(int i=0;i<OrdersTotal();i++)
{
   OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
   if (OrderType()==Type) _CntOrd++;
}
return(_CntOrd);
}







رد مع اقتباس