AmiBroker को Tradetron से कैसे जोड़ें (AFL से लाइव ऑर्डर तक)
यह लेख अंग्रेज़ी से अनुवाद किया गया है। मूल लेख अंग्रेज़ी में पढ़ें
AmiBroker को Tradetron से जोड़ने के लिए, जब भी कोई सिग्नल आता है तो आपका AFL कोड Tradetron के API को एक URL रिक्वेस्ट भेजता है. इस रिक्वेस्ट में आपकी स्ट्रैटेजी का यूनिक टोकन, एक वेरिएबल का नाम और एक वैल्यू होती है (जैसे खरीदने के लिए NIFTY = 1). आपकी Tradetron स्ट्रैटेजी उस वेरिएबल को Get Runtime कीवर्ड से पढ़ती है और वैल्यू मेल खाने पर ट्रेड लगाती है.
कनेक्शन कैसे काम करता है
AmiBroker आपके चार्ट स्कैन करता है और आपका AFL चलाता है. Tradetron आपकी स्ट्रैटेजी क्लाउड में चलाता है और आपके ब्रोकर से बात करता है. दोनों के बीच का पुल एक सीधी वेब रिक्वेस्ट है.
हर सिग्नल पर एक URL कॉल; बाकी Tradetron करता है
रिक्वेस्ट कुछ ऐसी दिखती है (प्लेसहोल्डर की जगह आपका अपना टोकन होगा):
https://api.tradetron.tech/api?auth-token=YOUR_TOKEN&key=NIFTY&value=1
- auth-token स्ट्रैटेजी की पहचान है. यह यूनिक है, और सिर्फ़ एक ही स्ट्रैटेजी तक सीमित है.
- key वह वेरिएबल नाम है जो आप चुनते हैं, जैसे NIFTY.
- value वह है जो आप वेरिएबल में सेट कर रहे हैं, जैसे बाय सिग्नल के लिए 1.
Tradetron वैल्यू सेव करता है, और आपकी चल रही स्ट्रैटेजी उसे लगातार चेक करती रहती है. जब वैल्यू बदलकर वह हो जाती है जिसका आपकी कंडीशन इंतज़ार कर रही हैं, तो उससे मेल खाने वाला ट्रेड लग जाता है.
स्टेप 1: अपनी स्ट्रैटेजी का टोकन लें
- वह Tradetron स्ट्रैटेजी बनाएँ (या डुप्लिकेट करें) जिसे सिग्नल मिलेंगे.
- Strategies → My Strategies पर जाएँ और उस स्ट्रैटेजी का तीन-बिंदु वाला मेन्यू खोलें.
- API OAuth Token पर क्लिक करें. विंडो में स्ट्रैटेजी का लिंक और टोकन दिखता है.
- टोकन कॉपी करें. इसे आप स्टेप 2 में AFL में पेस्ट करेंगे.
My Strategies → तीन-बिंदु मेन्यू → API OAuth Token
स्टेप 2: अपने AFL में सिग्नल कोड जोड़ें
नीचे का उदाहरण 20 पीरियड के EMA क्रॉस पर NIFTY 50 इंडेक्स फ़्यूचर्स, 1 लॉट, ट्रेड करता है:
| सिग्नल | रूल | भेजी गई वैल्यू |
|---|---|---|
| बाय | क्लोज़, EMA(20) के ऊपर क्रॉस करे | 1 |
| सेल | क्लोज़, EMA(20) के नीचे क्रॉस करे | 2 |
| शॉर्ट | क्लोज़, EMA(20) के नीचे क्रॉस करे (उल्टा ट्रेड) | 3 |
| कवर | क्लोज़, EMA(20) के ऊपर क्रॉस करे | 4 |
Buy = Cross(C, EMA(C, 20));
Sell = Cross(EMA(C, 20), C);
Short = Cross(EMA(C, 20), C);
Cover = Cross(C, EMA(C, 20));
TradeActive = 1;
_SECTION_BEGIN("TTron");
EnableScript("VBScript");
<%
Public Sub callurl(varname, val)
Dim oXMLHTTP
Set oXMLHTTP = CreateObject("Msxml2.ServerXMLHTTP")
token = "YOUR_TOKEN"
url = "https://api.tradetron.tech/api?auth-token=" + token + "&key=" + varname + "&value=" + val
oXMLHTTP.Open "GET", url, False
oXMLHTTP.setRequestHeader "Cache-Control", "no-cache"
oXMLHTTP.setRequestHeader "Pragma", "no-cache"
oXMLHTTP.Send
End Sub
%>
pb = GetScriptObject();
signalBuy = Buy[BarCount - 1] > 0;
signalSell = Sell[BarCount - 1] > 0;
signalShort = Short[BarCount - 1] > 0;
signalCover = Cover[BarCount - 1] > 0;
if (TradeActive)
{
if (signalSell == True AND StaticVarGet("NIFTYsell") == 0)
{ pb.callurl("NIFTY", "2"); StaticVarSet("NIFTYsell", 1); }
else if (signalSell != True) StaticVarSet("NIFTYsell", 0);
if (signalCover == True AND StaticVarGet("NIFTYcover") == 0)
{ pb.callurl("NIFTY", "4"); StaticVarSet("NIFTYcover", 1); }
else if (signalCover != True) StaticVarSet("NIFTYcover", 0);
if (signalBuy == True AND StaticVarGet("NIFTYbuy") == 0)
{ pb.callurl("NIFTY", "1"); StaticVarSet("NIFTYbuy", 1); }
else if (signalBuy != True) StaticVarSet("NIFTYbuy", 0);
if (signalShort == True AND StaticVarGet("NIFTYshort") == 0)
{ pb.callurl("NIFTY", "3"); StaticVarSet("NIFTYshort", 1); }
else if (signalShort != True) StaticVarSet("NIFTYshort", 0);
}
_SECTION_END();
YOUR_TOKEN की जगह स्टेप 1 वाला टोकन डालें. StaticVarSet फ़्लैग यह पक्का करते हैं कि हर सिग्नल हर बार होने पर एक ही बार भेजा जाए, चार्ट के हर रिफ़्रेश पर नहीं.
स्टेप 3: Tradetron में Get Runtime से सिग्नल पढ़ें
Tradetron स्ट्रैटेजी में दो सेट बनाएँ:
- Set 1: लॉन्ग एंट्री और लॉन्ग एग्ज़िट
- Set 2: शॉर्ट एंट्री और शॉर्ट एग्ज़िट
हर कंडीशन में Get Runtime कीवर्ड (वेरिएबल नाम NIFTY) की तुलना Number कीवर्ड से करें:
| सेट | कंडीशन | रूल |
|---|---|---|
| Set 1 | Entry (बाय) | Get Runtime NIFTY == 1 |
| Set 1 | Exit (सेल) | Get Runtime NIFTY == 2 |
| Set 2 | Entry (शॉर्ट) | Get Runtime NIFTY == 3 |
| Set 2 | Exit (कवर) | Get Runtime NIFTY == 4 |
बाय कंडीशन: Get Runtime NIFTY == 1
फिर हर सेट के पोज़ीशन बिल्डर में पोज़ीशन (NIFTY 50 फ़्यूचर्स, 1 लॉट) जोड़ें.
शुरुआत के लिए आप रेफ़रेंस स्ट्रैटेजी डुप्लिकेट कर सकते हैं. जब तक आप अपनी कॉपी के लिए टोकन बनाकर उसे अपने AFL में नहीं डालते, उसे सिग्नल नहीं मिलेंगे.
स्टेप 4: ट्रेड करने से पहले टेस्ट करें
- Tradetron स्ट्रैटेजी को Live Offline डिप्लॉय करें: स्ट्रैटेजी चलती है और हर ट्रेड रिकॉर्ड करती है, लेकिन एक्सचेंज को कुछ नहीं भेजा जाता.
- मार्केट के समय में AmiBroker खोलें और AFL को NIFTY फ़्यूचर्स के लाइव चार्ट पर लगाएँ.
- जब क्रॉस हो, तो Tradetron में डिप्लॉयमेंट का Notification Log चेक करें: आपको रनटाइम वैल्यू और उससे हुआ ट्रेड दिखना चाहिए.
- जब कुछ सेशन तक सिग्नल आते रहें और ट्रेड आपके चार्ट से मेल खाएँ, तो 1x पर Live Auto में दोबारा डिप्लॉय करें.
इस पर भरोसा करने से पहले जानने वाली बातें
- आपका कंप्यूटर सिस्टम का हिस्सा है. अगर AmiBroker या आपका इंटरनेट बंद है, तो कोई सिग्नल नहीं जाता. Tradetron वह ट्रेड नहीं लगा सकता जिसके बारे में उसे पता ही नहीं चला.
- वेरिएबल आखिरी वैल्यू रखता है. वैल्यू ऐसे डिज़ाइन करें कि कोई छूटा हुआ या ओवरराइट हुआ सिग्नल आपको ऐसी पोज़ीशन में न छोड़े जो आप नहीं चाहते थे.
- एग्ज़िट भी Tradetron में होने चाहिए. हर लेग पर स्टॉप लॉस या एक Universal Exit जोड़ें, ताकि AmiBroker चुप हो जाए तब भी पोज़ीशन सुरक्षित रहे.
अक्सर पूछे जाने वाले सवाल
AmiBroker को Tradetron से कैसे जोड़ूँ?
अपने AFL में एक फ़ंक्शन जोड़ें जो सिग्नल आने पर आपकी स्ट्रैटेजी के टोकन, एक वेरिएबल नाम और एक वैल्यू के साथ Tradetron का API URL कॉल करे. Tradetron स्ट्रैटेजी में Get Runtime कीवर्ड से उस वेरिएबल की वैल्यू से तुलना करें और एंट्री व एग्ज़िट ट्रिगर करें.
AmiBroker के लिए auth token कहाँ से मिलेगा?
Tradetron में Strategies → My Strategies पर जाएँ, स्ट्रैटेजी का तीन-बिंदु मेन्यू खोलें और API OAuth Token चुनें. हर टोकन सिर्फ़ एक स्ट्रैटेजी के लिए काम करता है.
क्या AmiBroker को खुला रखना ज़रूरी है?
हाँ. सिग्नल आपके कंप्यूटर पर चल रहे AFL से बनते हैं, इसलिए मार्केट के समय में AmiBroker चालू और चार्ट खुला होना चाहिए.
Get Runtime कीवर्ड क्या है?
यह किसी रनटाइम वेरिएबल की मौजूदा वैल्यू पढ़ता है, जैसे AmiBroker से API कॉल द्वारा सेट की गई वैल्यू, ताकि आप उसकी तुलना किसी कंडीशन में कर सकें, जैसे Get Runtime NIFTY == 1.
क्या मैं असली ऑर्डर लगाए बिना AmiBroker कनेक्शन टेस्ट कर सकता हूँ?
हाँ. स्ट्रैटेजी को Live Offline डिप्लॉय करें: यह AmiBroker सिग्नल से हर ट्रेड चलाती और रिकॉर्ड करती है, लेकिन एक्सचेंज को कुछ नहीं भेजा जाता.