होम सिस्टम ट्रेडिंग पोस्ट

ड्रॉडाउन पहुँचने पर सभी ऑर्डर बंद करें - मेटाट्रेडर 4 के लिए सरल स्ट्रेटेजी

संलग्नक
14582.zip (2.27 KB, डाउनलोड 0 बार)

क्या आप अपने ट्रेडिंग अकाउंट को सुरक्षित रखने के लिए एक आसान तरीका खोज रहे हैं? यदि आपकी ट्रेडिंग में ड्रॉडाउन एक निश्चित प्रतिशत तक पहुँच जाता है, तो आप सभी ऑर्डर को स्वचालित रूप से बंद कर सकते हैं। यह कोड आपको यही सुविधा प्रदान करता है।

बस आपको ऑर्डर का मैजिक नंबर डालना है (यदि सभी ऑर्डर को कंट्रोल करना है तो 0 डालें) और उस अधिकतम ड्रॉडाउन प्रतिशत को सेट करना है, जिस पर कोड ऑर्डर को बंद कर देगा।

इस कोड का उपयोग करने के लिए आपको केवल DD_close फ़ंक्शन को कॉल करना है।

इस कोड के साथ EA का हेडर फ़ाइल संलग्न है।

// इस ऑप्शन का उपयोग करने के लिए, आपको केवल इस फ़ंक्शन को कॉल करना है : ( DD_close )
//+------------------------------------------------------------------+
//|                          ग्लोबल स्कोप                            |
//+------------------------------------------------------------------+
bool Close_All_V;
//+------------------------------------------------------------------+
//|                          मुख्य फ़ंक्शन                            |
//+------------------------------------------------------------------+
// ड्रॉडाउन :               यहाँ ड्रॉडाउन प्रतिशत है, 100 का मतलब है कोई ऑर्डर बंद नहीं होगा।
// मैजिक नंबर :     आपके EA का मैजिक नंबर, 0 डालें ताकि सभी ऑर्डर को कंट्रोल किया जा सके।
void DD_close(int DD,int Magic_Number)
  {
   if(DD(Magic_Number)>=DD)
      Close_All_V=true;
   if(Close_All_V)
      Close_All(Magic_Number);
  }
//+------------------------------------------------------------------+
//|                          चेक क्लोज                             |
//+------------------------------------------------------------------+
void Check_Close(int Check_Number) // ऑर्डर बंद करने की जांच करें
  {
   if(Check_Number<0) Print("OrderClose failed with error: ",ErrorDescription(GetLastError()));
   else Close_All_V=false;
  }
//+------------------------------------------------------------------+
//|                          सभी बंद करें                               |
//+------------------------------------------------------------------+
void Close_All(int M_N)
  {
   int Loop=0;
   for(int i=0; Loop<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
       Loop++;
       if(OrderSymbol()==Symbol())
        if(OrderMagicNumber()==M_N || OrderMagicNumber()==0)
          {
           if(OrderType()==OP_BUY)
              Check_Close(OrderClose(OrderTicket(),OrderLots(),Bid,100,clrNONE));
           if(OrderType()==OP_SELL)
              Check_Close(OrderClose(OrderTicket(),OrderLots(),Ask,100,clrNONE));
          }
      }
  }
//+------------------------------------------------------------------+
//|                          लॉस की गणना करें                          |
//+------------------------------------------------------------------+
double Loss(int M_N)
  {
   double re=0;
   int Loop=0;
   for(int i=0; Loop<OrdersTotal(); i++)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         Loop++;
         if(OrderSymbol()==Symbol())
            if(OrderMagicNumber()==M_N || OrderMagicNumber()==0)
               re=re+OrderProfit();
        }
   return re * -1;
  }
//+------------------------------------------------------------------+
//|                  ड्रॉडाउन प्रतिशत की गणना करें                   |
//+------------------------------------------------------------------+
double DD(int M_N)
  {
   return ( 100 / AccountBalance ( ) ) * Loss ( M_N );
  }
//+------------------------------------------------------------------+

संबंधित पोस्ट

टिप्पणी (0)