[TOC]

নয় বছরের প্রযুক্তিগত পুনরাবৃত্তির পর, উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্মটি বহুবার পুনর্গঠিত হয়েছে, যদিও ব্যবহারকারী হিসাবে আমরা এটি লক্ষ্য করিনি। বিগত দুই বছরে, প্ল্যাটফর্মটি ব্যবহারকারীর অভিজ্ঞতার পরিপ্রেক্ষিতে প্রচুর অপ্টিমাইজেশন এবং আপগ্রেড করেছে, যার মধ্যে UI ইন্টারফেসের ব্যাপক আপগ্রেড, সাধারণত ব্যবহৃত পরিমাণগত ট্রেডিং সরঞ্জামগুলিকে সমৃদ্ধ করা এবং আরও ব্যাকটেস্ট ডেটা সমর্থন যোগ করা।
কৌশল ডিজাইনকে আরও সুবিধাজনক, লেনদেনের যুক্তি পরিষ্কার এবং নতুনদের জন্য শুরু করা সহজ করার জন্য, প্ল্যাটফর্মটি কৌশল দ্বারা ব্যবহৃত API ইন্টারফেস আপগ্রেড করেছে। এই নতুন বৈশিষ্ট্যগুলি সক্ষম করতে হোস্টের সর্বশেষ সংস্করণ ব্যবহার করুন৷ প্ল্যাটফর্মটি এখনও সর্বাধিক পরিমাণে পুরানো ইন্টারফেস কলগুলির সাথে সামঞ্জস্যপূর্ণ। এপিআই ইন্টারফেসের নতুন ফাংশন সম্পর্কে তথ্য একই সাথে উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মের API ডকুমেন্টেশনে আপডেট করা হয়েছে:
সুতরাং এই নিবন্ধটির মাধ্যমে, আসুন আমরা একটি দ্রুত নজর দিই যে ইন্টারফেস আপগ্রেড এবং আপডেটগুলি উপলব্ধ এবং বর্তমান API-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য পুরানো কৌশলগুলি ব্যবহার করার জন্য কী পরিবর্তন প্রয়োজন।
বহু-বৈচিত্র্যের কৌশল এবং পূর্ণ-বাজার পর্যবেক্ষণ কৌশলগুলি ডিজাইন করার জন্য। এই সমষ্টিগত বাজার ইন্টারফেসটি কৌশলগুলিকে বিকাশ করা সহজ করতে এবং চাকাটিকে পুনরায় উদ্ভাবন এড়াতে অপরিহার্য। উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম APIs যেমন এক্সচেঞ্জগুলিকে এনক্যাপসুলেট করে।
যদি এক্সচেঞ্জের এমন একটি ইন্টারফেস না থাকে (স্বতন্ত্র বিনিময়), কল করুনexchange.GetTickers()একটি ত্রুটি রিপোর্ট করা হবে: সমর্থিত নয়।
এই ফাংশনের কোনো পরামিতি নেই এবং এক্সচেঞ্জের সামগ্রিক বাজার ইন্টারফেসে সমস্ত প্রকারের রিয়েল-টাইম মার্কেট ডেটা ফেরত দেবে। এটি সহজভাবে বোঝা যায়:
exchange.GetTickers()ফাংশন হলexchange.GetTicker()ফাংশনের সম্পূর্ণ সংস্করণের জন্য অনুরোধ করুন (সাবধানে দেখুন, এই দুটি ফাংশনের নামের মধ্যে পার্থক্য হল একবচন এবং বহুবচন)।
আমরা OKX স্পট সিমুলেশন ডিস্ক পরিবেশ পরীক্ষা ব্যবহার করি:
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)
}

এটি শুধুমাত্র 3 বার ব্যবহার করা হয়েছেexchange.CreateOrder()ফাংশন কলটি বিভিন্ন ধরণের এবং দিকনির্দেশের তিনটি ফিউচার অর্ডার দিয়েছে।
নতুনexchange.GetHistoryOrders()ফাংশনটি একটি নির্দিষ্ট বৈচিত্র্যের ঐতিহাসিক লেনদেনের আদেশ পেতে ব্যবহার করা হয় এই ফাংশনের জন্য এক্সচেঞ্জ ইন্টারফেস থেকেও সমর্থন প্রয়োজন৷
ঐতিহাসিক অর্ডার অনুসন্ধানের জন্য, বিভিন্ন এক্সচেঞ্জ দ্বারা বাস্তবায়িত ইন্টারফেসগুলি ব্যাপকভাবে পরিবর্তিত হয়:
এই ধরণের ইন্টারফেসটি সর্বাধিক মাত্রার সামঞ্জস্যের সাথে আবদ্ধ হয়, এটি নীতির চাহিদা এবং প্রত্যাশা পূরণ করে কিনা সেদিকে মনোযোগ দিতে হবে৷
বিস্তারিত ফাংশন বিবরণ এখানে পুনরাবৃত্তি করা হবে না আপনি API ডকুমেন্টেশনে সিনট্যাক্স ম্যানুয়াল উল্লেখ করতে পারেন:
https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders
Binance স্পট বাস্তব পরিবেশ ব্যবহার করে পরীক্ষা করুন:
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(“ETH_USDT.swap”)
নির্দিষ্ট পণ্যের তথ্য নির্দিষ্ট করার সময় (ETH_USDT.swap-এর বিন্যাস FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত করা হয়), নির্দিষ্ট পণ্যের অবস্থানের ডেটার জন্য অনুরোধ করুন।
উদাহরণ:BTC_USD.swap、ETH_USDT.swap、ETH_USDT.quarterঅপেক্ষা করুন
BTC_USD.swap: BTC-এর মুদ্রা-ভিত্তিক চিরস্থায়ী চুক্তি।
ETH_USDT.swap: ETH-এর U-ভিত্তিক চিরস্থায়ী চুক্তি।
ETH_USDC.swap: ETH-এর USDC-ভিত্তিক চিরস্থায়ী চুক্তি। (USDT ছাড়াও, আপনি বিভিন্ন উদ্ধৃতি মুদ্রাও নির্দিষ্ট করতে পারেন, তাই আমি বিশদে যাব না)
ETH_USDT.quarter: ETH-এর U-ভিত্তিক ত্রৈমাসিক বিতরণ চুক্তি।
BTC_USD.BTC-USD-201226-24250-C: বিটিসির কয়েন-মার্জিনড অপশন কন্ট্রাক্ট।
exchange.GetPositions(“USDT.swap”) নির্দিষ্ট মাত্রা পরিসরের উপর ভিত্তি করে সমস্ত প্রকারের জন্য অবস্থানের ডেটা অনুরোধ করুন। USDT.swap: U-ভিত্তিক চিরস্থায়ী চুক্তি পরিসর। USDT.futures: U-স্ট্যান্ডার্ড ডেলিভারি চুক্তি পরিসীমা। USDC.swap: USDC-ভিত্তিক চিরস্থায়ী চুক্তির পরিসর। (USDT ছাড়াও, আপনি বিভিন্ন উদ্ধৃতি মুদ্রাও উল্লেখ করতে পারেন, তাই আমি বিশদে যাব না) USDC.futures: USDC স্ট্যান্ডার্ড ডেলিভারি চুক্তি পরিসীমা। USD.swap: মুদ্রা-ভিত্তিক চিরস্থায়ী চুক্তির পরিসর। USD.futures: কয়েন-ভিত্তিক ডেলিভারি চুক্তির পরিসর। USDT.option: U-ভিত্তিক বিকল্প চুক্তির পরিসর। USD.option: মুদ্রা-ভিত্তিক বিকল্প চুক্তির পরিসর।
কিছু বিশেষ বিনিময় চুক্তির মাত্রা বিভাগ: USDT.futures_combo: Futures_Deribit এক্সচেঞ্জের CFD সমন্বয় চুক্তি। USD.futures_ff: ক্র্যাকেন এক্সচেঞ্জে ফিউচার_হাইব্রিড মার্জিন ডেলিভারি চুক্তি। USD.swap_pf: Futures_Kraken এক্সচেঞ্জে হাইব্রিড মার্জিন চিরস্থায়ী চুক্তি।
এক্সচেঞ্জ API ইন্টারফেস দ্বারা সমর্থিত নয় এমন মাত্রাগুলির জন্য, একটি ত্রুটি রিপোর্ট করা হবে এবং কল করার সময় একটি শূন্য মান ফেরত দেওয়া হবে।
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()ফাংশন প্যারামিটার, আপনি এক্সচেঞ্জে সমস্ত U-ভিত্তিক চিরস্থায়ী চুক্তির অবস্থানের ডেটা পেতে পারেন (কারণ বর্তমান ট্রেডিং পেয়ারটি BTC_USDT এবং চুক্তিটি অদলবদল, অনুরোধটি বর্তমান ট্রেডিং পেয়ার এবং চুক্তির মাত্রা পরিসরের উপর ভিত্তি করে) কল করার সমতুল্যexchange.GetPositions("USDT.swap"), একটি অনুরোধ পরিসীমা নির্দিষ্ট করুন।
নতুন যোগ করা GetFundings ফাংশন ফিউচার এক্সচেঞ্জে চিরস্থায়ী চুক্তির অর্থায়নের হার পেতে পারে। ফাংশনের একটি প্যারামিটার চিহ্ন রয়েছে। ফাংশন ফান্ডিং স্ট্রাকচারের একটি অ্যারে প্রদান করে।
BTC_USDT.swap. যদি কোন প্যারামিটার পাস না হয় বা একটি পরিসীমা ফাংশন পাস করা হয়, একটি ত্রুটি রিপোর্ট করা হবে প্রতীক পরামিতি সমর্থিত নয়।বাজার ফাংশনexchange.GetTicker()এই আপগ্রেড প্রধানত প্রতীক পরামিতি যোগ করে। এই ফাংশনটি বর্তমান ট্রেডিং পেয়ার এবং কন্ট্রাক্ট কোড ছাড়াই প্যারামিটার দ্বারা নির্দিষ্ট করা বিভিন্ন তথ্যের উপর ভিত্তি করে সরাসরি মার্কেট ডেটার জন্য অনুরোধ করার অনুমতি দেয়। কোডিং প্রক্রিয়া সরলীকৃত। একই সময়ে, এটি এখনও পরামিতি পাস না করে কলিং পদ্ধতির সাথে সামঞ্জস্যপূর্ণ, এবং পুরানো প্ল্যাটফর্ম কৌশলের সাথে সর্বাধিক পরিমাণে সামঞ্জস্যপূর্ণ।
প্যারামিটারsymbolবিনিময় বস্তুর জন্যexchangeহ্যাঁ স্পট/ফিউচারের বিভিন্ন ফর্ম্যাট রয়েছে:
AAA_BBB, AAA প্রতিনিধিত্ব করে বেসকারেন্সি, যা লেনদেনের মুদ্রা, এবং BBB quoteCurrency প্রতিনিধিত্ব করে, যা হল মূল্যের মুদ্রা। মুদ্রার নাম সব বড় অক্ষরে।
যেমন: BTC_USDT স্পট ট্রেডিং পেয়ার।AAA_BBB.XXX, AAA প্রতিনিধিত্ব করে বেসকারেন্সি, যা লেনদেনের মুদ্রা, BBB quoteCurrency প্রতিনিধিত্ব করে, যা হল মূল্যের মুদ্রা, এবং XXX চুক্তির কোডকে প্রতিনিধিত্ব করে, যেমন চিরস্থায়ী চুক্তির অদলবদল। মুদ্রার নামগুলি বড় হাতের অক্ষরে এবং চুক্তি কোডগুলি ছোট হাতের অক্ষরে।
যেমন: BTC_USDT.swap, BTC-এর U-ভিত্তিক চিরস্থায়ী চুক্তি।পরীক্ষা করার জন্য Binance ফিউচারের বাস্তব বাণিজ্য পরিবেশ ব্যবহার করুন:
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()ফাংশনটি এই সময় প্রতীক পরামিতি যোগ করে। গভীরতার তথ্যের অনুরোধ করার সময় সরাসরি বৈচিত্র উল্লেখ করা সম্ভব।
পরীক্ষা করার জন্য Binance ফিউচারের বাস্তব বাণিজ্য পরিবেশ ব্যবহার করুন:
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()ফাংশনটি এই সময় প্রতীক পরামিতি যোগ করে। বাজারের লেনদেনের ডেটা অনুরোধ করার সময় পণ্যটি সরাসরি নির্দিষ্ট করা সম্ভব।
পরীক্ষা করার জন্য Binance ফিউচারের বাস্তব বাণিজ্য পরিবেশ ব্যবহার করুন:
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()যখন ফাংশনটি একই সাথে প্ল্যাটফর্ম API ইন্টারফেসকে কল করে, তখন বিভিন্ন তথ্য নির্দিষ্ট করার জন্য প্রতীক প্যারামিটারটি পাস করা হয়।
GetRecords ফাংশন এই সময় প্রধান সমন্বয় করেছে, চিহ্ন পরামিতি সমর্থন করার পাশাপাশি অনুরোধ করা কে-লাইন ডেটার বিভিন্ন তথ্য সরাসরি নির্দিষ্ট করতে। কে-লাইন পিরিয়ড নির্দিষ্ট করার জন্য মূল পিরিয়ড প্যারামিটারটি ধরে রাখা হয় এবং অনুরোধ করার সময় প্রত্যাশিত কে-লাইন দৈর্ঘ্য নির্দিষ্ট করতে একটি সীমা প্যারামিটার যোগ করা হয়। এটি GetRecords ফাংশনের পুরানো সংস্করণের সাথে সামঞ্জস্যপূর্ণ যা শুধুমাত্র পিরিয়ড প্যারামিটারে পাস করে।
exchange.GetRecords()ফাংশনটি কীভাবে কল করবেন:
পরীক্ষা করার জন্য Binance ফিউচারের বাস্তব বাণিজ্য পরিবেশ ব্যবহার করুন:
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"যখন, USDT- মার্জিনড চিরস্থায়ী চুক্তির সমস্ত বকেয়া আদেশ (মুলতুবি আদেশ) অনুরোধ করুন।এটি এখনও পুরানো অবস্থান অধিগ্রহণ ফাংশন নামকরণের সাথে সামঞ্জস্যপূর্ণ, এবং প্রতীক পরামিতিও যোগ করা হয়েছে, যা নির্দিষ্ট অনুরোধকৃত অবস্থানের ডেটার বিভিন্ন তথ্য নির্দিষ্ট করতে পারে। ফাংশন ব্যবহার এবংexchange.GetPositions()সম্পূর্ণ সামঞ্জস্যপূর্ণ।
জন্যexchange.IO("api", ...)সমস্ত বিনিময় বস্তুর জন্য সম্পূর্ণ অনুরোধ ঠিকানায় সরাসরি পাস করার ফাংশন সমর্থন করার জন্য ফাংশন কলিং পদ্ধতিটি আপগ্রেড করা হয়েছে।
উদাহরণস্বরূপ, যদি আপনি OKX ইন্টারফেস কল করতে চান:
GET https://www.okx.com /api/v5/account/max-withdrawal ccy: BTC
বেস ঠিকানায় সরাসরি লেখার সুবিধা প্রদান করুনhttps://www.okx.com, IO ফাংশন কল করার আগে বেস ঠিকানা পরিবর্তন করার কোন প্রয়োজন নেই।
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, আইডি প্যারামিটারটি আসল এক্সচেঞ্জ অর্ডার আইডি থেকে ট্রেডিং বৈচিত্র্য সহ একটি স্ট্রিং বিন্যাসে পরিবর্তিত হয়। FMZ প্ল্যাটফর্মের সমস্ত প্যাকেজ অর্ডার আইডি এই বিন্যাসে রয়েছে।
যেমন:
123456
এই আপগ্রেডের আগে, GetOrder ফাংশন কল করতে, অর্ডার আইডি পাস করা হয়েছিল123456。BTC-USDT。
উল্লেখ্য যে এখানে যা উল্লেখ করা হয়েছে তা হল এক্সচেঞ্জের নাম দেওয়া ট্রেডিং প্রোডাক্ট কোড, FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং পেয়ার নয়।তাই এই আপগ্রেডের পরে,exchange.GetOrder(id)ফাংশনটি পাস করার জন্য প্যারামিটার আইডির ফর্ম্যাটটি এতে সামঞ্জস্য করা হয়েছে:BTC-USDT,123456。
আমাকে প্রথমে ব্যাখ্যা করা যাক কেন এটি এইভাবে ডিজাইন করা হয়েছে: কারণ ক্রিয়েটঅর্ডার ফাংশনটি এবার আপগ্রেড করা হয়েছে যাতে অর্ডার দেওয়ার জন্য সরাসরি পণ্যটি নির্দিষ্ট করা যায় (অর্ডার পণ্যটি বর্তমানে সেট করা ট্রেডিং পেয়ার এবং চুক্তি কোড থেকে আলাদা হতে পারে), যদি ফেরত দেওয়া অর্ডার আইডিতে পণ্যের তথ্য না থাকে। তাহলে এই অর্ডার আইডি ব্যবহার করা হবে না। কারণ যখন নির্দিষ্ট অর্ডার চেক করার কথা আসে, তখন আমরা জানি না কোন ধরনের (চুক্তি) অর্ডার। বেশিরভাগ এক্সচেঞ্জে অর্ডার চেক এবং বাতিল করতে, পণ্য কোড বর্ণনাকারী পরামিতিগুলি নির্দিষ্ট করতে হবে।
কিভাবে এই প্রভাবের সাথে সামঞ্জস্যপূর্ণ হতে হবে: যদি আপনি exchange.IO ফাংশন ব্যবহার করে সরাসরি এক্সচেঞ্জের অর্ডার ইন্টারফেসে কল করে অর্ডার দেন, তাহলে রিটার্ন ভ্যালুতে সাধারণত এক্সচেঞ্জের আসল প্রতীক (পণ্য কোড) এবং আসল অর্ডার আইডি থাকে। তারপর ইংরেজি কমা দিয়ে দুটিকে সংযুক্ত করলে আপনাকে 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 এবং চুক্তির কোড হল সোয়াপ৷ এই সময়ে কল করুন:
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
এই ফাংশনটি সমস্ত মুদ্রার U-ভিত্তিক চিরস্থায়ী চুক্তির অবস্থান ডেটার জন্য অনুরোধ করবে।
পুরানো সংজ্ঞা: Exchange.GetOrders() ফাংশন, যখন কোনো পরামিতি উল্লেখ না করেই কল করা হয়, তখন বর্তমান ট্রেডিং পেয়ারের জন্য সমস্ত অসামান্য অর্ডার পাওয়া যায়।
সমন্বয় এবং পরিবর্তনের পরে, নতুন সংজ্ঞা হল: exchange.GetOrders() ফাংশন, যখন কোনো প্যারামিটার উল্লেখ না করে কল করা হয়, তখন সমস্ত স্পট ট্রেডিং জোড়ার অসামান্য অর্ডার পাওয়া যাবে।
পুরানো সংজ্ঞা: Exchange.GetOrders() ফাংশন, যখন কোনো পরামিতি নির্দিষ্ট না করেই কল করা হয়, তখন বর্তমান ট্রেডিং পেয়ার এবং চুক্তি কোড দ্বারা নির্ধারিত নির্দিষ্ট চুক্তির জন্য সমস্ত অসামান্য অর্ডার পাওয়া যায়।
সামঞ্জস্য এবং পরিবর্তনের পরে, নতুন সংজ্ঞা হল: exchange.GetOrders() ফাংশন, যখন কোনো প্যারামিটার উল্লেখ না করেই কল করা হয়, তখন বর্তমান সেট ট্রেডিং পেয়ার এবং চুক্তি কোড দ্বারা নির্ধারিত মাত্রা পরিসরে সমস্ত অসামান্য অর্ডার পাওয়া যায়।
উদাহরণস্বরূপ, বর্তমান ট্রেডিং পেয়ার হল BTC_USD এবং চুক্তি কোড হল কোয়ার্টার। এই সময়ে কল করুন:
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
এই ফাংশনটি সমস্ত মুদ্রার মুদ্রা-প্রান্তিক বিতরণ চুক্তির জন্য অসামান্য অর্ডার ডেটার জন্য অনুরোধ করবে।
এই আপডেটটি টিকারের কাঠামোতে একটি প্রতীক ক্ষেত্র যোগ করে, যা বর্তমান টিকারের কাঠামো কোন বৈচিত্র্যের বাজার তথ্য রেকর্ড করে। এই ক্ষেত্রের বিন্যাস হিসাবে একইexchange.GetTicker()ফাংশনের প্রতীক প্যারামিটার বিন্যাস হুবহু একই।
এই আপডেটটি অর্ডার স্ট্রাকচারে একটি সিম্বল ফিল্ড যোগ করে এই ফিল্ডের ফরম্য