[TOC]
উদ্ভাবক কুইন্টিফাইড ট্রেডিং প্ল্যাটফর্মটি 9 বছরের প্রযুক্তিগত পুনরাবৃত্তির পরে বহুবার পুনর্নির্মাণ করা হয়েছে, যদিও ব্যবহারকারী হিসাবে আমরা এটি লক্ষ্য করতে পারি নি। গত দুই বছরে, প্ল্যাটফর্মটি ব্যবহারকারীর অভিজ্ঞতার ক্ষেত্রে ব্যাপক অপ্টিমাইজেশন এবং আপগ্রেড করেছে, যার মধ্যে রয়েছে একটি সম্পূর্ণ আপগ্রেড ইউআই ইন্টারফেস, প্রচুর পরিমাণে ব্যবহৃত কুইন্টিফাইড ট্রেডিং সরঞ্জাম এবং আরও বেশি পুনরাবৃত্তি ডেটা সমর্থন যুক্ত করা।
নীতির নকশা সহজতর করার জন্য, লেনদেনের যুক্তি আরও স্পষ্ট এবং নতুনদের জন্য আরও সহজ করার জন্য, প্ল্যাটফর্মটি নীতির জন্য ব্যবহৃত এপিআই ইন্টারফেসটি আপগ্রেড করেছে। সর্বশেষতম সংস্করণটি ব্যবহার করে হোস্টগুলি এই নতুন বৈশিষ্ট্যগুলি সক্ষম করতে পারে। প্ল্যাটফর্মটি পুরানো ইন্টারফেসগুলির সাথে সর্বাধিক সামঞ্জস্যপূর্ণ কলগুলি বজায় রাখে। এপিআই ইন্টারফেসগুলির নতুন বৈশিষ্ট্য সম্পর্কিত তথ্যগুলি উদ্ভাবকদের দ্বারা পরিমাণযুক্ত লেনদেনের প্ল্যাটফর্মের এপিআই ডকুমেন্টেশনে সিঙ্ক আপডেট করা হয়েছেঃ
তাহলে চলুন এই পোস্টের মাধ্যমে জেনে নেওয়া যাক কোন কোন ইন্টারফেস আপগ্রেড আপডেট আছে এবং কোন কোন পরিবর্তন পুরনো পলিসি ব্যবহার করার সময় বর্তমান এপিআই এর সাথে সামঞ্জস্যপূর্ণ হতে হবে।
এই সমষ্টিগত মার্কেট ইন্টারফেসটি কৌশলগুলিকে আরও সহজভাবে বিকাশ করতে এবং চাকা পুনরাবৃত্তি এড়াতে অপরিহার্য। উদ্ভাবকরা পরিমাণগত ট্রেডিং প্ল্যাটফর্মগুলিকে এক্সচেঞ্জের মতো এপিআই প্যাকেজ করে।
যদি এক্সচেঞ্জের কাছে এই ইন্টারফেসটি না থাকে (ব্যক্তিগত এক্সচেঞ্জ), তাহলে কল করুনexchange.GetTickers()
এই সময় ভুল রিপোর্ট করা হয়ঃ সমর্থন না করা।
এই ফাংশনটি কোন প্যারামিটার ছাড়াই এক্সচেঞ্জকে বাজারের ইন্টারফেসের সমস্ত জাতের রিয়েল-টাইম বাজারের ডেটা ফিরিয়ে দেয়। এটি সহজভাবে বোঝা যায়ঃ
exchange.GetTickers()
ফাংশনটি হলexchange.GetTicker()
ফাংশনটির সম্পূর্ণ বৈচিত্র্যের অনুরোধ সংস্করণ ((নিবিড়ভাবে দেখুন, দুটি ফাংশনের নামের মধ্যে পার্থক্যটি কেবলমাত্র একক বহুবচন) ।) ।
আমরা ওকেএক্স লাইভ সিমুলেটরি ডিস্ক ব্যবহার করে পরিবেশগত পরীক্ষা করেছিঃ
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
。
OKX ফিউচার সিমুলেটর ব্যবহার করে পরিবেশ পরীক্ষাঃ
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()
│এখনও GetPosition ফাংশনকে সামঞ্জস্যপূর্ণ/উন্নত করে।
মনে রাখবেন যে দুটি ফাংশন নামের মধ্যে পার্থক্য শুধুমাত্র একটি শেষের 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:ETH এর USDC-ভিত্তিক চিরস্থায়ী চুক্তি। (USDT ছাড়াও, আপনি বিভিন্ন কোট মুদ্রা নির্দিষ্ট করতে পারেন, আরও সংক্ষিপ্ত বিবরণ নেই)
ETH_USDT.quarter: ETH-এর U-বিট ত্রৈমাসিক বিনিময় হার প্রায়।
BTC_USD.BTC-USD-201226-24250-C: বিটিসির মুদ্রা প্রতিস্থাপন বিকল্প চুক্তি।
exchange.GetPositions ((
কিছু বিশেষ এক্সচেঞ্জ চুক্তির মাত্রা ভাগ করেঃ USDT.futures_combo:Futures_Deribit এক্সচেঞ্জের বিভাজন প্যাকেজ চুক্তি। USD.futures_ff:Futures_Kraken এক্সচেঞ্জের মিশ্রিত সিকিউরিটি বিনিময় হার প্রায়। USD.swap_pf:Futures_Kraken এক্সচেঞ্জের মিশ্রিত সিকিউরিটিজ স্থায়ী চুক্তি।
এক্সচেঞ্জ এপিআই ইন্টারফেস দ্বারা সমর্থিত নয় এমন মাত্রার জন্য, কল করার সময় একটি ত্রুটি রিটার্ন করে এবং একটি শূন্য মান ফেরত দেয়।
OKX ফিউচার সিমুলেটর ব্যবহার করে পরিবেশ পরীক্ষাঃ
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
এটি ETH এর U-বিট স্থায়ী চুক্তির হোল্ডিং ডেটা পেতে পারে।
যখন প্রবেশ নাexchange.GetPositions()
ফাংশনের প্যারামিটারগুলি এক্সচেঞ্জের সমস্ত ইউ-বিট স্থায়ী চুক্তির হোল্ডিং ডেটা (যেহেতু বর্তমান লেনদেনের জোড়াটি BTC_USDT, চুক্তিটি বর্তমান লেনদেনের জোড়া, চুক্তির মাত্রার অনুরোধ অনুসারে স্যুপ), যা কলের সমান) ।exchange.GetPositions("USDT.swap")
, একটি অনুরোধের পরিসীমা নির্দিষ্ট করুন।
নতুন GetFundings ফাংশনটি ফিউচার এক্সচেঞ্জের স্থায়ী চুক্তির মূলধন হার পেতে পারে। ফাংশনটির একটি প্যারামিটার symbol রয়েছে। ফাংশনটি একটি Funding স্ট্রাকচার অ্যারে ফেরত দেয়।
BTC_USDT.swap
⇒ প্যারামিটার পাস না করা বা পাস পরিসীমা ফাংশনটি একটি ভুল বার্তা প্রদান করবে। symbol প্যারামিটার সমর্থিত নয়।ফাংশনexchange.GetTicker()
এই আপগ্রেডটি মূলত একটি প্রতীক প্যারামিটার যুক্ত করেছে; যা এই ফাংশনটিকে বর্তমান লেনদেনের জোড়া থেকে বিচ্ছিন্ন করতে দেয়; চুক্তি কোডটি প্যারামিটার দ্বারা নির্দিষ্ট জাতের তথ্য অনুসারে সরাসরি বাজার তথ্যের জন্য অনুরোধ করে; কোড লেখার প্রক্রিয়াটিকে সরল করে তোলে; তবে এখনও অপ্রচলিত কলিংয়ের সাথে সামঞ্জস্যপূর্ণ, পুরানো প্ল্যাটফর্মের পুরানো কৌশলগুলির সাথে সর্বাধিক সামঞ্জস্যপূর্ণ।
প্যারামিটারsymbol
এক্সচেঞ্জের জন্যexchange
এটি বিভিন্ন ফরম্যাটে উপলব্ধঃ
AAA_BBB
এএএ বেস মুদ্রা, বিবিবি কোট মুদ্রা এবং মুদ্রা নাম বড় আকারে লেখা।
উদাহরণস্বরূপঃ বিটিসি_ইউএসডিটি।AAA_BBB.XXX
AAA হল বেস মুদ্রা, BBB হল কোট মুদ্রা, এবং XXX হল চুক্তির কোড, যেমন স্থায়ী চুক্তির বিনিময়। মুদ্রার নামগুলি বড় আকারে লেখা হয় এবং চুক্তির কোডগুলি ছোট আকারে লেখা হয়।
উদাহরণস্বরূপঃ BTC_USDT.swap, বিটিসির ইউ বিট স্থায়ী চুক্তি।বাংলাদেশের বিভিন্ন দেশে, বিশেষ করে বাংলাদেশে, কমিউনিটি ট্রাভেল সার্ভিস চালু করা হয়েছে।
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()
ফাংশনটি symbol প্যারামিটার যোগ করেছে। গভীরতার তথ্য অনুরোধ করার সময় সরাসরি জাতটি নির্দিষ্ট করা সম্ভব।
বাংলাদেশের বিভিন্ন দেশে, বিশেষ করে বাংলাদেশে, কমিউনিটি ট্রাভেল সার্ভিস চালু করা হয়েছে।
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-রেখা পিরিয়ড নির্দিষ্ট করার জন্য মূল period প্যারামিটারটি বজায় রেখেছে, এবং একটি limit প্যারামিটার যুক্ত করেছে যা অনুরোধের সময়কালের জন্য পছন্দসই 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()
ফাংশনগুলি নিম্নলিখিত উপায়ে কল করা যেতে পারেঃ
OKX ফিউচার সিমুলেটর ব্যবহার করে পরিবেশ পরীক্ষাঃ
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
প্যারামিটারটি ETH এর USDT-এর স্থিতিশীল চুক্তির অবশিষ্ট অর্ডার ("উলম্বিত তালিকা") অনুরোধ করে।"USDT.swap"
ইউএসডিটি-র সব স্থায়ী চুক্তির অবশিষ্ট অর্ডার (উলম্বিত তালিকা) অনুরোধ করা হয়েছে।এটি এখনও পুরানো সঞ্চয়ী সংগ্রহ ফাংশন নামকরণের সাথে সামঞ্জস্যপূর্ণ, এছাড়াও একটি প্রতীক প্যারামিটার যুক্ত করা হয়েছে, যা নির্দিষ্ট অনুরোধের জন্য সঞ্চয়ী ডেটার বিভিন্ন ধরণের তথ্য নির্দিষ্ট করতে পারে; ফাংশন ব্যবহারের দিক এবংexchange.GetPositions()
এই ছবিটি একটি ভিডিও।
জন্যexchange.IO("api", ...)
ফাংশন কলিং পদ্ধতি, সমস্ত এক্সচেঞ্জ অবজেক্টের জন্য আপগ্রেড করা হয়েছে যা সরাসরি সম্পূর্ণ অনুরোধ ঠিকানা ফাংশন সমর্থন করে।
উদাহরণস্বরূপ, OKX এর ইন্টারফেসটি কল করতে চাইলেঃ
GEThttps://www.okx.com/api/v5/account/max-withdrawal ccy: বিটিসি
সরাসরি ডাটাবেস ঠিকানা লিখতে সহায়তা করেhttps://www.okx.com
আপনি যদি আপনার আইও ফাংশনটি কল করতে চান তবে আপনাকে অবশ্যই এটি করতে হবে।
OKX ফিউচার সিমুলেটর ব্যবহার করে পরিবেশ পরীক্ষাঃ
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 প্যারামিটারটি মূল এক্সচেঞ্জ অর্ডার id থেকে একটি স্ট্রিং ফর্ম্যাটে পরিবর্তিত হয়েছে যা লেনদেনের বৈচিত্র্য ধারণ করে। FMZ প্ল্যাটফর্মে সমস্ত প্যাকেজড অর্ডার id এই ফর্ম্যাটে রয়েছে।
উদাহরণস্বরূপঃ
123456
এই আপগ্রেডের আগে, যদি GetOrder ফাংশনটি কল করা হয়, তাহলে ইনপুট করা অর্ডার ID হল123456
。BTC-USDT
❖
মনে রাখবেন যে এখানে এক্সচেঞ্জের নামকরণ করা ট্রেডিং জাতের কোডগুলি উল্লেখ করা হয়েছে, এটি এফএমজেড প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং জোড়া নয়।এই আপগ্রেডের পরে,exchange.GetOrder(id)
ফাংশনটি যে প্যারামিটার id পাঠাতে চায় তার বিন্যাসটি এইভাবে সামঞ্জস্য করা হয়ঃBTC-USDT,123456
。
এই ছবিটি কেন ডিজাইন করা হয়েছে তা ব্যাখ্যা করার আগেঃ যেহেতু CreateOrder ফাংশনটি উন্নত করা হয়েছে, তাই এটি সরাসরি অর্ডারের ধরন নির্দিষ্ট করে (অর্ডারের ধরন এবং বর্তমান সেট করা লেনদেনের জোড়া, চুক্তি কোডগুলি ভিন্ন হতে পারে), যদি প্রত্যাবর্তিত অর্ডার আইডিতে জাতের তথ্য না থাকে তবে এই অর্ডার আইডিটি ব্যবহার করা যাবে না। কারণ নির্দিষ্ট চার্টে অর্ডারটি কী ধরণের (চুক্তি) তা জানা যায় না। বেশিরভাগ এক্সচেঞ্জের চার্টে, প্রত্যাহারের জন্য একটি প্যারামিটার নির্দিষ্ট করা প্রয়োজন যা জাতের কোডটি বর্ণনা করে।
কিভাবে এই প্রভাবকে সামঞ্জস্য করা যায়ঃ যদি exchange.IO ফাংশনটি সরাসরি exchange.IO ইন্টারফেসে কল করে, তবে এটি সাধারণত exchange.IO এর প্রারম্ভিক প্রতীক (বৈচিত্র্য কোড) এবং প্রারম্ভিক অর্ডার আইডি প্রদান করে। সুতরাং এগুলিকে ইংরেজি কমা দিয়ে একত্রিত করা হয় যা FMZ প্ল্যাটফর্মের সংজ্ঞা অনুযায়ী অর্ডার আইডি। একইভাবে, যদি FMZ প্ল্যাটফর্মের প্যাকেজযুক্ত অর্ডার ইন্টারফেসটি ব্যবহার করা হয় তবে অর্ডারটি ডাউনলোড করা হয়, কারণ অর্ডার আইডি এর শুরু অংশটি লেনদেনের জাতের কোড, যদি অর্ডারের প্রাথমিক আইডি ব্যবহার করা হয় তবে কেবল জাতের কোড এবং কমা সরিয়ে ফেলা দরকার।
এই আপগ্রেডটিexchange.CancelOrder()
ফাংশন প্রভাব এবংexchange.GetOrder()
ফাংশনটি একই।
এই আপগ্রেডটিexchange.Buy()
ফাংশন প্রভাব এবংexchange.GetOrder()
ফাংশনটি একই।exchange.Buy()
ফাংশনটি নতুন কাঠামোর জন্য অর্ডার আইডি ফেরত দেয়, যেমন OKX এক্সচেঞ্জের ফিউচার অর্ডার দেওয়ার সময় ফিরে আসা আইডিঃLTC-USDT-SWAP,1578360858053058560
。
এই আপগ্রেডটিexchange.Sell()
ফাংশন প্রভাব এবংexchange.GetOrder()
ফাংশনটি একই।exchange.Sell()
ফাংশনটি নতুন কাঠামোর জন্য অর্ডার আইডি ফেরত দেয়, যেমন OKX এক্সচেঞ্জের ফিউচার অর্ডার দেওয়ার সময় ফিরে আসা আইডিঃETH-USDT-SWAP,1578360832820125696
。
শুধুমাত্র ফিউচার এক্সচেঞ্জের বস্তুগুলি এই ফাংশনটি সমর্থন করে, যা এক্সচেঞ্জ.গেটপোজিশন () এবং এক্সচেঞ্জ.গেটপোজিশন () নামক একটি নতুন ফাংশনের জন্য সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ।
পুরানো সংজ্ঞাঃ exchange.GetPosition () ফাংশন, যখন কোন প্যারামিটার কল নির্দিষ্ট করে না, তখন বর্তমান লেনদেনের জোড়া, চুক্তি কোড সেট করা নির্দিষ্ট চুক্তির হোল্ডিং ডেটা পায়।
পরিবর্তিত, নতুন সংজ্ঞাঃ exchange.GetPosition (()) ফাংশন, কোন প্যারামিটার নির্দিষ্ট না করে কল করার সময়, বর্তমান সেটিং লেনদেন জোড়া, চুক্তি কোড দ্বারা নির্ধারিত মাত্রা পরিসীমা সব জাতের হোল্ডিং পেতে।
উদাহরণস্বরূপ, বর্তমান লেনদেনের জোড়াটি BTC_USDT এবং চুক্তির কোডটি হল swap।
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
এই ফাংশনটি সমস্ত মুদ্রার জন্য U-বিট স্থায়ী চুক্তির হোল্ডিং ডেটা অনুরোধ করে।
১। মুদ্রা বিনিময়ের ক্ষেত্রেঃ
পুরানো সংজ্ঞাঃ exchange.GetOrders ((() ফাংশন, যখন কোন প্যারামিটার নির্দিষ্ট করা হয় না, তখন বর্তমান লেনদেনের জোড়ার সমস্ত অসম্পূর্ণ অর্ডার পাওয়া যায়।
পরিবর্তিত, নতুন সংজ্ঞাঃ exchange.GetOrders () ফাংশন, যখন কোন প্যারামিটার নির্দিষ্ট করা হয় না, তখন সমস্ত অবিলম্বে লেনদেনের জন্য অপূর্ণ অর্ডারগুলি পাওয়া যায়।
২। ফিউচার এক্সচেঞ্জের জন্যঃ
পুরানো সংজ্ঞাঃ exchange.GetOrders () ফাংশন, যখন কোন প্যারামিটার কল নির্দিষ্ট করে না, তখন বর্তমান লেনদেনের জোড়া, চুক্তি কোড সেট করা নির্দিষ্ট চুক্তির সমস্ত অপূর্ণ আদেশগুলি গ্রহণ করে।
পরিবর্তিত, নতুন সংজ্ঞাঃ exchange.GetOrders ()) ফাংশন, কোন প্যারামিটার নির্দিষ্ট না করে কল করার সময়, বর্তমান সেটিং লেনদেনের জোড়া, চুক্তি কোড দ্বারা নির্ধারিত মাত্রা পরিসীমা সব অসম্পূর্ণ আদেশ পায়।
উদাহরণস্বরূপ, বর্তমান লেনদেনের জোড়াটি হল BTC_USD, এবং চুক্তির কোডটি হল quarter.
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
এই ফাংশনটি সমস্ত মুদ্রার মুদ্রা বিনিময় হার সম্পর্কে অসম্পূর্ণ অর্ডার ডেটা অনুরোধ করে।
এই আপডেটে টিকার স্ট্রাকচারের জন্য একটি প্রতীক ক্ষেত্র যুক্ত করা হয়েছে, যা বর্তমান টিকার স্ট্রাকচারের জন্য কোন জাতের ট্রেডিংয়ের তথ্য রেকর্ড করে।exchange.GetTicker()
ফাংশনের প্রতীক পরামিতি বিন্যাস সম্পূর্ণরূপে একমত।
এই আপডেটটি অর্ডার স্ট্রাক্টরের জন্য একটি Symbol ক্ষেত্র যুক্ত করেছে, যা ক্ষেত্রের বিন্যাসেexchange.GetTicker()
ফাংশনের প্রতীক পরামিতি বিন্যাস সম্পূর্ণরূপে একমত। এই আপডেটটি অর্ডার স্ট্রাকচারের আইডি ক্ষেত্রটিও পরিবর্তন করেছে, যা নতুন অর্ডার আইডি বিন্যাসে প্রজাতির তথ্য, মূল অর্ডার তথ্য রেকর্ড করে।exchange.GetOrder()
ফাংশনে অর্ডার আইডি এর বিবরণ, এখানে আর আলোচনা করা হবে না।
এই আপডেটটি পজিশন স্ট্রাক্টরের জন্য একটি Symbol ফিল্ড যুক্ত করেছে, যা ফিল্ডের বিন্যাসকেexchange.GetTicker()
ফাংশনের প্রতীক পরামিতি বিন্যাস সম্পূর্ণরূপে একমত।
GetFundings ফাংশনটি একটি ফান্ডিং স্ট্রাকচার অ্যারে প্রদান করে।
{
"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
একটি চুক্তির মূল্যের ইউনিট রেকর্ড করা হয়, যা হতে পারেঃ বিটিসি, ইউএসডি, ইটিএইচ ইত্যাদিCtVal
বিনিময় বিনিময়ে এই ধরণের চুক্তির মান রেকর্ড করা হয়, একক হিসাবেCtValCcy
পয়েন্টের জন্য মুদ্রার নাম লিখুন।CtVal
এটি 0.01,CtValCcy
"বিটিসি" মানে ০.০১ বিটিসি মূল্যের একটি চুক্তি।ওয়া-এমএমএন_আমি বললাম, আমার নতুন বোটের কি হয়েছে, রিটার্ন আইডিতেও নামের সাথে লেনদেন রয়েছে, আমি অনেক সময় ধরে গবেষণা করেছি, এবং অর্ডার দেওয়ার পরে লগ ইন করা তথ্য এখন প্রদর্শিত হচ্ছে না, হোস্টের আপডেটের কারণে?
চ্যাং লিওলি/upload/asset/2ffc0f961149326b78aed.png এই সমস্যা কি ইন্টারফেস আপডেটের কারণে হয়েছে?
ইকনেমিউস 希望exchange.Buy函数能增加开止损单的功能。。
ন্যানসেগসামনের সারি
ওয়া-এমএমএন_ভাল.
উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নঠিক আছে, এখানে পরীক্ষা করে দেখুন। ধন্যবাদ আপনার প্রশ্নের জন্য। যত তাড়াতাড়ি সম্ভব এটি সমাধান করা হবে।
ওয়া-এমএমএন_ঠিক আছে, extMsg1, extMsg2 প্রদর্শিত হচ্ছে না।
উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নহ্যালো, অর্ডার আইডি এটি একটি বাধ্যতামূলক পরিবর্তন, কারণ সরাসরি বর্ণ নির্ধারণের জন্য অর্ডার আপগ্রেড করা হয়েছে, অর্ডার আইডিতে অবশ্যই বর্ণের তথ্য থাকতে হবে, অন্যথায় এই অর্ডারটি কোন জাতের তা নির্ধারণ করা যায় না এবং প্রত্যাহারের সময় কল করা যায় না ((যেহেতু বেশিরভাগ এক্সচেঞ্জের প্রত্যাহারের সময় বর্ণ নির্ধারণ এবং আইডি নির্দিষ্ট করা প্রয়োজন)) । আপনি যে ট্যাগটি উল্লেখ করেছেন তা প্রদর্শিত হচ্ছে না, অর্থাৎঃ exchange.Buy ((price, amount, extMsg1, extMsg2) কল করার সময়, extMsg1, extMsg2 লগগুলিতে প্রদর্শিত হচ্ছে না?
উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নহ্যালো, আপনি বর্তমান এক্সচেঞ্জ সেটিংস, ট্রেডিং জোড়া, চুক্তি কোড সেটিংস পাঠান।
উদ্ভাবক পরিমাণদয়া করে পরীক্ষার কোড এবং কনফিগারেশনের বিস্তারিত বিবরণ আমাদের ওয়ার্কফ্লো এ পাঠান এবং ইঞ্জিনিয়াররা আপনাকে প্রথমবারের মত উত্তর দেবেন।
উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নতবে, এ বিষয়ে কিছু গবেষণা করা হচ্ছে, যাতে দেখা যায় যে, এই এক্সচেঞ্জের শর্তাবলী ও মেশিনের মধ্যে কিছুটা পার্থক্য রয়েছে।
উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নধন্যবাদ সমর্থন, আপনি যদি কোন সমস্যা আছে, আপনি একটি ফর্ম বা মন্তব্য করতে পারেন।