एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई को हाल ही में प्रत्यक्ष पहुंच का समर्थन करने के लिए अपग्रेड किया गया है, ताकि यह स्वचालित ट्रेडिंग के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म रोबोट को ट्रेडिंगव्यू अलर्ट सिग्नल आसानी से भेज सके। यदि आप नहीं जानते कि विस्तार एपीआई क्या है, तो मुझे ध्यान से सुनें।
एफएमजेड पर एपीआई प्रलेखन के कुछ लिंक (https://www.fmz.com/api)
विस्तारित एपीआई का मुख्य कार्य प्रोग्रामेटिक संचालन के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विभिन्न कार्यों के लिए इंटरफेस प्रदान करना है, जैसे कि एक साथ बैचों में रोबोट शुरू करना, रोबोट को शुरू करने और रोकने का समय, रोबोट सूचना विवरण पढ़ना, आदि। हम एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई का उपयोग ट्रेडिंगव्यू अलर्ट सिग्नल ट्रेडिंग की मांग योजना को महसूस करने के लिए करते हैं, जो केवलCommandRobot(RobotId, Cmd)
विस्तारित एपीआई में इंटरफेस। यह इंटरफेस एक निर्दिष्ट आईडी के साथ रोबोट को इंटरैक्टिव निर्देश भेज सकता है, और रोबोट निर्देश प्राप्त करने के बाद संबंधित संचालन (जैसे खरीदने, बेचने, आदि के लिए एक आदेश रखने) निष्पादित कर सकता है।
विस्तारित एपीआई का उपयोग करने के लिए, आप एक बनाने की जरूरत हैAPI KEY
पहले अपने स्वयं के एफएमजेड खाते के लिएः
रहस्य की कुंजीAPI KEY
में शामिल हैaccess key
औरsecret key
. API KEY
कार्यक्रमात्मक संचालन के एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म को मात्रात्मक बनाने की कुंजी है, इसलिए इसे ठीक से रखा जाना चाहिए और खुलासा नहीं किया जाना चाहिए।API KEY
FMZ पर, आप अनुमतियाँ निर्दिष्ट कर सकते हैं. उदाहरण के लिए ऊपर के आंकड़े केवल देता हैAPI KEY
पहुँचने की अनुमतिCommandRobot(RobotId, Cmd)
इस उदाहरण के लिए, सुरक्षा कारणों के आधार पर, कृपया केवल विस्तारितAPI KEY
पर एफएमजेड अनुमतिCommandRobot(RobotId, Cmd)
interface.
प्रत्यक्ष पहुँच मोड का अर्थ है किAPI KEY
सीधे यूआरएल क्वेरी में लिखा जाता है. उदाहरण के लिए, एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई तक पहुंचने के लिए यूआरएल लिखा जा सकता हैः
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
एक्सेस किए जाने वाले विस्तारित एपीआई इंटरफ़ेस का विशिष्ट नाम है, औरargs
के पैरामीटर हैmethod
इंटरफेस बुलाया जाना है.
हम FMZ क्वांट ट्रेडिंग प्लेटफ़ॉर्म रोबोट को लेनदेन आदेश भेजने के लिए सिग्नल स्रोत के रूप में ट्रेडिंगव्यू का उपयोग करते हैं। वास्तव में हम केवलCommandRobot
interface.
सबसे पहले, आपके पास ट्रेडिंगविiew प्रो स्तर का खाता होना चाहिए. अलर्ट में वेबहूड फ़ंक्शन का उपयोग बेसिक स्तर पर नहीं किया जा सकता है.
ट्रेडिंग व्यू चार्ट में, आप चार्ट या अन्य स्क्रिप्ट एल्गोरिदम के लिए एक संकेतक जोड़ सकते हैं। यहाँ, हम सबसे अधिक इस्तेमाल कियाMACD
संकेतक, और फिर हम 1 मिनट के लिए K-लाइन अवधि सेट (तेज संकेत ट्रिगर और आसान प्रदर्शन के लिए) ।
चार्ट पर राइट क्लिक करें और पॉप-अप मेनू से
सेटWebHook
रणनीति स्रोत कोडः
// Global variable
var BUY = "buy" // Note: The command used for spot
var SELL = "sell" // The command used for spot
var LONG = "long" // The command used for future
var SHORT = "short" // The command used for future
var COVER_LONG = "cover_long" // The command used for future
var COVER_SHORT = "cover_short" // The command used for future
function main() {
// Clear the log and delete it if not needed
LogReset(1)
// Set precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Identify future or spot
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added exchange is a futures exchange:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct Contract set to null"
} else {
Log(exchange.SetContractType(Ct), "set contract:", Ct, "#FF0000")
}
} else {
Log("The added exchange is a spots exchange:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect interactive commands
lastMsg = "command:" + cmd + "time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd incorrect information:", 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("The spots exchange is not supported!", "#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("The futures exchange is not supported!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "status information",
cols : ["data"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // Use it when testing
LogStatus(_D(), eName, "Last received command:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
रणनीति स्रोत कोड (https://www.fmz.com/strategy/203063)
रणनीति कोड बहुत सरल है. यह रिटर्न मूल्य का पता लगाता हैGetCommand
जब एक इंटरैक्टिव संदेश रणनीति कार्यक्रम को भेजा जाता है, तोGetCommand
function संदेश लौटाता है, और रणनीति कार्यक्रम संदेश सामग्री के अनुसार संबंधित लेनदेन ऑपरेशन करता है। इंटरैक्टिव फ़ंक्शन का परीक्षण करने के लिए इस रणनीति पर इंटरैक्टिव बटन सेट किया गया है। उदाहरण के लिए, इस रणनीति को चलाएं और रोबोट को कॉन्फ़िगर करेंWexApp
, एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म का एक सिमुलेशन एक्सचेंज।
हम इंटरैक्टिव बटन पर क्लिक करें परीक्षण करने के लिए रोबोट के लिए आदेश प्राप्त करने के लिए आदेश प्राप्त करने के फ़ंक्शन, तो हम देख सकते हैं कि रोबोट द्वारा प्राप्त कमांड स्ट्रिंग हैःbuy:0.01
.
हम केवल WebHook अनुरोध यूआरएल बनाने की जरूरत है जब ट्रेडिंगव्यू अलर्ट एक्सेस करने के लिए ट्रिगर किया जाता हैCommandRobot
एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म के विस्तारित एपीआई के इंटरफ़ेस, ले जाया पैरामीटर हैbuy:0.01
.
ट्रेडिंग दृश्य में वापस, हम वेबहूक के यूआरएल भरें. पैरामीटर के लिए अपने स्वयं के एपीआई कुंजी भरेंaccess_key
, secret_key
.method
हम केवल पहुँचने की जरूरत हैCommandRobot
विस्तारितएपीआई इंटरफ़ेस. पैरामीटरargs
के रूप में है[Robot ID, Command String]
. हम रोबोट आईडी प्राप्त कर सकते हैं रोबोट पृष्ठ के माध्यम से, सीधे के रूप में चित्र में दिखाया गया हैः
इस बार, हम सिग्नल ट्रिगर करते हैं, 0.02 सिक्के खरीदते हैं, और कमांड स्ट्रिंग हैःbuy:0.02
. तब WebHook URL पूरा हो गया है. यह विधि केवल URL में संकेत लिखने का समर्थन करती है. यदि आप अलर्ट संदेश की सामग्री प्राप्त करना चाहते हैं जो टीवी रणनीति द्वारा ही भेजी जा सकती है, तो देखेंhttps://www.fmz.com/api#प्रत्यक्ष सत्यापन।
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args= [191755,"buy:0.02"]
ट्रेडिंग व्यू पर सेट करेंः
संकेत के लिए ट्रिगर करने के लिए प्रतीक्षा करें... संकेत के लिए ट्रिगर करने के लिए प्रतीक्षा करें... संकेत के लिए ट्रिगर करने के लिए प्रतीक्षा करें... ...
फिर रोबोट सिग्नल प्राप्त करेगा, इस तरह, हम विभिन्न चार्ट कार्यों का उपयोग कर सकते हैं और ट्रेडिंग व्यू पर संकेतक एल्गोरिदम आप चाहते हैं स्वचालित व्यापार प्राप्त करने के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म के रणनीति रोबोट के साथ सहयोग करने के लिए।