
इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफॉर्म एक्सटेंशन एपीआई को हाल ही में प्रत्यक्ष एक्सेस मोड का समर्थन करने के लिए अपग्रेड किया गया था, जो स्वचालित ट्रेडिंग को साकार करने के लिए इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफॉर्म रोबोट को ट्रेडिंगव्यू अलार्म सिग्नल भेजना आसान बनाता है। यदि आप अभी भी नहीं जानते कि एक्सटेंशन एपीआई क्या है, तो मैं इसे विस्तार से समझाता हूं।
इन्वेंटर API दस्तावेज़ से संबंधित लिंक
विस्तारित एपीआई का मुख्य कार्य प्रोग्रामेटिक ऑपरेशन आविष्कारक के मात्रात्मक ट्रेडिंग प्लेटफॉर्म पर विभिन्न कार्यों के लिए एक इंटरफेस प्रदान करना है, जैसे कि एक ही समय में बैचों में रोबोट शुरू करना, निर्धारित समय पर रोबोट शुरू करना और रोकना, रोबोट सूचना विवरण पढ़ना आदि। हम TradingView अलर्ट सिग्नल ट्रेडिंग को लागू करने के लिए इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म एक्सटेंशन API का उपयोग करते हैं। इस आवश्यकता के लिए केवल API के एक्सटेंशन की आवश्यकता होती है।CommandRobot(RobotId, Cmd)इंटरफ़ेस निर्दिष्ट आईडी के साथ रोबोट को इंटरैक्टिव निर्देश भेज सकता है। निर्देश प्राप्त करने के बाद रोबोट संबंधित ऑपरेशन (जैसे खरीदने या बेचने के लिए ऑर्डर देना) कर सकता है।
एक्सटेंशन API का उपयोग करने के लिए, आपको सबसे पहले अपना स्वयं का आविष्कारक खाता बनाना होगाAPI KEY:
API KEYकुंजी यह हैaccess keyऔरsecret keyसंघटन,API KEYयह प्रोग्राम्ड ऑपरेशन द्वारा आविष्कृत मात्रात्मक ट्रेडिंग प्लेटफॉर्म की कुंजी है, इसलिए इसे उचित तरीके से रखा जाना चाहिए और कभी भी इसका खुलासा नहीं किया जाना चाहिए। FMZ एक्सटेंशन बनानाAPI KEYआप उपयोग करते समय अनुमतियाँ निर्दिष्ट कर सकते हैंAPI KEYअनुदान पहुँचCommandRobot(RobotId, Cmd)इस उदाहरण के लिए, सुरक्षा कारणों से, केवल FMZ एक्सटेंशन को ही अनुमति दें।API KEYप्रदान करनाCommandRobot(RobotId, Cmd)इंटरफ़ेस के लिए पहुँच अनुमतियाँ.
प्रत्यक्ष पहुँच मोड का अर्थ हैAPI KEYइसे सीधे URL की क्वेरी में लिखें। उदाहरण के लिए, इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म एक्सटेंशन API तक पहुँचने के लिए URL को इस प्रकार लिखा जा सकता है:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
में,https://www.fmz.com/api/v1इंटरफ़ेस पता है,?इसके बादQuery,पैरामीटरaccess_keyमुख्य उदाहरण xxx (उपयोग करते समय अपना स्वयं का FMZ खाता access_key भरें), पैरामीटर द्वारा दर्शाया गया हैsecret_keyगुप्त कुंजी को yyyy द्वारा दर्शाया जाता है (इसका उपयोग करते समय अपने खाते की secret_key भरें), पैरामीटरmethodक्या यह एक्सेस किए जाने वाले विस्तारित API इंटरफ़ेस का विशिष्ट नाम है?argsकहा जा सकता हैmethodइंटरफ़ेस के पैरामीटर.
हम आविष्कारक के मात्रात्मक ट्रेडिंग प्लेटफॉर्म रोबोट को ट्रेडिंग आदेश भेजने के लिए ट्रेडिंग व्यू को सिग्नल स्रोत के रूप में उपयोग करते हैं।CommandRobotयह इंटरफ़ेस.
सबसे पहले, आपके पास TradingView Pro अकाउंट होना चाहिए। अलार्म में WebHood सुविधा बेसिक लेवल पर उपलब्ध नहीं है। हम TradingView पर चार्ट पर जाते हैं।

चार्ट में एक संकेतक जोड़ता है, लेकिन अन्य स्क्रिप्ट एल्गोरिदम भी जोड़ता है। यहाँ हम सबसे अधिक इस्तेमाल किया जाने वाला प्रयोग करते हैंMACDसंकेतक, और फिर के-लाइन अवधि को 1 मिनट पर सेट करें (ताकि सिग्नल तेजी से ट्रिगर हो सके और प्रदर्शन में सुविधा हो)।

चार्ट पर राइट-क्लिक करें और पॉप-अप मेनू से अलर्ट जोड़ें चुनें।

“अलर्ट” पॉप-अप विंडो में सेट करेंWebHookइस चरण में, आपको इसे सेट करने के लिए जल्दी करने की ज़रूरत नहीं है। आइए सबसे पहले इन्वेंटर के क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म पर सिग्नल की निगरानी करने वाले रोबोट को चलाएं।
रणनीति स्रोत कोड:
// 全局变量
var BUY = "buy" // 注意:现货用的命令
var SELL = "sell" // 现货用的命令
var LONG = "long" // 期货用的命令
var SHORT = "short" // 期货用的命令
var COVER_LONG = "cover_long" // 期货用的命令
var COVER_SHORT = "cover_short" // 期货用的命令
function main() {
// 清空日志,如不需要,可以删除
LogReset(1)
// 设置精度
exchange.SetPrecision(QuotePrecision, BasePrecision)
// 识别期货还是现货
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("添加的交易所为期货交易所:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct 合约设置为空"
} else {
Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000")
}
} else {
Log("添加的交易所为现货交易所:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// 检测交互命令
lastMsg = "命令:" + cmd + "时间:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd信息有误:", cmd, "#FF0000")
continue
}
var action = arr[0]
var amount = parseFloat(arr[1])
if (eType == 0) {
if (action == BUY) {
var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
Log("buyInfo:", buyInfo)
} else if (action == SELL) {
var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
Log("sellInfo:", sellInfo)
} else {
Log("现货交易所不支持!", "#FF0000")
}
} else if (eType == 1) {
var tradeInfo = null
var ticker = _C(exchange.GetTicker)
if (action == LONG) {
exchange.SetDirection("buy")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else if (action == SHORT) {
exchange.SetDirection("sell")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_LONG) {
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_SHORT) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else {
Log("期货交易所不支持!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "状态信息",
cols : ["数据"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // 测试时使用
LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
रणनीति कोड बहुत सरल है, पता लगानाGetCommandफ़ंक्शन का वापसी मान, जब नीति प्रोग्राम को एक इंटरैक्टिव संदेश भेजा जाता है,GetCommandफ़ंक्शन इस संदेश को वापस कर देगा, और फिर रणनीति कार्यक्रम संदेश की सामग्री के आधार पर संबंधित ट्रेडिंग संचालन करेगा। इस रणनीति पर इंटरैक्टिव बटन सेट किया गया है, जो इंटरैक्टिव फ़ंक्शन का परीक्षण कर सकता है। उदाहरण के लिए, इस रणनीति को चलाएं और रोबोट को इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म के सिम्युलेटेड एक्सचेंज के साथ कॉन्फ़िगर करें।WexApp。

खरीद आदेश प्राप्त करने की रोबोट की क्षमता का परीक्षण करने के लिए इंटरेक्शन बटन पर क्लिक करें।

आप देख सकते हैं कि रोबोट को प्राप्त कमांड स्ट्रिंग है:buy:0.01。
जब TradingView अलर्ट ट्रिगर होता है, तो हमें बस WebHook अनुरोध URL को Inventor Quantitative Trading Platform Extension API तक पहुंच प्रदान करने की आवश्यकता होती है।CommandRobotइंटरफ़ेस का उपयोग करते समय, पैरामीटर निम्न हैंbuy:0.01इतना ही।
ट्रेडिंगव्यू में वापस आकर, हम वेबहुक का यूआरएल भरते हैं। देनाaccess_key、secret_keyअपने स्वयं के पैरामीटर भरेंAPI KEY。methodठीक कर दिया गया, हमें बस एक्सेस की जरूरत हैCommandRobotयह विस्तारित API इंटरफ़ेस,argsपैरामीटर हैं[机器人ID,命令字符串]के रूप में, हम रोबोट पेज के माध्यम से सीधे रोबोट आईडी प्राप्त कर सकते हैं, जैसा कि चित्र में दिखाया गया है:
इस बार हम सिग्नल को ट्रिगर होने देते हैं और 0.02 सिक्के खरीदते हैं। कमांड स्ट्रिंग है:"buy:0.02". इससे WebHook URL पूरा हो जाता है. यह विधि केवल URL में सिग्नल लिखने का समर्थन करती है। यदि आप टीवी रणनीति द्वारा जारी किए जा सकने वाले अलर्ट संदेश की सामग्री प्राप्त करना चाहते हैं, तो https://www.fmz.com/api#%E7%9B देखें %B4%E6%8E%A5%E9%AA%8C%E8%AF%81.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]
ट्रेडिंगव्यू पर सेटअप करना:

संकेत के सक्रिय होने की प्रतीक्षा कर रहा हूँ… संकेत के सक्रिय होने की प्रतीक्षा कर रहा हूँ.. संकेत के सक्रिय होने की प्रतीक्षा कर रहा हूँ। …

रोबोट को संकेत प्राप्त हुआ:

इस तरह, आप ट्रेडिंग व्यू पर समृद्ध चार्ट फ़ंक्शन और संकेतक एल्गोरिदम का उपयोग इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म के रणनीति रोबोट के साथ मिलकर कर सकते हैं ताकि आप अपनी मनचाही स्वचालित ट्रेडिंग प्राप्त कर सकें। ट्रेडिंग व्यू पर रणनीतियों को जावास्क्रिप्ट और पायथन भाषाओं में पोर्ट करने की तुलना में, कठिनाई बहुत कम हो जाती है.
“मॉनीटरिंग सिग्नल ऑर्डर प्लेसिंग रोबोट” का रणनीति कोड केवल सीखने और शोध के लिए है। इसे वास्तविक उपयोग के लिए स्वयं द्वारा अनुकूलित और समायोजित किया जाना चाहिए। यह वायदा का समर्थन करता है और इसे मार्केट ऑर्डर मोड पर सेट करने की अनुशंसा की जाती है। रणनीति देखें विवरण के लिए कोड पैरामीटर देखें. यह तो बस एक शुरुआत है। अगर आपके कोई सवाल या सुझाव हों तो कृपया संदेश छोड़ दें।