विचारकर्ता: Vladimir Gribachev.
MQL5 कोड द्वारा: Vladimir Karputov.
यह एक ऐसा ईए है जो किसी कस्टम इंडिकेटर का उपयोग नहीं करता है; इसमें पोज़िशन्स यादृच्छिक रूप से खोली जाती हैं। यह ईए वर्तमान सांख्यिकी को दो भाषाओं में दिखा सकता है:

Trailing, खोली गई पोज़िशन्स के स्टॉप लॉस को संशोधित करता है। यदि कोई हानि होती है, तो लॉट्स मार्टिंगेल के उपयोग से बढ़ जाते हैं। हानियों की निगरानी करने के लिए: OnTradeTransaction में, हम लेनदेन DEAL_REASON_SL को पकड़ते हैं - यह स्टॉप लॉस के सक्रिय होने का संकेत है:
//+------------------------------------------------------------------+ //| 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_ticket =0; long deal_order =0; long deal_time =0; long deal_time_msc =0; long deal_type =-1; long deal_entry =-1; long deal_magic =0; long deal_reason =-1; long deal_position_id =0; double deal_volume =0.0; double deal_price =0.0; double deal_commission =0.0; double deal_swap =0.0; double deal_profit =0.0; string deal_symbol =""; string deal_comment =""; string deal_external_id =""; if(HistoryDealSelect(trans.deal)) { deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET); deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER); deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC); deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON); deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID); deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE); deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION); deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP); deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT); deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { PrevBars=0; if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0) last_lots_sl=deal_volume; else last_lots_sl=0.0; } } }
इनपुट पैरामीटर्स
- स्टॉप लॉस - स्टॉप लॉस;
- टेक प्रॉफिट - टेक प्रॉफिट;
- ट्रेलिंग स्टॉप - ट्रेलिंग;
- ट्रेलिंग स्टेप - ट्रेलिंग स्टेप;
- लॉट्स - लॉट का आकार मैन्युअली सेट किया जाता है (यदि लॉट्स शून्य से ऊपर है, तो रिस्क शून्य होना चाहिए);
- रिस्क - लॉट का आकार स्वचालित रूप से गणना की जाती है (यदि रिस्क शून्य से ऊपर है, तो लॉट्स शून्य होना चाहिए);
- मार्टिंगेल - लॉट बढ़ाने का अनुपात, यदि पिछले पोज़िशन को स्टॉप लॉस द्वारा बंद किया गया था और प्राप्त लाभ नकारात्मक था;
- मैक्स लॉट्स - अधिकतम पोज़िशन आकार; यदि यह आकार पार हो जाता है, तो ईए असामान्य रूप से अपना कार्य समाप्त कर देता है;
- मैजिक नंबर - ईए के लिए अनोखा पहचानकर्ता।
फिर परीक्षण को बाधित कर दिया गया (ईए को चार्ट से मजबूरन हटा दिया गया), क्योंकि संदर्भ लॉट मैक्स लॉट्स पैरामीटर से अधिक हो गया था:

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