जब कोई ट्रेड स्टॉप लॉस द्वारा बंद होता है, तो वॉल्यूम दोगुना हो जाता है; जबकि टेक प्रॉफिट से बंद होने पर न्यूनतम वॉल्यूम का उपयोग किया जाता है। OnTradeTransaction का उपयोग यह निर्धारित करने के लिए किया जाता है कि ट्रेड स्टॉप लॉस या टेक प्रॉफिट के सक्रिय होने के बाद किया गया था या नहीं।
बिल्ड 1625 में बहुत अच्छा एन्यूमरेशन ENUM_DEAL_REASON जोड़ा गया था:
| ENUM_DEAL_REASON | कारण का विवरण |
|---|---|
| ... | ... |
| DEAL_REASON_SL | यह ऑपरेशन स्टॉप लॉस के सक्रिय होने के परिणामस्वरूप निष्पादित किया गया |
| DEAL_REASON_TP | यह ऑपरेशन टेक प्रॉफिट के सक्रिय होने के परिणामस्वरूप निष्पादित किया गया |
| ... | ... |
इसे OnTradeTransaction में चेक किया जा सकता है।
दूसरे शब्दों में, यह एक बहुत सरल और विश्वसनीय तरीका है यह निर्धारित करने का कि ट्रेड टेक प्रॉफिट या स्टॉप लॉस के कारण हुआ।
इस समय (बिल्ड 1626), इस एक्सपर्ट एडवाइजर को केवल लाइव टेस्ट में चेक किया जा सकता है - इसे चार्ट पर लॉन्च करके या वास्तविक डेटा पर डिबग मोड में चलाकर (मेटा एडिटर में F5)। मैंने निम्नलिखित बाईपास चाल का उपयोग किया:
OnTradeTransaction में, हमने निर्धारित किया कि क्या टेक प्रॉफिट या स्टॉप लॉस सक्रिय हुआ:
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { if(deal_reason==DEAL_REASON_SL) ExtLot*=2.0; else if(deal_reason==DEAL_REASON_TP) ExtLot=m_symbol.LotsMin(); }
टिप्पणी 0