विचार के लेखक — Vladimir Khlystov, कोड के लेखक — barabashkakvn.
यह ट्रेडिंग रणनीति चयनित समय अंतराल में हाई/लो के ब्रेकआउट पर आधारित है। हारे हुए पोजिशन्स को पुनः प्राप्त करने के लिए, यह सिस्टम "नेवालेयशका" रणनीति और मार्टिंगेल तकनीक का उपयोग करता है ताकि लॉट को बढ़ाया जा सके।
यह सिस्टम निर्दिष्ट समय अंतराल में हाई और लो की कीमत की गणना करता है, जो "समय प्रारंभ" से "समय समाप्त" तक होती है:

यदि कीमत इस अवधि के हाई को पार करती है, तो एक BUY पोजीशन खोली जाती है। यदि कीमत लो से नीचे होती है, तो एक SELL पोजीशन खोली जाती है। StopLoss अपोजिट सीमा पर सेट किया जाता है, यानी BUY पोजिशन्स के लिए लो कीमत पर और SELL पोजिशन्स के लिए हाई कीमत पर। TakeProfit नियंत्रण अवधि की ऊँचाई के आधार पर निर्धारित किया जाता है।
यदि समय बंद का उपयोग सत्य पर सेट किया गया है, तो समय बंद पैरामीटर (सभी पोजिशन्स बंद करने का समय) सक्रिय रहेगा।
केवल घंटे और मिनट को "समय प्रारंभ", "समय समाप्त", और "समय बंद" पैरामीटर के लिए ध्यान में लिया जाता है।
StopLoss द्वारा बंदी की निगरानी OnTradeTransaction में की जाती है.
जब "DEAL_ENTRY_OUT" (अर्थात "Entry out") पाया जाता है, तो इस डील के टिप्पणी क्षेत्र की जांच करें। यदि टिप्पणी में "sl" शामिल है, तो इसका अर्थ है कि डील StopLoss द्वारा बंद की गई थी:
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { MqlDateTime str1; TimeToStruct(TimeCurrent(),str1); //--- हो सकता है कि यह TakeProfit पर बंदी हो if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit>=0.0) { TradeDey=str1.day; return; } //--- हो सकता है कि यह StopLoss पर बंदी हो if(StringFind(deal_comment,"sl",0)!=-1) { if(TradeDey!=str1.day) { Print("StopLoss द्वारा बंदी का पता चला!"); double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume); if(deal_type==DEAL_TYPE_SELL) // खरीद पोजीशन बंद की गई { double SL=m_symbol.Bid()+loss*m_symbol.Point(); double TP=m_symbol.Bid()-loss*m_symbol.Point(); double Lot=LotCheck(deal_volume*InpK_martin); if(Lot==0.0) return; OpenSell(SL,TP,Lot,"नेवालेयशका"); if(deal_type==DEAL_TYPE_BUY) // बेचना पोजीशन बंद की गई { double SL=m_symbol.Ask()-loss*m_symbol.Point(); double TP=m_symbol.Ask()+loss*m_symbol.Point(); double Lot=LotCheck(deal_volume*InpK_martin); if(Lot==0.0) return; OpenBuy(SL,TP,Lot,"नेवालेयशका"); } return; } }
बंद की गई पोजीशन के विपरीत एक पोजीशन खोलें (यदि डील प्रकार "DEAL_TYPE_SELL" है, तो इसका मतलब है कि एक BUY पोजीशन बंद की गई; "DEAL_TYPE_BUY" का अर्थ है कि एक SELL पोजीशन बंद की गई), जिसमें लॉट को K. मार्टिन से गुणा करके बढ़ा दिया गया है। यदि कोई पोजीशन सकारात्मक लाभ के साथ बंद की गई, तो एक्सपर्ट एडवाइजर अगले अवधि के प्रारंभ समय "समय समाप्त" का इंतजार करता है, और ऊपर की प्रक्रिया को दोहराता है।
"कोई नुकसान नहीं" पैरामीटर का मतलब है कि ब्रेकइवन; जब आधे पोजीशन के लाभ को प्राप्त किया जाता है, तो StopLoss को पोजीशन के ओपन प्राइस पर ले जाया जाता है।
उदाहरण यदि EURUSD,M30 पर परीक्षण किया जा रहा है:

संबंधित पोस्ट
- MetaTrader 4 के लिए विज़ुअल ऑर्डर प्रोसेसिंग - आपके ट्रेडिंग साथी
- MQL5 विजार्ड: मॉर्निंग/ईवनिंग स्टार पैटर्न और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: डार्क क्लाउड कवर/पीयरसिंग लाइन और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: बुलिश हारामी/बेयरिश हारामी + CCI पर आधारित ट्रेड सिग्नल