नमस्ते दोस्तों! आज हम बात करेंगे एक बेहद आसान EA (एक्सपर्ट एडवाइजर) के बारे में, जो मैंने अपने ट्रेडिंग के लिए बनाया है। यह EA सबसे सरल है, जो मैंने कभी इस्तेमाल किया है। कृपया इसे पढ़कर अपनी राय जरूर बताएं...
यह EA केवल एक ही ट्रेडिंग पेयर पर काम करता है। इसमें टाइमफ्रेम, लॉट, स्टॉप लॉस और टेक प्रॉफिट के सेटिंग्स मेनू प्रॉपर्टीज में इनपुट किए गए हैं।

extern ENUM_TIMEFRAMES TF = PERIOD_CURRENT;// टाइम फ्रेम चुनें extern int period = 8;// DeMarker का पीरियड extern double lt = 0.01;// लॉट्स extern int sl = 100;// स्टॉप लॉस extern int tp = 100;// टेक प्रॉफिट extern double OB = 0.7;// ओवर सोल्ड extern double OS = 0.3;// ओवर बॉट extern bool OPENBAR = false;// नई बार के ओपन प्राइस पर ट्रेडिंग
गुप्त बात यह है कि मैंने इसे तीन भागों में बाँटा है:
1. डेटा | टाइमफ्रेम
2. ऑर्डर
3. पेयर
//+------------------------------------------------------------------+ //-- टाइम फ्रेम | इंडिकेटर double dmrk[5]; int signal =-1;//-- 0. खरीदना 1. बेचना int hold = 0; //-- ऑर्डर int ticket =0; double lot =0.0; int typ =-1; //-- पेयर datetime t1=0; bool newbar=false; bool entry =false; //+------------------------------------------------------------------+
OnInit() फंक्शन में, मैंने एक इंडिकेटर DeMarker एरे वैरिएबल को इनिशियलाइज करना है और स्पेसिफिक प्रकार के ब्रोकर की आवश्यकताओं के लिए ट्रेडिंग का न्यूनतम लॉट साइज भी चेक करना है।
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnInit() { ArrayInitialize(dmrk,0.0); //--- const double test_lot = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(lt<test_lot) lt = test_lot; }
OnTick() फंक्शन में, यह इंडिकेटर की गणना करने और खरीदने और बेचने के सिग्नल का निर्धारण करने का काम करता है।
//--------------------------------------------------------------------------- signal = -1; //--------------------------------------------------------------------------- //---कैलकुलेट for(int i=0; i<ArraySize(dmrk); i++) { dmrk[i] = iDeMarker(Symbol(),TF,period,i); } //--- if(dmrk[1] > OB) { hold = 1;//सेट } else if(dmrk[1] < OS) { hold = -1;//सेट } else { hold = 0;//रीसेट } if(hold == 1) { if(dmrk[0]<OB && dmrk[1]>OB) { signal = OP_SELL; } } if(hold == -1) { if(dmrk[0]>OS && dmrk[1]<OS) { signal = OP_BUY; } }
खरीदने और बेचने के सिग्नल खोलने के लिए...
//--------------------------------------------------------------------------- if(signal != -1) if(newbar==true) if(entry==false)// दरवाजा खुला { //--- entry =true;//सेट //--- if(signal == OP_BUY) { ticket = OrderSend(Symbol(),OP_BUY,lt,Ask,(int)((Ask-Bid)/Point, sl>0?Bid-sl*Point:0.0, tp>0?Bid+tp*Point:0.0, EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold), EANumber, 0, clrBlue); signal=-1; //hold =0; }//रीसेट else if(signal == OP_SELL) { ticket = OrderSend(Symbol(),OP_SELL,lt,Bid,(int)((Ask-Bid)/Point, sl>0?Ask+sl*Point:0.0, tp>0?Ask-tp*Point:0.0, EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold), EANumber, 0, clrRed); signal=-1; //hold =0; }//रीसेट सिग्नल }
और क्लोजिंग के लिए...
if(entry == true) // क्लोजिंग { if(OrderSelect(ticket,SELECT_BY_TICKET)) { if(OrderCloseTime() == 0)//-- ऑर्डर सक्रिय ट्रेड { /* todo क्लोज करने की शर्त */ //entry = false; } //else if(OrderCloseTime() != 0)//-- 1. मैनुअल 2. sl/tp 3. ea द्वारा क्लोज { entry = false;// रीसेट एंट्री } } }


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