एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म का विस्तारित एपीआई हाल ही में अपग्रेड किया गया है, और अपग्रेड प्रत्यक्ष पहुंच मोड का समर्थन करता है, ताकि स्वचालित ट्रेडिंग के लिए ट्रेडिंगव्यू अलर्ट सिग्नल आसानी से एफएमजेड पर बॉट्स को भेजा जा सके। यदि आप नहीं जानते कि विस्तारित एपीआई क्या है, तो अब मुझे विस्तार से सुनें।
एफएमजेड एपीआई प्रलेखन में संबंधित भाग का लिंक
विस्तारित एपीआई का मुख्य कार्य एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विभिन्न कार्यों के लिए इंटरफेस प्रदान करना है, प्रोग्रामेटिक संचालन के लिए, जैसे कि बैच स्टार्टिंग बॉट एक साथ, टाइमिंग बॉट स्टार्ट और स्टॉप, बॉट सूचना विवरण पढ़ना, आदि। हम ट्रेडिंगविज़ अलर्ट सिग्नल ट्रेडिंग को लागू करने के लिए एफएमजेड विस्तारित एपीआई का उपयोग करते हैं। इस मांग को केवलCommandRobot(RobotId, Cmd)
विस्तारित एपीआई में इंटरफ़ेस। यह इंटरफ़ेस निर्दिष्ट आईडी के साथ बॉट को इंटरैक्टिव कमांड भेज सकता है, और बॉट संबंधित संचालन (जैसे खरीदने या बेचने के आदेश आदि) कर सकता है
विस्तारित एपीआई का उपयोग करने के लिए, आपको पहले अपना खाता बनाना होगाAPI KEY
एफएमजेड परः
API KEY
में शामिल हैaccess key
औरsecret key
; API KEY
एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म को प्रोग्रामेटिक रूप से संचालित करने की कुंजी है, इसलिए सुनिश्चित करें कि इसे ठीक से रखें और इसका खुलासा न करें।API KEY
उदाहरण के लिए, उपरोक्त आंकड़ा केवलAPI KEY
पहुँचने की अनुमतिCommandRobot(RobotId, Cmd)
इस उदाहरण में, सुरक्षा कारणों से, कृपया केवल के उपयोग की अनुमति प्रदान करेंCommandRobot(RobotId, Cmd)
एफएमजेड के लिए इंटरफेस बढ़ाया गयाAPI KEY
.
प्रत्यक्ष पहुँच मोड सीधे लिखने का संकेत देता हैAPI KEY
URL की क्वेरी में; उदाहरण के लिए FMZ Quant प्लेटफॉर्म के विस्तारित 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
एक्सेस किए जाने वाले विस्तारित एपीआई इंटरफ़ेस का विशिष्ट नाम है, औरargs
के पैरामीटर हैmethod
इंटरफेस बुलाया जाना है.
हम ट्रेडिंग व्यू का उपयोग FMZ बॉट्स को ट्रेडिंग कमांड भेजने के लिए सिग्नल स्रोत के रूप में करते हैं।CommandRobot
interface.
सबसे पहले, आप एक ट्रेडिंगवीव प्रो खाता है करने की जरूरत है. बेसिक स्तर चेतावनी में वेबहूड समारोह का उपयोग नहीं कर सकते. हम ट्रेडिंगवीव के चार्ट में प्रवेश करते हैं.
चार्ट के लिए एक संकेतक जोड़ें, और अन्य स्क्रिप्ट एल्गोरिदम भी इस्तेमाल किया जा सकता है। यहाँ, प्रदर्शन की सुविधा के लिए, हम सबसे अधिक इस्तेमाल कियाMACD
सूचक, और फिर K-लाइन अवधि को 1 मिनट पर सेट करें (सिग्नल को तेजी से ट्रिगर करने और प्रदर्शन को आसान बनाने के लिए) ।
चार्ट पर राइट-क्लिक करें और पॉप-अप मेनू से
सेटWebHook
इस बिंदु पर, आप इसे स्थापित करने के बारे में चिंता करने की जरूरत नहीं है. चलो पहले एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर संकेतों की निगरानी करने वाले बॉट को चलाते हैं.
रणनीति स्रोत कोडः
// global variable
var BUY = "buy" // Note: the command used for spot
var SELL = "sell" // the command used for futures
var LONG = "long" // the command used for futures
var SHORT = "short" // the command used for futures
var COVER_LONG = "cover_long" // the command used for futures
var COVER_SHORT = "cover_short" // the command used for futures
function main() {
// Empty the logs; delete, if not needed
LogReset(1)
// Set the precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Judge whether it is spot or futures
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added platform is a futures platform:", 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 platform is a spot platform:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect the interactive command
lastMsg = "Command:" + cmd + "Time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("Wrong cmd 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("Spot trading platforms are 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("Futures trading platforms are 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)]) // Used during testing
LogStatus(_D(), eName, "The command received last time:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
कोड बहुत सरल है. यह रिटर्न मूल्य का पता लगाता हैGetCommand
जब एक इंटरैक्टिव संदेश रणनीति कार्यक्रम के लिए भेजा जाता है,GetCommand
इस संदेश को लौटा देगा, और फिर रणनीति कार्यक्रम संदेश की सामग्री के आधार पर एक संबंधित व्यापारिक ऑपरेशन करेगा। रणनीति पर बातचीत बटन सेट किया गया है, जो इंटरैक्टिव फ़ंक्शन का परीक्षण कर सकता है। उदाहरण के लिए, जब रणनीति संचालित की जाती है, तो बॉट को अनुकरणीय मंच के साथ कॉन्फ़िगर किया जाता हैWexApp
एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म का।
खरीदने के लिए आदेश प्राप्त करने के लिए बॉट क्षमता का परीक्षण करने के लिए बातचीत बटन पर क्लिक करें.
हम देख सकते हैं कि बॉट द्वारा प्राप्त कमांड स्ट्रिंग हैःbuy:0.01
.
हम केवल ले जाया पैरामीटर होना करने की जरूरत हैbuy:0.01
प्रवेश के दौरानCommandRobot
FMZ Quant विस्तारित एपीआई के इंटरफेस WebHook अनुरोध URL में, जब TradingView अलर्ट ट्रिगर किया जाता है।
ट्रेडिंग व्यू पर वापस, हम वेबहूक के यूआरएल भरें. अपने स्वयं के भरेंAPI KEY
मेंaccess_key
औरsecret_key
पैरामीटर के लिएmethod
तय है, हम केवल विस्तारित एपीआई का उपयोग करने की जरूरत हैCommandRobot
;args
पैरामीटर के रूप में है[robot ID, command string]
, हम सीधे बॉट पृष्ठ के माध्यम से रोबोट आईडी प्राप्त कर सकते हैं, जैसा कि चित्र में दिखाया गया हैः
इस बार जब हम संकेत ट्रिगर, 0.02 सिक्का खरीदते हैं, और कमांड स्ट्रिंग हैः"buy:0.02"
. यह वेबहूक URL को पूरा करता है.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[443999,"buy:0.02"]
ट्रेडिंगव्यू पर सेट करेंः
संकेत के ट्रिगर होने की प्रतीक्षा करें। जब बॉट सिग्नल प्राप्त करता है, तो आप पृष्ठ के ऊपरी दाईं ओर सिग्नल अलर्ट और पृष्ठ के निचले दाईं ओर ट्रिगर लॉग देख सकते हैं।
बॉट ने संकेत प्राप्त किया:
इस तरह, आप अपने इच्छित स्वचालित व्यापार को साकार करने के लिए एफएमजेड क्वांट के रणनीति बॉट के साथ सहयोग करने के लिए ट्रेडिंगव्यू पर समृद्ध चार्ट कार्यों और संकेतक एल्गोरिदम का उपयोग कर सकते हैं। ट्रेडिंगव्यू पर रणनीतियों को जावास्क्रिप्ट और पायथन में प्रत्यारोपित करने की तुलना में, कठिनाई कम हो गई है।