एमक्यूएल कनेक्टर लाइब्रेरी

एमक्यूएल कनेक्टर लाइब्रेरी क्या है:

एमटी2ट्रेडिंग पुस्तकालय आपको एमक्यूएल कोड से सीधे ट्रेडिंग सिग्नल भेजने की अनुमति देता है (या तो तकनीकी संकेतक या विशेषज्ञ सलाहकार से)।

आवश्यकताएँ:

एमटी2ट्रेडिंग लाइब्रेरी का उपयोग करने के लिए सुनिश्चित करें कि लाइब्रेरी (एमटी४ / ५ के लिए एमटी2ट्रेडिंग _पुस्तकालय) को आपके मेटाट्रेडर टर्मिनल के लाइब्रेरी फ़ोल्डर (एमक्यूएल४ / लाइब्रेरीज़ या एमक्यूएल५ / लाइब्रेरीज़) में कॉपी किया गया है।

अपने संकेतक या ई.ए के साथ अपने कोड के शीर्ष पर कार्यों को घोषित करें आयात

अनुभाग निर्धारित करता है

enum broker {
	All = 0,
	IQOption = 1,
	Binary = 2,
	Spectre = 3,
	Alpari = 4,
	InstaBinary = 5,
	OptionField = 6,
	CLMForex = 7,
	DukasCopy = 8,
	GCOption = 9,
	StrategyTester = 10,
	CapitalCore = 11,
	PocketOption = 12,
	Bitness = 13
};

enum martingale {
	NoMartingale = 0,
	OnNextExpiry = 1,
	OnNextSignal = 2,
	Anti_OnNextExpiry = 3,
	Anti_OnNextSignal = 4,
	OnNextSignal_Global= 5,
	Anti_OnNextSignal_Global = 6
};
	
enum result {
	TIE = 0,
	WIN = 1,
	LOSS = 2
};

पुस्तकालय आयात अनुभाग

एमक्यूएल४

#import "mt2trading_library.ex4" 
	bool mt2trading (string symbol, string direction, double amount, int expiryMinutes);
	bool mt2trading (string symbol, string direction, double amount, int expiryMinutes, string signalname);
	bool mt2trading (string symbol, string direction, double amount, int expiryMinutes,
		 martingale martingaleType, int martingaleSteps, double martingaleCoef, 
		 broker myBroker, string signalName, string signalid);
	int traderesult (string signalid);
	double tradeprofit (string signalid);
#import

एमक्यूएल५

#import "mt2trading_library.ex5" 
	bool mt2trading (string symbol, string direction, double amount, int expiryMinutes);
	bool mt2trading (string symbol, string direction, double amount, int expiryMinutes, string signalname);
	bool mt2trading (string symbol, string direction, double amount, int expiryMinutes,
		martingale martingaleType, int martingaleSteps, double martingaleCoef, 
		broker myBroker, string signalName, string signalid);
	int traderesult (string signalid);
	double tradeprofit (string signalid);
#import

इनपुट पैरामीटर्स सेक्शन

extern broker Broker = All;
extern string SignalName = "My Signal";             // Signal Name (optional)
extern double TradeAmount = 1;                      // Trade Amount
extern int ExpiryMinutes = 5;                       // Expiry Time [minutes]
extern martingale MartingaleType = NoMartingale;    // Martingale
extern int MartingaleSteps = 2;                     // Martingale Steps
extern double MartingaleCoef = 2.0;                 // Martingale Coefficient

ओएनआईएनमैंटी() अनुभाग में महत्वपूर्ण आरंभीकरण हैं।

  1. सेंडऑन एक टाइमस्टैम्प वैरिएबल है, जिसमें प्रति मोमबत्ती एक से अधिक सिग्नल भेजने से रोका जाता है।
  2. सिग्नलआईडी पहचान पैरामीटर है जो सिग्नल पर हस्ताक्षर करने के लिए उपयोग किया जाता है और इसका उपयोग किया जा सकता है
    बाद में ट्रेडरॉल्ट (सिग्नलआईडी) लाइब्रेरी फ़ंक्शन के साथ व्यापार परिणाम प्राप्त करने के लिए। इसके अलावा सिग्नलआईडी का उपयोग किया जाता है
    मार्टिंगेल का ट्रैक रखें
    संकेत अनुक्रम. जबकि अगलीएक्सपायरीपर संकेतों में एक अद्वितीय आईडी हो सकती है, जबकि नेक्स्टसिग्नलपर संकेतों में अद्वितीय होना चाहिए
    आईडी, क्रम में बॉट एक मार्टिंगेल अनुक्रम के रूप में संकेतों को पहचान सकता है।
  3. परिसंपत्ति चार्ट की मुद्रा जोड़ी है. इसमें ६ वर्ण (उदा. इयूआरयूएसडी) होने चाहिए.
int OnInit()
{
	// Initialize the time flag
	sendOnce = TimeCurrent();
	
	// Generate a unique signal id for signals management (based on timestamp, chart id and some random number)
	MathSrand(GetTickCount());
	if (MartingaleType == OnNextSignal || MartingaleType == Anti_OnNextSignal)
		 signalID = IntegerToString(GetTickCount()) + IntegerToString(MathRand()); // indicator-wide id
	else if (MartingaleType = OnNextSignal_Global || MartingaleType == Anti_OnNextSignal_Global)
		signalID = IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN))
			+ IntegerToString(TerminalInfoInteger(TERMINAL_BUILD))
			+ AccountInfoString(ACCOUNT_NAME);   // terminal-wide id
	
	if (StringLen(Symbol()) >= 6)
		asset = StringSubstr(Symbol(),0,6);
	else
		asset = Symbol();
}

गणना पर() – अनुभाग

ऊपर_तीर_शर्त और डाउन_एरो_कंडीशन पर अप / डाउन ट्रेड रखने के लिए उदाहरण:

एमक्यूएल४

int OnCalculate(const int rates_total,
	const int prev_calculated,
	const datetime &time[],
	const double &open[],
	const double &high[],
	const double &low[],
	const double &close[],
	const long &tick_volume[],
	const long &volume[],
	const int &spread[])
{

	// Reinitialization of signalID if no martingale is used or martingale type is OnNextExpiry

	if (MartingaleType == NoMartingale || MartingaleType == OnNextExpiry || MartingaleType == Anti_OnNextExpiry)
		signalID = IntegerToString(GetTickCount()) + IntegerToString(MathRand()); // candle-wide unique id
	
	//...
	
	bool Up_Arrow_Condition = ...
	bool Down_Arrow_Condition = ...
	
	if (UP_Arrow_Condition && signaltime != time[0])
	{
		mt2trading (asset, "CALL", TradeAmount, ExpiryMinutes, MartingaleType, MartingaleSteps,
			 MartingaleCoef, Broker, SignalName, signalID);
		signaltime = time[0];
	}
	
	if (DOWN_Arrow_Condition && signaltime != time[0])
	{
		mt2trading (asset, "PUT", TradeAmount, ExpiryMinutes, MartingaleType, MartingaleSteps,
			 MartingaleCoef, Broker, SignalName, signalID);
		signaltime = time[0];
	}

	//...
	return(rates_total);
}

एमक्यूएल५

int OnCalculate(const int rates_total,
	const int prev_calculated,
	const datetime &time[],
	const double &open[],
	const double &high[],
	const double &low[],
	const double &close[],
	const long &tick_volume[],
	const long &volume[],
	const int &spread[])
{

	// Reinitialization of signalID if no martingale is used or martingale type is OnNextExpiry

	if (MartingaleType == NoMartingale || MartingaleType == OnNextExpiry || MartingaleType == Anti_OnNextExpiry)
		signalID = IntegerToString(GetTickCount()) + IntegerToString(MathRand()); // candle-wide unique id

	//...

	ArraySetAsSeries(time,true); // ---> only in MQL5
	
	bool Up_Arrow_Condition = ...
	bool Down_Arrow_Condition = ...
	
	if (UP_Arrow_Condition && signaltime != time[0])
	{
		mt2trading (asset, "CALL", TradeAmount, ExpiryMinutes, MartingaleType, MartingaleSteps,
			 MartingaleCoef, Broker, SignalName, signalID);
		signaltime = time[0];
	}
	
	if (DOWN_Arrow_Condition && signaltime != time[0])
	{
		mt2trading (asset, "PUT", TradeAmount, ExpiryMinutes, MartingaleType, MartingaleSteps,
			 MartingaleCoef, Broker, SignalName, signalID);
		signaltime = time[0];
	}
	
	//...
	return(rates_total);
}

एमटी2ट्रेडिंग समारोह के पैरामीटर:

  1. संपत्ति: मुद्रा जोड़ी (६ वर्ण लंबे, उदा. इयूआरयूएसडी).
  2. दिशा: “कॉल” / “पुट”। एक कॉल व्यापार (दिशा ऊपर) खरीदने का मतलब है, एक डाल व्यापार बेचने का मतलब है (दिशा नीचे).
  3. व्यापार राशि: अपने दलाल खाते की मुद्रा में राशि.
  4. समय सीमा समाप्ति समय: मिनट में समय सीमा समाप्ति.
  5. मार्टिनगल प्रकार: ज़रेबंद प्रकार है कि लागू किया जाना चाहिए परिभाषित करें (अनिवार्य, अगर ज़रेबंद उपयोग नहीं किया जाता है).
  6. मार्टिनगैले कदम: ज़रेबंद चरणों की संख्या.
  7. मार्टिंगेल गुणांक: वह गुणांक जिसे प्रत्येक के लिए गणना व्यापार राशियों के लिए लागू किया जाना चाहिए
    मार्टिंगेल स्टेप (नजरअंदाज किया जाता है, अगर मार्टिंगेल का उपयोग नहीं किया जाता है)।
  8. ब्रोकर: दलाल (वैकल्पिक), या सभी दलालों को परिभाषित करें।
  9. सिग्नल का नाम: बस संकेत है कि ट्रेडों तालिका में प्रदर्शित किया जाएगा का एक नाम. (वैकल्पिक)
  10. सिग्नल आईडी: हर व्यापार के लिए बाद में व्यापार परिणाम पुनः प्राप्त करने के क्रम में इस्तेमाल किया जा सकता है कि अपनी आईडी है. साथ ही आईडी भी है
    एक मार्टिंगेल अनुक्रम बनाने के लिए उपयोग किया जाता है। एक ज़रेबंद अनुक्रम के सभी ट्रेडों एक ही आईडी है.