[TOC]
आविष्कारकों ने क्वांटिफाइड ट्रेडिंग प्लेटफॉर्म को 9 वर्षों के तकनीकी पुनरावृत्ति के बाद कई बार फिर से बनाया है, हालांकि हम उपयोगकर्ताओं के रूप में शायद इस बात को नहीं जानते हैं। पिछले दो वर्षों में, प्लेटफॉर्म ने उपयोगकर्ता अनुभव के संदर्भ में कई अनुकूलन और उन्नयन किए हैं, जिसमें यूआई इंटरफ़ेस को पूरी तरह से अपग्रेड करना, अक्सर उपयोग किए जाने वाले क्वांटिफाइड ट्रेडिंग टूल को समृद्ध करना और अधिक रीट्रीट डेटा समर्थन जोड़ना शामिल है।
नीति डिजाइन को आसान बनाने के लिए, लेनदेन तर्क को स्पष्ट बनाने के लिए और शुरुआती लोगों के लिए आसान बनाने के लिए, प्लेटफॉर्म ने नीति के लिए एपीआई इंटरफ़ेस को उन्नत किया है। नवीनतम संस्करणों का उपयोग करने वाले होस्टिंगर इन नई सुविधाओं को सक्षम कर सकते हैं। प्लेटफॉर्म अभी भी पुराने इंटरफ़ेस पर कॉल करने के लिए अधिकतम संगत है। एपीआई इंटरफ़ेस के बारे में नई सुविधाओं के बारे में जानकारी एक साथ अद्यतन की गई है ताकि आविष्कारक को एपीआई दस्तावेज को परिमाणित कर सकें।
तो चलिए इस पोस्ट के माध्यम से देखते हैं कि कौन से इंटरफेस अपग्रेड अपडेट हैं और पुराने एपीआई के साथ संगत होने के लिए पुरानी रणनीतियों के लिए क्या बदलाव किए जाने की आवश्यकता है।
बहुउत्पाद रणनीतियों, पूर्ण बाजार बाजार निगरानी रणनीतियों को डिजाइन करने के लिए इस तरह के एकत्रीकृत बाजार इंटरफ़ेस आवश्यक हैं, ताकि रणनीतियों को विकसित करना आसान हो सके और दोहराव वाले पहियों से बच सकें। आविष्कारक क्वांटिफाइड ट्रेडिंग प्लेटफॉर्म को एपीआई के रूप में पैक करते हैं।
यदि एक्सचेंज में ऐसा इंटरफ़ेस नहीं है (किसी भी एक्सचेंज के लिए), तो कॉल करेंexchange.GetTickers()
यह गलत है: समर्थन नहीं।
यह फ़ंक्शन बिना किसी पैरामीटर के, एक्सचेंज को सभी किस्मों के वास्तविक समय के बाजार डेटा को बाजार इंटरफ़ेस में एकत्रित करता है। इसे सरल तरीके से समझा जा सकता हैः
exchange.GetTickers()
यह हैexchange.GetTicker()
फ़ंक्शन के पूर्ण विविधता अनुरोध संस्करण ((ध्यान दें, इन दो फ़ंक्शन नामों के बीच अंतर केवल एकल बहुलक है) ।) ।
हम OKX Live Simulator का उपयोग करके पर्यावरण परीक्षण करते हैंः
function main() {
exchange.IO("simulate", true)
var tickers = exchange.GetTickers()
if (!tickers) {
throw "tickers error"
}
var tbl = {type: "table", title: "test tickers", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var i in tickers) {
var ticker = tickers[i]
tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
return tickers.length
}
नई वृद्धिexchange.CreateOrder()
फ़ंक्शन को इस उन्नयन का मुख्य बिंदु माना जा सकता है।exchange.CreateOrder()
फ़ंक्शन की सबसे बड़ी कार्यक्षमता यह है कि फ़ंक्शन के पैरामीटर में सीधे ऑर्डर की किस्म या दिशा निर्दिष्ट की जाती है। इस प्रकार सिस्टम वर्तमान में सेट किए गए लेनदेन जोड़े, अनुबंध कोड, लेनदेन दिशा आदि पर निर्भर नहीं होता है।
बहुविकल्पीय लेन-देन के तहत एकल परिदृश्य में, डिजाइन जटिलता को बहुत कम किया जाता है।exchange.CreateOrder()
और यह है कि यह है.symbol
、side
、price
、amount
。
ओकेएक्स फ्यूचर्स एनालॉग का उपयोग करके पर्यावरण परीक्षणः
function main() {
exchange.IO("simulate", true)
var id1 = exchange.CreateOrder("ETH_USDT.swap", "buy", 3300, 1)
var id2 = exchange.CreateOrder("BTC_USDC.swap", "closebuy", 70000, 1)
var id3 = exchange.CreateOrder("LTC_USDT.swap", "sell", 110, 1)
Log("id1:", id1, ", id2:", id2, ", id3:", id3)
}
यह केवल तीन बार किया गया था.exchange.CreateOrder()
फ़ंक्शन कॉल तीन अलग-अलग किस्मों के, अलग-अलग दिशाओं के फ्यूचर्स ऑर्डर के लिए आते हैं।
नई वृद्धिexchange.GetHistoryOrders()
फ़ंक्शन का उपयोग किसी प्रकार के ऐतिहासिक लेनदेन के आदेशों को प्राप्त करने के लिए किया जाता है, जिसे एक्सचेंज इंटरफ़ेस समर्थन की आवश्यकता होती है।
ऐतिहासिक ऑर्डर की जांच के लिए, एक्सचेंजों द्वारा लागू किए गए इंटरफेस में बहुत अंतर हैः
इस प्रकार के इंटरफेस को अधिकतम संगतता के लिए पैक करने के लिए, वास्तविक उपयोग में ध्यान देने की आवश्यकता है कि क्या यह रणनीति की आवश्यकताओं, अपेक्षाओं के अनुरूप है।
अधिक जानकारी के लिए, आप एपीआई दस्तावेज़ में सिंटेक्स मैनुअल देख सकते हैंः
https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders
बिनान के साथ वास्तविक मुद्रा परिवेश परीक्षणः
function main() {
var orders = exchange.GetHistoryOrders("ETH_USDT")
// 写入图表
var tbl = {type: "table", title: "test GetHistoryOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
LogStatus("orders.length:", orders.length, "\n", "`" + JSON.stringify(tbl) + "`")
}
पुराने संस्करणों में, प्राप्त करने के लिए भंडारण डेटा फ़ंक्शनexchange.GetPosition()
इस अपग्रेड में फ़ंक्शन के नामकरण के अर्थ को बेहतर ढंग से फिट करने के लिए एक नया एक्सेस होल्डिंग फ़ंक्शन जोड़ा गया हैःexchange.GetPositions()
.......................................................................................................................................................................................................
ध्यान दें कि दो फ़ंक्शन नामों में केवल एक अंत वाला s होता है, क्योंकि GetPositions अधिक अर्थशास्त्रीय रूप से संगत है, इसलिए बाद के सभी के लिए GetPositions का उपयोग करने की सिफारिश की जाती है।
exchange.GetPositions()
फ़ंक्शन को तीन प्रकार से बुलाया जा सकता हैः
exchange.GetPositions ((() जब कोई पैरामीटर नहीं भेजा जाता है, तो वर्तमान के अनुसारसौदा सही / अनुबंध कोडकी सेटिंग, वर्तमान आयाम के सभी किस्मों के लिए भंडारण डेटा का अनुरोध करता है.
exchange.GetPositions ((BTC_USD.swap
、ETH_USDT.swap
、ETH_USDT.quarter
और इस तरह।
BTC_USD.swap: बीटीसी के लिए मुद्रा प्रतिस्थापन अनुबंध।
ETH_USDT.swap: ईटीएच के यू-बिट स्थायी अनुबंध।
ETH_USDC.swap:ईटीएच के लिए यूएसडीसी आधारित स्थायी अनुबंध. (USDT के अलावा, एक अलग उद्धरण मुद्रा भी निर्दिष्ट की जा सकती है, आगे नहीं)
ETH_USDT.quarter: ईटीएच का यू-बिट तिमाही विनिमय अनुपात लगभग है।
BTC_USD.BTC-USD-201226-24250-C: BTC के लिए मुद्रा स्थान विकल्प अनुबंध.
exchange.GetPositions ((
कुछ विशेष एक्सचेंजों के लिए अनुबंध आयामों का विभाजनः USDT.futures_combo:Futures_Deribit एक्सचेंज के लिए अंतर पोर्टफोलियो अनुबंध। USD.futures_ff:Futures_Kraken एक्सचेंज का मिश्रित प्रतिभूति लेनदेन अनुपात लगभग है। USD.swap_pf:Futures_Kraken एक्सचेंज का मिश्रित प्रतिभूति स्थायी अनुबंध।
एक्सचेंज एपीआई इंटरफेस द्वारा समर्थित नहीं किए गए आयामों के लिए, कॉल करने पर एक त्रुटि लौटाई जाएगी।
ओकेएक्स फ्यूचर्स एनालॉग का उपयोग करके पर्यावरण परीक्षणः
function main() {
exchange.IO("simulate", true)
exchange.SetCurrency("BTC_USDT")
exchange.SetContractType("swap")
var p1 = exchange.GetPositions()
var p2 = exchange.GetPositions("BTC_USDT.swap")
var tbls = []
for (var positions of [p1, p2]) {
var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
for (var p of positions) {
tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
जब प्रवेशexchange.GetPositions()
फ़ंक्शन का पैरामीटर हैETH_USDT.swap
और फिर, ईटीएच के यू-बिट के स्थायी अनुबंधों के लिए स्टॉक डेटा प्राप्त करें।
जब नहींexchange.GetPositions()
फ़ंक्शन के पैरामीटर के अनुसार, एक्सचेंज में सभी यू-बिट स्थायी अनुबंधों के लिए होल्डिंग डेटा प्राप्त किया जा सकता है (क्योंकि वर्तमान लेनदेन जोड़ी BTC_USDT है, अनुबंध स्वैप है, वर्तमान लेनदेन जोड़ी के अनुसार, अनुबंध आयाम अनुरोध) ।exchange.GetPositions("USDT.swap")
, एक अनुरोध सीमा निर्दिष्ट करें.
नया GetFundings फ़ंक्शन फ्यूचर्स एक्सचेंजों पर स्थायी अनुबंधों के लिए पूंजीगत दर प्राप्त करता है। फ़ंक्शन में एक पैरामीटर प्रतीक है। फ़ंक्शन एक फंडिंग संरचना सरणी लौटाता है।
BTC_USDT.swap
⇒ कोई पैरामीटर नहीं भेजा गया या प्रवेश सीमा फ़ंक्शन में त्रुटि होगी symbol पैरामीटर समर्थित नहीं है.कार्यक्षेत्रexchange.GetTicker()
यह उन्नयन मुख्य रूप से प्रतीक पैरामीटर को जोड़ने के लिए किया गया है। इस प्रकार, यह वर्तमान लेनदेन जोड़े से अलग हो सकता है, अनुबंध कोड सीधे पैरामीटर के अनुसार विनिर्दिष्ट किस्म की जानकारी का अनुरोध कर सकता है, और बाजार डेटा का अनुरोध कर सकता है। कोड लेखन प्रक्रिया को सरल बना सकता है। यह अभी भी असंगत कॉल मोड के साथ संगत है, जो कि पुराने प्लेटफार्मों के साथ अधिकतम रूप से संगत है।
पैरामीटरsymbol
एक्सचेंजों के लिएexchange
यह एक अलग प्रारूप में उपलब्ध है:
AAA_BBB
एएए बेस करेंसी को ट्रेडिंग करेंसी के रूप में दर्शाता है, बीबीबी को उद्धरण करेंसी के रूप में दर्शाता है। मुद्राओं के नाम बड़े अक्षरों में हैं।
उदाहरण के लिएः BTC_USDT नकदी व्यापार जोड़ी।AAA_BBB.XXX
एएए बेस करेंसी, बीबीबी कोट करेंसी और एक्सएक्सएक्स को कॉन्ट्रैक्ट कोड के लिए संदर्भित करता है, जैसे कि स्थायी अनुबंध स्वैप। मुद्राओं के नाम बड़े अक्षरों में लिखे जाते हैं और कॉन्ट्रैक्ट कोड छोटे अक्षरों में लिखे जाते हैं।
उदाहरण के लिएः BTC_USDT.swap, BTC के यू-बिट स्थायी अनुबंध।यह एक बहुत ही अच्छा तरीका है कि हम अपने ग्राहकों को एक अच्छी तरह से तैयार की गई सामग्री प्रदान करने में मदद कर सकते हैं।
var symbols = ["BTC_USDT.swap", "BTC_USDT.quarter", "BTC_USD.swap", "BTC_USD.next_quarter", "ETH_USDT.swap"]
function main() {
exchange.SetCurrency("ETH_USD")
exchange.SetContractType("swap")
var arr = []
var t = exchange.GetTicker()
arr.push(t)
for (var symbol of symbols) {
var ticker = exchange.GetTicker(symbol)
arr.push(ticker)
}
var tbl = {type: "table", title: "test GetTicker", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var ticker of arr) {
tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
return arr
}
एक समूह के विनिर्दिष्ट किस्मों के लिए बाजार डेटा डिजाइन का अनुरोध करना सरल हो गया है।
GetTicker के समान हैexchange.GetDepth()
फ़ंक्शन ने इस बार भी प्रतीक पैरामीटर जोड़ा है. गहराई के डेटा का अनुरोध करते समय सीधे किस्मों को निर्दिष्ट करना संभव है.
यह एक बहुत ही अच्छा तरीका है कि हम अपने ग्राहकों को एक अच्छी तरह से तैयार की गई सामग्री प्रदान करने में मदद कर सकते हैं।
function main() {
exchange.SetCurrency("LTC_USD")
exchange.SetContractType("swap")
Log(exchange.GetDepth())
Log(exchange.GetDepth("ETH_USDT.quarter"))
Log(exchange.GetDepth("BTC_USD.swap"))
}
GetTicker के समान हैexchange.GetTrades()
फ़ंक्शन में इस बार symbol पैरामीटर भी जोड़ा गया है. बाजार लेनदेन डेटा का अनुरोध करते समय सीधे किस्मों को निर्दिष्ट करना संभव है.
यह एक बहुत ही अच्छा तरीका है कि हम अपने ग्राहकों को एक अच्छी तरह से तैयार की गई सामग्री प्रदान करने में मदद कर सकते हैं।
function main() {
var arr = []
var arrR = []
var symbols = ["LTC_USDT.swap", "ETH_USDT.quarter", "BTC_USD.swap"]
for (var symbol of symbols) {
var r = exchange.Go("GetTrades", symbol)
arrR.push(r)
}
for (var r of arrR) {
arr.push(r.wait())
}
var tbls = []
for (var i = 0; i < arr.length; i++) {
var trades = arr[i]
var symbol = symbols[i]
var tbl = {type: "table", title: symbol, cols: ["Time", "Amount", "Price", "Type", "Id"], rows: []}
for (var trade of trades) {
tbl.rows.push([trade.Time, trade.Amount, trade.Price, trade.Type, trade.Id])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
यह उन्नयन भी संगत पारित किया गया है।exchange.Go()
फ़ंक्शन को एक साथ कॉल करने के लिए प्लेटफ़ॉर्म एपीआई इंटरफ़ेस पर प्रतीक पैरामीटर विशिष्ट किस्म की जानकारी भेजता है।
GetRecords फ़ंक्शन में इस बार बड़े बदलाव किए गए हैं, इसके अलावा यह सिंबल पैरामीटर के साथ सीधे अनुरोध किए गए K-लाइन डेटा के लिए विविधता की जानकारी का समर्थन करता है। यह K-लाइन चक्र को निर्दिष्ट करने के लिए मूल अवधि पैरामीटर को बरकरार रखता है, और अनुरोध अवधि के लिए वांछित K-लाइन लंबाई निर्दिष्ट करने के लिए एक सीमा पैरामीटर जोड़ता है। यह पुराने संस्करणों के साथ भी संगत है।
exchange.GetRecords()
फ़ंक्शन का उपयोग कैसे करें:
यह एक बहुत ही अच्छा तरीका है कि हम अपने ग्राहकों को एक अच्छी तरह से तैयार की गई सामग्री प्रदान करने में मदद कर सकते हैं।
function main() {
exchange.SetCurrency("ETH_USDT")
exchange.SetContractType("swap")
var r1 = exchange.GetRecords()
var r2 = exchange.GetRecords(60 * 60)
var r3 = exchange.GetRecords("BTC_USDT.swap")
var r4 = exchange.GetRecords("BTC_USDT.swap", 60)
var r5 = exchange.GetRecords("LTC_USDT.swap", 60, 3000)
Log("r1相邻Bar时间差值:", r1[1].Time - r1[0].Time, "毫秒, Bar长度:", r1.length)
Log("r2相邻Bar时间差值:", r2[1].Time - r2[0].Time, "毫秒, Bar长度:", r2.length)
Log("r3相邻Bar时间差值:", r3[1].Time - r3[0].Time, "毫秒, Bar长度:", r3.length)
Log("r4相邻Bar时间差值:", r4[1].Time - r4[0].Time, "毫秒, Bar长度:", r4.length)
Log("r5相邻Bar时间差值:", r5[1].Time - r5[0].Time, "毫秒, Bar长度:", r5.length)
}
GetOrders फ़ंक्शन भी जोड़ा गया हैsymbol
पैरामीटर, एक विशिष्ट किस्म को निर्दिष्ट करने के लिए, उस किस्म के लिए अधूरे आदेशों की जांच करने के लिए; निर्दिष्ट आयाम सीमा के लिए सभी किस्मों के लिए अधूरे आदेशों की जांच करने के लिए भी समर्थन करता है।
exchange.GetOrders()
फ़ंक्शन को निम्नलिखित तरीकों से बुलाया जा सकता हैः
ओकेएक्स फ्यूचर्स एनालॉग का उपयोग करके पर्यावरण परीक्षणः
function main() {
exchange.IO("simulate", true)
exchange.SetCurrency("BTC_USDT")
exchange.SetContractType("swap")
// 写入图表
var tbls = []
for (var symbol of ["null", "ETH_USDT.swap", "USDT.swap"]) {
var tbl = {type: "table", title: symbol, cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
var orders = null
if (symbol == "null") {
orders = exchange.GetOrders()
} else {
orders = exchange.GetOrders(symbol)
}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
ETH_USDT.swap
पैरामीटर में, ईटीएच के लिए USDT के लिए अनुरोधित स्थायी अनुबंध के लिए अधूरे ऑर्डर ("पेंडिंग ऑर्डर") ।"USDT.swap"
जब USDT ने अपने स्थायी अनुबंध के सभी अधूरे आदेशों का अनुरोध किया, तो USDT ने अपने स्थायी अनुबंध के सभी अधूरे आदेशों का अनुरोध किया।अभी भी पुराने स्टोरेज प्राप्त फ़ंक्शन नामकरण के साथ संगत है, और एक प्रतीक पैरामीटर भी जोड़ा गया है, जो विशिष्ट अनुरोध किए गए स्टोरेज डेटा के लिए विविध जानकारी निर्दिष्ट कर सकता है; फ़ंक्शन उपयोग पहलू औरexchange.GetPositions()
पूरी तरह से सहमत हैं।
के लिएexchange.IO("api", ...)
फ़ंक्शन कॉल मोड, सभी एक्सचेंज ऑब्जेक्ट्स के लिए अपग्रेड किए गए हैं, जो सीधे पूर्ण अनुरोध पते की सुविधा का समर्थन करते हैं।
उदाहरण के लिए, OKX के इंटरफ़ेस को कॉल करने के लिएः
GEThttps://www.okx.com/api/v5/account/max-withdrawal ccy: BTC
सीधे आधार पते लिखने का समर्थन करेंhttps://www.okx.com
, आपको पहले बेस एड्रेस को स्विच करने की आवश्यकता नहीं है और फिर IO फ़ंक्शन को कॉल करना चाहिए।
ओकेएक्स फ्यूचर्स एनालॉग का उपयोग करके पर्यावरण परीक्षणः
function main() {
exchange.IO("simulate", true)
return exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
}
इस उन्नयन ने मुख्य रूप से प्रभावित कियाexchange.GetOrder(id)
फ़ंक्शन के पैरामीटरid
,id पैरामीटर को मूल एक्सचेंज ऑर्डर आईडी से एक स्ट्रिंग प्रारूप में बदल दिया गया है जिसमें लेनदेन की विविधता शामिल है। FMZ प्लेटफॉर्म पर सभी पैक किए गए ऑर्डर आईडी इस प्रारूप के लिए हैं।
उदाहरण के लिएः
123456
इस उन्नयन से पहले, यदि आप GetOrder फ़ंक्शन को कॉल करते हैं, तो आपके द्वारा भेजे गए ऑर्डर आईडी123456
。BTC-USDT
..
ध्यान दें कि यह एक्सचेंज द्वारा नामित ट्रेडिंग किस्म कोड है, और एफएमजेड प्लेटफॉर्म द्वारा परिभाषित ट्रेडिंग जोड़े नहीं हैं।इस बार के अपग्रेड के बाद,exchange.GetOrder(id)
फ़ंक्शन के लिए आवश्यक पैरामीटर id का प्रारूप इस प्रकार है:BTC-USDT,123456
。
इस तरह के डिजाइन के बारे में पहले बताएंः क्योंकि इस बार CreateOrder फ़ंक्शन को अपग्रेड किया गया है, जो सीधे ऑर्डर की किस्मों को निर्दिष्ट करता है (ऑर्डर की किस्म और वर्तमान सेट किए गए लेनदेन जोड़े, अनुबंध कोड अलग हो सकते हैं), यदि लौटे हुए ऑर्डर आईडी में किस्म की जानकारी नहीं है, तो यह ऑर्डर आईडी उपयोग करने में असमर्थ होगी। क्योंकि यह ज्ञात नहीं है कि यह ऑर्डर किस किस्म का है (अनुबंध) जब तक यह विशिष्ट सूची में नहीं आता है। अधिकांश एक्सचेंजों में, इनवॉइसिंग और विलोपन को उस पैरामीटर को निर्दिष्ट करने की आवश्यकता होती है जो किस्म कोड का वर्णन करता है।
इस प्रभाव को कैसे मिलाया जाएः यदि ऑर्डर करने के लिए एक्सचेंज.आईओ फ़ंक्शन का उपयोग किया जाता है, जो सीधे एक्सचेंज ऑर्डर इंटरफ़ेस को कॉल करता है, तो रिटर्न मान में आमतौर पर एक्सचेंज का मूल प्रतीक (प्रजाति कोड) और मूल ऑर्डर आईडी होता है। फिर दोनों को अंग्रेजी कॉमा के साथ जोड़ना एफएमजेड प्लेटफॉर्म द्वारा परिभाषित ऑर्डर आईडी के अनुरूप है। इसी तरह, यदि एफएमजेड प्लेटफ़ॉर्म के साथ पैक किए गए ऑर्डर इंटरफेस का उपयोग किया जाता है, तो ऑर्डर आईडी के शुरुआती भाग में लेनदेन की किस्म का कोड होता है, इसलिए ऑर्डर के मूल आईडी का उपयोग करने की आवश्यकता होने पर, केवल किस्म कोड और अल्पविराम को हटाने की आवश्यकता होती है।
यह उन्नयनexchange.CancelOrder()
फ़ंक्शन का प्रभावexchange.GetOrder()
फ़ंक्शन समान है.
यह उन्नयनexchange.Buy()
फ़ंक्शन का प्रभावexchange.GetOrder()
फ़ंक्शन समान है.exchange.Buy()
फ़ंक्शन द्वारा लौटाए गए ऑर्डर आईडी एक नई संरचना है, जैसे कि ओकेएक्स एक्सचेंज में वायदा ऑर्डर करते समय लौटाए गए आईडीःLTC-USDT-SWAP,1578360858053058560
。
यह उन्नयनexchange.Sell()
फ़ंक्शन का प्रभावexchange.GetOrder()
फ़ंक्शन समान है.exchange.Sell()
फ़ंक्शन द्वारा लौटाए गए ऑर्डर आईडी एक नई संरचना है, जैसे कि ओकेएक्स एक्सचेंज में वायदा ऑर्डर करते समय लौटाए गए आईडीःETH-USDT-SWAP,1578360832820125696
。
केवल फ्यूचर्स एक्सचेंज ऑब्जेक्ट इस फ़ंक्शन का समर्थन करते हैं, और स्टॉक में डेटा प्राप्त करने के लिए exchange.GetPosition ()) और नए exchange.GetPositions ()) नाम दिए गए हैं, दोनों व्यवहार पूरी तरह से समान हैं।
पुरानी परिभाषाः exchange.GetPosition () फ़ंक्शन, जब कोई पैरामीटर कॉल नहीं किया जाता है, तो वर्तमान लेनदेन जोड़ी, अनुबंध कोड सेट किए गए विशिष्ट अनुबंध के लिए होल्डिंग डेटा प्राप्त करता है।
विनिमय.GetPosition () फ़ंक्शन, जो किसी भी पैरामीटर को निर्दिष्ट किए बिना कॉल करता है, वर्तमान में सेट किए गए लेन-देन जोड़े, अनुबंध कोड द्वारा परिभाषित आयाम सीमा के सभी किस्मों के लिए होल्डिंग प्राप्त करता है।
उदाहरण के लिए, वर्तमान ट्रेडिंग जोड़ी BTC_USDT है और अनुबंध कोड swap है। इस समय कॉल करेंः
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
यह फ़ंक्शन सभी मुद्राओं के लिए यू-बिट स्थायी अनुबंधों के लिए भंडारण डेटा का अनुरोध करता है।
1। नकदी एक्सचेंजों के लिएः
पुरानी परिभाषाः exchange.GetOrders () फ़ंक्शन, जब कोई पैरामीटर निर्दिष्ट नहीं किया जाता है, तो वर्तमान लेनदेन जोड़ी के सभी अधूरे आदेशों को प्राप्त करता है।
विनिमय.GetOrders () फ़ंक्शन, जब कोई पैरामीटर निर्दिष्ट नहीं किया जाता है, तो सभी अनंतिम ऑर्डर प्राप्त किए जाते हैं।
2. वायदा एक्सचेंजों के लिएः
पुरानी परिभाषाः exchange.GetOrders () फ़ंक्शन, जब कोई पैरामीटर नहीं कहा जाता है, तो वर्तमान लेनदेन जोड़े, अनुबंध कोड सेट किए गए विशिष्ट अनुबंध के सभी अधूरे आदेशों को प्राप्त करता है।
विनिमय.GetOrders () फ़ंक्शन, जो किसी भी पैरामीटर को निर्दिष्ट किए बिना कॉल करता है, सभी अधूरे ऑर्डर प्राप्त करता है, जो वर्तमान में सेट किए गए लेनदेन जोड़े, अनुबंध कोड द्वारा निर्धारित आयाम सीमा के भीतर हैं।
उदाहरण के लिए, वर्तमान ट्रेडिंग जोड़ी BTC_USD है, और अनुबंध कोड एक चौथाई है। इस समय कॉल करेंः
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
यह फ़ंक्शन सभी मुद्राओं के लिए मुद्रा विनिमय दर के बारे में अधूरे ऑर्डर डेटा का अनुरोध करता है।
यह अद्यतन टिकर संरचनाओं के लिए एक प्रतीक क्षेत्र जोड़ता है, जो वर्तमान टिकर संरचना के लिए किस प्रकार की जानकारी दर्ज करता है।exchange.GetTicker()
फ़ंक्शन का प्रतीक पैरामीटर प्रारूप पूरी तरह से एक जैसा है.
इस अद्यतन ने ऑर्डर स्ट्रक्चर में प्रतीक फ़ील्ड जोड़ा है, जो फ़ील्ड प्रारूप के साथ मेल खाता है।exchange.GetTicker()
फ़ंक्शन का प्रतीक पैरामीटर प्रारूप पूरी तरह से मेल खाता है. इस अद्यतन में ऑर्डर स्ट्रक्चर के Id फ़ील्ड को भी संशोधित किया गया है, जो कि नए ऑर्डर Id प्रारूप के साथ किस्म की जानकारी, मूल ऑर्डर जानकारी को रिकॉर्ड करता है.exchange.GetOrder()
फ़ंक्शन में ऑर्डर आईडी का वर्णन, यहाँ और नहीं।
इस अद्यतन में स्थिति संरचनाओं के लिए प्रतीक क्षेत्र जोड़ा गया है, जो क्षेत्र के प्रारूप के साथ मेल खाता है।exchange.GetTicker()
फ़ंक्शन का प्रतीक पैरामीटर प्रारूप पूरी तरह से एक जैसा है.
GetFundings फ़ंक्शन एक Funding संरचनात्मक सरणी देता है।
{
"Info": {...}, // 交易所资金费率接口原始应答数据
"Symbol": "BTC_USDT.swap", // FMZ平台定义的品种名称
"Interval": 28800000, // 8小时间隔,单位毫秒
"Time": 1729728000000, // 本期资金费率收取时间
"Rate": 0.0001, // 资金费率,即 0.01 %
}
यह उन्नयन उपयोगकर्ताओं की जरूरतों को पूरा करने के लिए किया गया है, पहले वास्तविक डिस्क संगतता के लिए, और रीसेट सिस्टम एक सप्ताह के भीतर अनुकूलन पूरा हो जाएगा। यदि व्यक्तिगत नीति कोड प्रभावित है, तो कृपया इस लेख के अनुसार परिवर्तन अनुकूलन करें।
इस प्लेटफॉर्म की रणनीति एपीआई इंटरफ़ेस उन्नयन के अनुसार, प्लेटफॉर्म के रीसेट सिस्टम में सभी एपीआई इंटरफेस को सिंक्रनाइज़ किया गया है।
फ्यूचर्स एक्सचेंज ऑब्जेक्ट के लिए सदस्य फ़ंक्शनGetAccount
वापस आ गयाAccount
संरचना में फ़ील्ड का विस्तार किया गया है।
फ्यूचर्स एक्सचेंज ऑब्जेक्ट के सदस्य फ़ंक्शन सेटमार्जिन लेवल को अपग्रेड किया गया है, जिसमें पैरामीटर प्रतीक जोड़ा गया है।
परीक्षण उदाहरणः
function main() {
exchange.SetCurrency("ETH_USDT")
exchange.SetContractType("swap")
// 当前交易对为ETH_USDT,合约代码为swap,设置杠杆值为10
exchange.SetMarginLevel(10)
// 直接指定交易对BTC_USDT,合约代码swap,设置杠杆值20
exchange.SetMarginLevel("BTC_USDT.swap", 20)
}
CtValCcy
एक अनुबंध के मूल्य की इकाई दर्ज करें, एक अनुबंध के मूल्य की इकाई हो सकती हैः BTC, USD, ETH आदि।CtVal
एक्सचेंज पर एक अनुबंध के अनुरूप मूल्य को रिकॉर्ड करें, एक इकाई मेंCtValCcy
फ़ील्ड में दर्ज की गई मुद्राएं। उदाहरण के लिएःCtVal
यह 0.01 है।CtValCcy
"बीटीसी" के लिए, एक अनुबंध का मूल्य 0.01 बीटीसी है।वा-emmnn_मैंने अपने नए रोबोट के बारे में पूछा, क्या रिटर्न आईडी भी लेनदेन के नाम के साथ है, मैंने लंबे समय तक अध्ययन किया है, और क्या लॉग जानकारी अब दिखाई नहीं दे रही है, क्योंकि व्यवस्थापक ने अपडेट किया है?
चांग लिओर/upload/asset/2ffc0f961149326b78aed.png क्या यह समस्या इस इंटरफ़ेस अपडेट के कारण है?
इक्नेम्यूस 希望exchange.Buy函数能增加开止损单的功能。。
नैनसेगसामने की पंक्ति का परिदृश्य
वा-emmnn_ठीक है
आविष्कारक मात्रा - छोटे सपनेठीक है, इसे यहाँ पर टेस्ट करिए. धन्यवाद आपका सवाल पूछने के लिए. इसे जल्द ही हल कर दिया जाएगा.
वा-emmnn_सही है, extMsg1, extMsg2 नहीं दिख रहा है.
आविष्कारक मात्रा - छोटे सपनेनमस्कार, ऑर्डर आईडी यह एक अपरिहार्य परिवर्तन है, क्योंकि सीधे ऑर्डर करने के लिए किस्मों को निर्दिष्ट करने के लिए अपग्रेड किया गया है, ऑर्डर आईडी में किस्म की जानकारी शामिल होनी चाहिए, अन्यथा यह निर्धारित नहीं किया जा सकता है कि यह ऑर्डर किस किस्म का है, और रद्द करने के समय कॉल नहीं किया जा सकता है ((क्योंकि अधिकांश एक्सचेंजों को रद्द करने के लिए किस्मों को निर्दिष्ट करने की आवश्यकता होती है और आईडी निर्दिष्ट करें) । आप जो कहते हैं कि आपके आदेश के बाद की जानकारी दिखाई नहीं दे रही है, इसका मतलब हैः exchange.Buy ((price, amount, extMsg1, extMsg2) कॉल पर, extMsg1, extMsg2 लॉग में दिखाई नहीं दे रहा है?
आविष्कारक मात्रा - छोटे सपनेनमस्ते, आप वर्तमान एक्सचेंज सेटिंग्स, ट्रेडिंग जोड़े, अनुबंध कोड सेटिंग्स भेज सकते हैं।
आविष्कारक मात्राकृपया परीक्षण कोड और कॉन्फ़िगरेशन विवरण को कार्यपत्र पर भेजें, इंजीनियर आपको पहले समय में जवाब देंगे।
आविष्कारक मात्रा - छोटे सपनेएक्सचेंजों के बीच कुछ अंतर हैं, जैसे कि शर्तों का एक-एक तंत्र, और समर्थन की डिग्री अलग-अलग है, यह देखने के लिए कि क्या यह संभव है।
आविष्कारक मात्रा - छोटे सपनेधन्यवाद समर्थन के लिए, यदि कोई समस्या है, तो आप आवेदन पत्र भेज सकते हैं या टिप्पणी कर सकते हैं।