सिस्टम ट्रेडिंग 게시글

मैजिक नंबर के साथ ट्रेलिंग स्टॉप - मेटा ट्रेडर 4 के लिए विशेषज्ञ सलाह

첨부파일
34177.zip (1.19 KB, 다운로드 0회)

नमस्कार दोस्तों! आज हम बात करेंगे ट्रेलिंग स्टॉप के बारे में, जो हमारी ट्रेडिंग को एक नया मोड़ देता है। ट्रेलिंग स्टॉप हमें अपने स्टॉप लॉस को प्रॉफिट क्षेत्र में ले जाने की सुविधा देता है, जिससे हम अपनी ट्रेड्स को सुरक्षित रख सकते हैं।

कोड की शुरुआत

आइए हम ट्रेलिंग स्टॉप पैरामीटर्स को सेट करने से शुरू करें:

input    bool     isTrailingStop = true;  //ट्रेलिंग स्टॉप
input    int      trailingStart  = 15;    //ट्रेलिंग प्रारंभ (पिप्स)
input    int      trailingStep   = 5;     //ट्रेलिंग स्टेप (पिप्स)

input    int      MagicNumber = 0;        //मैजिक नंबर

ग्लोबल वेरिएबल

//ग्लोबल वेरिएबल
double   myPoint    = 0.0;

OnInit() फंक्शन

जब हम इस EA को चलाते हैं, तो OnInit() फंक्शन पहली बार चलाया जाएगा और इस फंक्शन में हम इनपुट वेरिएबल्स को मान्य और प्रारंभ करेंगे।

int OnInit()
  {
    if (isTrailingStop && trailingStart <= 0){
      Alert ("पैरामीटर्स गलत हैं");
      return(INIT_PARAMETERS_INCORRECT);
   }
     
     myPoint     = GetPipPoint(Symbol());
   
     return(INIT_SUCCEEDED);
  }

OnTick() फंक्शन

हर बार जब चार्ट पर कोई प्राइस मूवमेंट (टिक) होता है, तो OnTick() फंक्शन चलाया जाएगा। इस फंक्शन के अंदर हम setTrailingStop() फंक्शन को कॉल करेंगे।

void OnTick()
  {
//---
   setTrailingStop(MagicNumber);
  }

setTrailingStop() फंक्शन

void setTrailingStop(int magicNumber=0){
   if (isTrailingStop==false) return;
   
   int      tOrder = 0;
   string   pair = "";
   double   sl = 0.0, tp = 0.0;
   
   pair = Symbol();
   
   tOrder = OrdersTotal();
   for (int i=tOrder-1; i>=0; i--){
      bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){
         if (OrderType() == OP_BUY){
            if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()
                  && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )
                ){
               sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());
               if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){
                  Print ("#", OrderTicket(), " अपडेट में विफल");
               }
            }
         }
         
         if (OrderType() == OP_SELL){
            if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()
                  && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)
               )
            {
               sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );
               if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){
                  Print ("#", OrderTicket(), " अपडेट में विफल");
               }
            }
         }
      } //मैजिक नंबर के अंत
   }//फॉर का अंत
}

अन्य जरूरी फंक्शन

एक और मानक फंक्शन है GetPipPoint()

//GetPipPoint फंक्शन
double GetPipPoint(string pair)
{
   double point= 0.0;
   int digits = (int) MarketInfo(pair, MODE_DIGITS);
   if(digits == 2 || digits== 3) point= 0.01;
   else if(digits== 4 || digits== 5) point= 0.0001;
   return(point);
}

अगर आपके कोई सवाल हैं, तो कृपया कमेंट्स में पूछें या हमारे ग्रुप में शामिल हों t.me/codeMQL

हम सिग्नलफॉरेक्स ऐप भी प्रदान करते हैं। आप हमारे साथ जुड़कर अपने ट्रेडिंग को और लाभदायक बना सकते हैं।

यहां क्लिक करें ऐप डाउनलोड करने के लिए

연관 포스트

댓글 (0)