हम इस ईए को ट्रेडिंग टूल के रूप में उपयोग करते हैं।
इसमें 3 इनपुट की आवश्यकता होती है, जो निम्नलिखित हैं:
- लाभ लक्ष्य
- नुकसान कटौती
- मैजिक नंबर
extern double inTargetProfitMoney = 10; //लाभ लक्ष्य ($)extern double inCutLossMoney = 0.0 //नुकसान कटौती ($)extern int inMagicNumber = 0 //मैजिक नंबर
जब यह ईए कार्यान्वित होता है, तो यह सबसे पहले OnInit() फ़ंक्शन को कॉल करेगा। जहाँ हम इनपुट और वेरिएबल प्रारंभिककरण की पुष्टि करेंगे।
intOnInit() { //--- if(inTargetProfitMoney <= 0) { Alert("अमान्य इनपुट"); return(INIT_PARAMETERS_INCORRECT); } inCutLossMoney = MathAbs(inCutLossMoney) * -1; //--- return(INIT_SUCCEEDED); }
और हर बार जब मूल्य आंदोलन (टिक) होगा, तो OnTick() फ़ंक्शन को कॉल किया जाएगा।
voidOnTick() { //--- double tFloating = 0.0; int tOrder = OrdersTotal(); for(int i=tOrder-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderMagicNumber() == inMagicNumber) { tFloating += OrderProfit()+OrderCommission() + OrderSwap(); } } } if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0)) { fCloseAllOrders(); } }
OnTick फ़ंक्शन में, यह कुल लाभ या हानि की गणना करना जारी रखेगा। फिर सभी आदेश बंद करेगा जो लक्ष्य या अधिकतम हानि सीमा को पूरा कर सकते हैं।
void fCloseAllOrders() { double priceClose = 0.0; int tOrders = OrdersTotal(); for(int i=tOrders-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL)) { priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK); if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold)) { Print("चेतावनी: बंद करना विफल"); } } } } }
अधिक विस्तृत जानकारी और mql4 कोड शिक्षा के लिए, कृपया हमारे टेलीग्राम समूह में जुड़ें t.me/codeMQL

टिप्पणी 0