कैमल CCI MACD: MetaTrader 5 के लिए एक बेहतरीन ट्रेडिंग सिस्टम

Mike 2017.03.23 01:33 30 0 0
संलग्नक

विचार के लेखक — जॉन स्मिथएमक्यूएल5 कोड के लेखक — बाराबाश्कक्वन.

यह एक्सपर्ट एडवाइजर USDJPY पर H1 टाइमफ्रेम पर ट्रेड करने के लिए कॉन्फ़िगर किया गया है।

इस EA में दो मूविंग एवरेज, एक MACD और एक CCI का उपयोग किया जाता है। OnTradeTransaction का उपयोग स्थिति खोलने के समय को प्राप्त करने के लिए किया जाता है।

सभी संकेतक मान 1 इंडेक्स वाले बार से लिए जाते हैं।

//--- संकेतक सेटअप 
   CAMELHIGHP1=iMAGet(handle_iMA_PRICE_HIGH,1);
   CAMELLOWP1=iMAGet(handle_iMA_PRICE_LOW,1);
//
   MACDSP1=iMACDGet(SIGNAL_LINE,1);
   MACDSP2=iMACDGet(SIGNAL_LINE,2);
//
   MACDHP1=iMACDGet(MAIN_LINE,1);
   MACDHP2=iMACDGet(MAIN_LINE,2);
//
   CCIP1=iCCIGet(1);

सही नियंत्रण किया जाता है: यह देखने के लिए कि क्या वर्तमान बार पर पहले से ही एक स्थिति खोली गई है, ताकि सभी स्थितियों की जांच करने की आवश्यकता न हो (क्योंकि एक ही ट्रेडिंग अकाउंट पर अन्य एक्सपर्ट एडवाइजर्स भी चल सकते हैं)।

स्थिति खोलने का समय OnTradeTransaction में नियंत्रित किया जाता है। अगर स्थिति बंद होने का रिकॉर्ड है, तो खोलने का समय रीसेट कर दिया जाएगा:

//+------------------------------------------------------------------+
//| TradeTransaction कार्य                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- लेनदेन प्रकार को एनमरेशन मान के रूप में प्राप्त करें 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- यदि लेनदेन लेनदेन को इतिहास में जोड़ने का परिणाम है
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_entry        =0;
      long     deal_time         =0;
      string   deal_symbol       ="";
      long     deal_magic        =0;
      if(HistoryDealSelect(trans.deal))
        {
         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME);
         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
        {
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            m_last_close_time=(datetime)deal_time;
           }
         else if(deal_entry!=DEAL_ENTRY_OUT)
           {
            m_last_close_time=0;
           }
        }
     }
  }
सूची
टिप्पणी 0