রিসোর্স লোড হচ্ছে... লোডিং...

ইনভেন্টর কোয়ালিফাইড ট্রেডিং প্ল্যাটফর্ম এপিআই আপগ্রেডঃ কৌশলগত নকশা অভিজ্ঞতা উন্নত

লেখক:উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্ন, তৈরিঃ ২০২৪-০৬-২৮ ০৯:০৮ঃ২৯, আপডেটঃ ২০২৪-১১-০১ ১০:০৮ঃ১২

[TOC]

img

উপস্থাপনা

উদ্ভাবক কুইন্টিফাইড ট্রেডিং প্ল্যাটফর্মটি 9 বছরের প্রযুক্তিগত পুনরাবৃত্তির পরে বহুবার পুনর্নির্মাণ করা হয়েছে, যদিও ব্যবহারকারী হিসাবে আমরা এটি লক্ষ্য করতে পারি নি। গত দুই বছরে, প্ল্যাটফর্মটি ব্যবহারকারীর অভিজ্ঞতার ক্ষেত্রে ব্যাপক অপ্টিমাইজেশন এবং আপগ্রেড করেছে, যার মধ্যে রয়েছে একটি সম্পূর্ণ আপগ্রেড ইউআই ইন্টারফেস, প্রচুর পরিমাণে ব্যবহৃত কুইন্টিফাইড ট্রেডিং সরঞ্জাম এবং আরও বেশি পুনরাবৃত্তি ডেটা সমর্থন যুক্ত করা।

নীতির নকশা সহজতর করার জন্য, লেনদেনের যুক্তি আরও স্পষ্ট এবং নতুনদের জন্য আরও সহজ করার জন্য, প্ল্যাটফর্মটি নীতির জন্য ব্যবহৃত এপিআই ইন্টারফেসটি আপগ্রেড করেছে। সর্বশেষতম সংস্করণটি ব্যবহার করে হোস্টগুলি এই নতুন বৈশিষ্ট্যগুলি সক্ষম করতে পারে। প্ল্যাটফর্মটি পুরানো ইন্টারফেসগুলির সাথে সর্বাধিক সামঞ্জস্যপূর্ণ কলগুলি বজায় রাখে। এপিআই ইন্টারফেসগুলির নতুন বৈশিষ্ট্য সম্পর্কিত তথ্যগুলি উদ্ভাবকদের দ্বারা পরিমাণযুক্ত লেনদেনের প্ল্যাটফর্মের এপিআই ডকুমেন্টেশনে সিঙ্ক আপডেট করা হয়েছেঃ

তাহলে চলুন এই পোস্টের মাধ্যমে জেনে নেওয়া যাক কোন কোন ইন্টারফেস আপগ্রেড আপডেট আছে এবং কোন কোন পরিবর্তন পুরনো পলিসি ব্যবহার করার সময় বর্তমান এপিআই এর সাথে সামঞ্জস্যপূর্ণ হতে হবে।

১। নতুন এপিআই ইন্টারফেস

exchange.GetTickers函数

এই সমষ্টিগত মার্কেট ইন্টারফেসটি কৌশলগুলিকে আরও সহজভাবে বিকাশ করতে এবং চাকা পুনরাবৃত্তি এড়াতে অপরিহার্য। উদ্ভাবকরা পরিমাণগত ট্রেডিং প্ল্যাটফর্মগুলিকে এক্সচেঞ্জের মতো এপিআই প্যাকেজ করে।

যদি এক্সচেঞ্জের কাছে এই ইন্টারফেসটি না থাকে (ব্যক্তিগত এক্সচেঞ্জ), তাহলে কল করুন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
}

img

exchange.CreateOrder函数

নতুনexchange.CreateOrder()ফাংশনগুলি এই আপগ্রেডের মূল বিষয়।exchange.CreateOrder()ফাংশনের সর্বোচ্চ বৈশিষ্ট্য হল সরাসরি ফাংশনের প্যারামিটারে অর্ডারের ধরন, দিকনির্দেশনা উল্লেখ করা। এইভাবে সিস্টেমের বর্তমান সেটিংয়ের উপর নির্ভরশীল না হওয়া পর্যন্ত, লেনদেনের জোড়া, চুক্তি কোড, লেনদেনের দিকনির্দেশনা ইত্যাদি সেটিং করা হয়।

বিভিন্ন ধরণের লেনদেনের একক পরিস্থিতিতে, একযোগে পরিস্থিতিতে নকশার জটিলতা ব্যাপকভাবে হ্রাস পায়।exchange.CreateOrder()ফাংশনের চারটি পরামিতি হলsymbolsidepriceamount

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)
}

img

এবং এটি মাত্র তিনবার ব্যবহার করা হয়েছে।exchange.CreateOrder()ফাংশন কলের ফলে তিনটি ভিন্ন ধরণের, বিভিন্ন দিকের ফিউচার অর্ডার আসে।

exchange.GetHistoryOrders函数

নতুনexchange.GetHistoryOrders()ফাংশনটি একটি নির্দিষ্ট জাতের ঐতিহাসিক লেনদেনের অর্ডার পেতে ব্যবহৃত হয়, যার জন্য এক্সচেঞ্জ ইন্টারফেসের সমর্থনও প্রয়োজন।

ইতিহাসের অর্ডার অনুসন্ধানের জন্য, বিভিন্ন এক্সচেঞ্জের ইন্টারফেসের মধ্যে ব্যাপক পার্থক্য রয়েছেঃ

  • কিছু পৃষ্ঠাগুলি বিভক্ত অনুসন্ধান সমর্থন করে, কিছু সমর্থন করে না।
  • কিছু লেনদেন সমস্ত অনুসন্ধান উইন্ডো সময়কাল, অর্থাৎ N দিনের বেশি অর্ডার অনুসন্ধান করা যায় না;
  • বেশিরভাগ এক্সচেঞ্জ নির্দিষ্ট সময় অনুসন্ধান সমর্থন করে, কিছু সমর্থন করে না।

এই ধরনের ইন্টারফেসগুলিকে সর্বোচ্চ সামঞ্জস্যের সাথে প্যাকেজ করার জন্য, বাস্তব ব্যবহারের ক্ষেত্রে নীতিগত চাহিদা, প্রত্যাশা পূরণ করে কিনা তা বিবেচনা করা প্রয়োজন।

বিস্তারিত ফাংশন বিবরণ এখানে সংক্ষিপ্ত নয়, এপিআই ডকুমেন্টেশনে সিনট্যাক্স ম্যানুয়াল দেখুনঃ

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) +  "`")
}

img

exchange.GetPositions函数

পুরোনো সংস্করণে, সংগ্রহযোগ্য তথ্য ফাংশনটি ছিলexchange.GetPosition()◎ এই আপগ্রেডে ফাংশনের নামকরণের শব্দার্থিকতার সাথে আরও ভালভাবে খাপ খাইয়ে নেওয়ার জন্য একটি নতুন সংগ্রহস্থল ফাংশন যুক্ত করা হয়েছেঃexchange.GetPositions()│এখনও GetPosition ফাংশনকে সামঞ্জস্যপূর্ণ/উন্নত করে।

মনে রাখবেন যে দুটি ফাংশন নামের মধ্যে পার্থক্য শুধুমাত্র একটি শেষের s, কারণ GetPositions আরও সিমেটিকভাবে সামঞ্জস্যপূর্ণ, তাই পরবর্তীগুলি GetPositions ব্যবহার করার পরামর্শ দেওয়া হয়।

exchange.GetPositions()ফাংশনগুলিকে তিনটি উপায়ে কল করা যায়ঃ

  • exchange.GetPositions ((() যদি কোন প্যারামিটার পাঠানো না হয়,লেনদেন / চুক্তির কোডসেটিং, বর্তমান মাত্রার সমস্ত জাতের জন্য স্টোরেজ ডেটা অনুরোধ করে।

  • exchange.GetPositions ((ETH_USDT.swap ট্যাব) যখন নির্দিষ্ট জাতের তথ্য (ETH_USDT.swap এই ফর্ম্যাটটি FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত করা হয়) নির্দিষ্ট জাতের জন্য স্টক ডেটা অনুরোধ করা হয়। উদাহরণঃBTC_USD.swapETH_USDT.swapETH_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.swap ট্যাব) নির্দিষ্ট মাত্রার পরিসরের উপর নির্ভর করে সমস্ত জাতের জন্য স্টকিং ডেটা অনুরোধ করা হয়। USDT.swap: ইউ বিট স্থায়ী চুক্তির পরিধি। USDT.futures: ইউ বিট বিনিময় হার আনুমানিক পরিসীমা। USDC.swap:USDC-এর স্থির চুক্তির পরিসীমা. (USDT ছাড়াও, আপনি বিভিন্ন কোট মুদ্রা নির্দিষ্ট করতে পারেন, আরও সংক্ষিপ্ত বিবরণ নেই) USDC.futures: ইউএসডিসি মূল বিনিময় হার আনুমানিক পরিসীমা। USD.swap: মুদ্রা বিনিময় স্থায়ী চুক্তির পরিসীমা। USD.futures: মুদ্রার মূল বিনিময় হার প্রায় পরিসীমা। ইউএসডিটি.অপশনঃ ইউ বিট বিকল্প চুক্তির পরিসীমা। ইউএসডি.অপশনঃ মুদ্রা ভিত্তিক বিকল্প চুক্তির পরিসীমা।

    কিছু বিশেষ এক্সচেঞ্জ চুক্তির মাত্রা ভাগ করেঃ 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) +  "`")
}

img

যখন প্রবেশexchange.GetPositions()ফাংশনের পরামিতি হচ্ছেETH_USDT.swapএটি ETH এর U-বিট স্থায়ী চুক্তির হোল্ডিং ডেটা পেতে পারে।

যখন প্রবেশ নাexchange.GetPositions()ফাংশনের প্যারামিটারগুলি এক্সচেঞ্জের সমস্ত ইউ-বিট স্থায়ী চুক্তির হোল্ডিং ডেটা (যেহেতু বর্তমান লেনদেনের জোড়াটি BTC_USDT, চুক্তিটি বর্তমান লেনদেনের জোড়া, চুক্তির মাত্রার অনুরোধ অনুসারে স্যুপ), যা কলের সমান) ।exchange.GetPositions("USDT.swap"), একটি অনুরোধের পরিসীমা নির্দিষ্ট করুন।

exchange.GetFundings函数

নতুন GetFundings ফাংশনটি ফিউচার এক্সচেঞ্জের স্থায়ী চুক্তির মূলধন হার পেতে পারে। ফাংশনটির একটি প্যারামিটার symbol রয়েছে। ফাংশনটি একটি Funding স্ট্রাকচার অ্যারে ফেরত দেয়।

  • নির্দিষ্ট করা প্রতীক পরামিতিঃ নির্দিষ্ট জাতের জন্য তহবিলের হার তথ্য কাঠামো অ্যারে (ফান্ডিং অ্যারে) ফেরত দেয়। প্রতীক পরামিতি একটি পরিসীমা সেট করতে পারে, যা GetOrders/GetPositions ফাংশনের অনুরূপ।
  • কোন চিহ্ন পরামিতি নির্দিষ্ট করা হয় নাঃ বর্তমান লেনদেনের জোড়া অনুযায়ী, চুক্তি কোড যেখানে মাত্রা বর্তমান মাত্রা সব জাতের তথ্য ফেরত, যেমন GetOrders / GetPositions ফাংশন।
  • যদি এক্সচেঞ্জকে নির্দিষ্ট জাতের উল্লেখ করতে হয়, তবে একটি প্রতীক প্যারামিটার, অর্থাৎ নির্দিষ্ট জাতের কোড, যেমনঃBTC_USDT.swap⇒ প্যারামিটার পাস না করা বা পাস পরিসীমা ফাংশনটি একটি ভুল বার্তা প্রদান করবে। symbol প্যারামিটার সমর্থিত নয়।

২। এপিআই ইন্টারফেস আপগ্রেড

exchange.GetTicker函数

ফাংশনexchange.GetTicker()এই আপগ্রেডটি মূলত একটি প্রতীক প্যারামিটার যুক্ত করেছে; যা এই ফাংশনটিকে বর্তমান লেনদেনের জোড়া থেকে বিচ্ছিন্ন করতে দেয়; চুক্তি কোডটি প্যারামিটার দ্বারা নির্দিষ্ট জাতের তথ্য অনুসারে সরাসরি বাজার তথ্যের জন্য অনুরোধ করে; কোড লেখার প্রক্রিয়াটিকে সরল করে তোলে; তবে এখনও অপ্রচলিত কলিংয়ের সাথে সামঞ্জস্যপূর্ণ, পুরানো প্ল্যাটফর্মের পুরানো কৌশলগুলির সাথে সর্বাধিক সামঞ্জস্যপূর্ণ।

প্যারামিটারsymbolএক্সচেঞ্জের জন্যexchangeএটি বিভিন্ন ফরম্যাটে উপলব্ধঃ

  • অবিলম্বে বিনিময় বস্তু ফর্ম্যাটঃAAA_BBBএএএ বেস মুদ্রা, বিবিবি কোট মুদ্রা এবং মুদ্রা নাম বড় আকারে লেখা। উদাহরণস্বরূপঃ বিটিসি_ইউএসডিটি।
  • ফিউচার এক্সচেঞ্জের বস্তু ফর্ম্যাটঃAAA_BBB.XXXAAA হল বেস মুদ্রা, 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
}

img

একটি নির্দিষ্ট জাতের একটি ব্যাচ অনুরোধ করার জন্য বাজারের ডেটা ডিজাইন আরও সহজ হয়ে যায়।

exchange.GetDepth函数

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"))
}

img

exchange.GetTrades函数

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) +  "`")
}

img

এই আপগ্রেডটি একইভাবে সামঞ্জস্যপূর্ণ।exchange.Go()ফাংশন সমান্তরালভাবে কল প্ল্যাটফর্ম এপিআই ইন্টারফেসে প্রতীক পরামিতি নির্দিষ্ট জাতের তথ্য প্রেরণ করে।

exchange.GetRecords函数

GetRecords ফাংশনটি এইবার বড় ধরনের পরিবর্তন করেছে, যেহেতু এটি কেবলমাত্র প্রতীক প্যারামিটার দ্বারা সরাসরি অনুরোধ করা K-রেখা ডেটা নির্দিষ্ট করার জন্য বিভিন্ন ধরণের তথ্য সমর্থন করে। এটি K-রেখা পিরিয়ড নির্দিষ্ট করার জন্য মূল period প্যারামিটারটি বজায় রেখেছে, এবং একটি limit প্যারামিটার যুক্ত করেছে যা অনুরোধের সময়কালের জন্য পছন্দসই K-রেখা দৈর্ঘ্য নির্দিষ্ট করতে ব্যবহৃত হয়। এটি পুরানো সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ।

exchange.GetRecords()ফাংশন কল করার পদ্ধতিঃ

  • exchange.GetRecords ((() কোন প্যারামিটার নির্দিষ্ট না করে বর্তমান লেনদেনের জোড়া/চুক্তি কোড সংশ্লিষ্ট জাতের জন্য অনুরোধ করা হলে, K-লাইন চক্র হল কৌশল পুনরাবৃত্তি ইন্টারফেস বা বাস্তব সময় সেট করা ডিফল্ট K-লাইন চক্র।
  • exchange.GetRecords ((60 * 15) যখন শুধুমাত্র K-line cycle parameter নির্দিষ্ট করা হয়, তখন বর্তমান লেনদেন জোড়া/কন্ট্রাক্ট কোড সংশ্লিষ্ট জাতের K-line data অনুরোধ করা হয়।
  • exchange.GetRecords ((BTC_USDT.swap)) কেবলমাত্র জাতের তথ্য নির্দিষ্ট করার সময়, জাতের জন্য অনুরোধ করা K-line ডেটা, K-line cycle হল কৌশল পুনরুদ্ধার ইন্টারফেস বা বাস্তব ডিস্কের সময় সেট করা ডিফল্ট K-line cycle।
  • exchange.GetRecords ((BTC_USDT.swap ট্যাব, ৬০ * ৬০) প্রজাতির তথ্য নির্দিষ্ট করুন, নির্দিষ্ট কে-লাইন চক্রের জন্য কে-লাইন ডেটা অনুরোধ করুন।
  • exchange.GetRecords ((BTC_USDT.swap, 60, 1000) প্রজাতির তথ্য নির্দিষ্ট করুন, নির্দিষ্ট কে-লাইন চক্র নির্দিষ্ট করুন, নিয়মিতভাবে প্রত্যাশিত কে-লাইন দৈর্ঘ্যের জন্য কে-লাইন ডেটা অনুরোধ করুন। মনে রাখবেন যে যখন limit প্যারামিটারটি এক্সচেঞ্জের একক অনুরোধের সর্বাধিক দৈর্ঘ্য অতিক্রম করে, তখন একটি page split request (অর্থাৎ এক্সচেঞ্জের K-line interface কে একাধিকবার কল করা) তৈরি হয়।

বাংলাদেশের বিভিন্ন দেশে, বিশেষ করে বাংলাদেশে, কমিউনিটি ট্রাভেল সার্ভিস চালু করা হয়েছে।

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)
}

img

exchange.GetOrders函数

GetOrders ফাংশন যোগ করা হয়েছেsymbolপ্যারামিটার, যা নির্দিষ্ট জাতকে নির্দিষ্ট করতে পারে এবং এই জাতের জন্য অসম্পূর্ণ অর্ডারগুলি অনুসন্ধান করতে পারে; এছাড়াও নির্দিষ্ট মাত্রার পরিসরের সমস্ত জাতের জন্য অসম্পূর্ণ অর্ডারগুলি অনুসন্ধান করতে সহায়তা করে।

exchange.GetOrders()ফাংশনগুলি নিম্নলিখিত উপায়ে কল করা যেতে পারেঃ

  • exchange.GetOrders ((() ফিউচার এক্সচেঞ্জের জন্যঃ যখন কোন প্যারামিটার পাঠানো হয় না, তখন বর্তমানের ভিত্তিতেলেনদেন / চুক্তির কোডসেটিং, বর্তমান মাত্রা পরিসীমা সমগ্র জাতের জন্য সব অসম্পূর্ণ অর্ডার (উলম্বিত তালিকা) অনুরোধ।
    অবিলম্বে বিনিময় জন্যঃ যখন কোন পরামিতি পাঠানো হয় না, সমস্ত অবিলম্বে বৈচিত্র্যের জন্য অসম্পূর্ণ অর্ডার ("উলম্বিত তালিকা") অনুরোধ করা হয়।
  • exchange.GetOrders ((BTC_USDT.swap ট্যাগ) অথবা exchange.GetOrders ((BTC_USDT ট্যাগ) ফিউচার এক্সচেঞ্জের জন্যঃ exchange.GetOrders ((BTC_USDT.swap ট্যাব), বিটিসির ইউএসডিটি স্থায়ী চুক্তির সমস্ত অপূর্ণ অর্ডার (উলম্বিত তালিকা) অনুসন্ধান করুন। এক্সচেঞ্জের জন্যঃ exchange.GetOrders ((BTC_USDT ট্যাব), সমস্ত অপূর্ণ অর্ডার (Pending Orders) অনুসন্ধান করুন।
  • শুধুমাত্র ফিউচার এক্সচেঞ্জের জন্য সমর্থন exchange.GetOrders (USDT.swap) নির্দিষ্ট মাত্রার আকারের অনুরোধের জন্য সমস্ত জাতের অপরাজিত অর্ডার (Pending List) মাত্রা বিভাজনের পরিসীমা GetPositions ফাংশনে পরিসীমাটির সাথে সামঞ্জস্যপূর্ণ। উদাহরণস্বরূপঃ exchange.GetOrders ((USDT.swap) U-বাইট স্থায়ী চুক্তির আওতায় সমস্ত জাতের অপরাজিত অর্ডার ( (((উলম্বিত তালিকা)) অনুরোধ করে।

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) +  "`")
}
  • যখন প্যারামিটারটি পাস করা হয় না, তখন বর্তমান লেনদেনের জোড়া (BTC_USDT), চুক্তি কোড (swap) এর মাত্রা পরিসরের সমস্ত জাতের অপূর্ণ অর্ডার (উলম্বিত তালিকা) অনুরোধ করা হয়।
  • প্যারামিটার উল্লেখ করুনETH_USDT.swapপ্যারামিটারটি ETH এর USDT-এর স্থিতিশীল চুক্তির অবশিষ্ট অর্ডার ("উলম্বিত তালিকা") অনুরোধ করে।
  • স্ট্রিং প্রেরণ করুন"USDT.swap"ইউএসডিটি-র সব স্থায়ী চুক্তির অবশিষ্ট অর্ডার (উলম্বিত তালিকা) অনুরোধ করা হয়েছে।

exchange.GetPosition函数

এটি এখনও পুরানো সঞ্চয়ী সংগ্রহ ফাংশন নামকরণের সাথে সামঞ্জস্যপূর্ণ, এছাড়াও একটি প্রতীক প্যারামিটার যুক্ত করা হয়েছে, যা নির্দিষ্ট অনুরোধের জন্য সঞ্চয়ী ডেটার বিভিন্ন ধরণের তথ্য নির্দিষ্ট করতে পারে; ফাংশন ব্যবহারের দিক এবংexchange.GetPositions()এই ছবিটি একটি ভিডিও।

exchange.IO函数

জন্য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")
}

img

৩। এপিআই ইন্টারফেসের প্রভাব

exchange.GetOrder函数

এই আপগ্রেডটি মূলত প্রভাবিত করেছে।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.CancelOrder()ফাংশন প্রভাব এবংexchange.GetOrder()ফাংশনটি একই।

exchange.Buy函数

এই আপগ্রেডটিexchange.Buy()ফাংশন প্রভাব এবংexchange.GetOrder()ফাংশনটি একই।exchange.Buy()ফাংশনটি নতুন কাঠামোর জন্য অর্ডার আইডি ফেরত দেয়, যেমন OKX এক্সচেঞ্জের ফিউচার অর্ডার দেওয়ার সময় ফিরে আসা আইডিঃLTC-USDT-SWAP,1578360858053058560

exchange.Sell函数

এই আপগ্রেডটিexchange.Sell()ফাংশন প্রভাব এবংexchange.GetOrder()ফাংশনটি একই।exchange.Sell()ফাংশনটি নতুন কাঠামোর জন্য অর্ডার আইডি ফেরত দেয়, যেমন OKX এক্সচেঞ্জের ফিউচার অর্ডার দেওয়ার সময় ফিরে আসা আইডিঃETH-USDT-SWAP,1578360832820125696

exchange.GetPosition函数

শুধুমাত্র ফিউচার এক্সচেঞ্জের বস্তুগুলি এই ফাংশনটি সমর্থন করে, যা এক্সচেঞ্জ.গেটপোজিশন () এবং এক্সচেঞ্জ.গেটপোজিশন () নামক একটি নতুন ফাংশনের জন্য সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ।

পুরানো সংজ্ঞাঃ exchange.GetPosition () ফাংশন, যখন কোন প্যারামিটার কল নির্দিষ্ট করে না, তখন বর্তমান লেনদেনের জোড়া, চুক্তি কোড সেট করা নির্দিষ্ট চুক্তির হোল্ডিং ডেটা পায়।

পরিবর্তিত, নতুন সংজ্ঞাঃ exchange.GetPosition (()) ফাংশন, কোন প্যারামিটার নির্দিষ্ট না করে কল করার সময়, বর্তমান সেটিং লেনদেন জোড়া, চুক্তি কোড দ্বারা নির্ধারিত মাত্রা পরিসীমা সব জাতের হোল্ডিং পেতে।

উদাহরণস্বরূপ, বর্তমান লেনদেনের জোড়াটি BTC_USDT এবং চুক্তির কোডটি হল swap।

exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")

এই ফাংশনটি সমস্ত মুদ্রার জন্য U-বিট স্থায়ী চুক্তির হোল্ডিং ডেটা অনুরোধ করে।

exchange.GetOrders函数

১। মুদ্রা বিনিময়ের ক্ষেত্রেঃ

পুরানো সংজ্ঞাঃ 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 %
}

৫, রিট্রেসিং সিস্টেম

এই আপগ্রেডটি ব্যবহারকারীর চাহিদা মেটাতে, প্রথমে বাস্তব ডিস্কের সাথে সামঞ্জস্যপূর্ণ, এবং রিসেট সিস্টেমটি এক সপ্তাহের মধ্যে সামঞ্জস্যপূর্ণ হবে। যদি পৃথক নীতি কোডগুলি প্রভাবিত হয় তবে দয়া করে এই নিবন্ধের নির্দেশাবলী অনুসারে পরিবর্তনগুলি সামঞ্জস্য করুন।

এই প্ল্যাটফর্ম কৌশল এপিআই ইন্টারফেস আপগ্রেডের সাথে সাথে, প্ল্যাটফর্মের রিসেটিং সিস্টেমের সমস্ত এপিআই ইন্টারফেসগুলি সিঙ্ক্রোনাইজড আপডেট করা হয়েছে; এছাড়াও রিসেটিং সিস্টেমের নতুন সমর্থনঃ

  • এটি আরও বেশি এক্সচেঞ্জের পুনরায় পরীক্ষার ডেটা সমর্থন করে।
  • এক্সচেঞ্জের সমস্ত ধরণের পুনরায় পরীক্ষার ডেটা সমর্থন করে।
  • ইউ বিট, মুদ্রা বিট বিতরণ, স্থায়ী চুক্তি মিশ্রিত লেনদেন।
  • রিভিউ সময়কালে পণ্য বিনিময় কেন্দ্রগুলি সুইচিং লেনদেনের জোড়া সমর্থন করে।
  • রিভিউ সিস্টেম GetTickers ফাংশন, GetMarkets ফাংশন ইত্যাদির জন্য সমর্থন যোগ করেছে।

অতিরিক্ত আপডেট

১, অ্যাকাউন্ট কাঠামো নতুন ক্ষেত্র ইক্যুইটি, ইউপিএনএল

ফিউচার এক্সচেঞ্জের অবজেক্টের জন্য সদস্য ফাংশনGetAccountফিরে আসাAccountএই কাঠামোটি একটি ক্ষেত্র সম্প্রসারণ করেছে।

  • ইক্যুইটি বর্তমান গ্যারান্টিযুক্ত সম্পদ মুদ্রার মোট অধিকার লাভ, খুব নির্দিষ্ট ফিউচার এক্সচেঞ্জগুলি ব্যতীত, বেশিরভাগই এই ক্ষেত্রটি সমর্থন করে। এটি মূলত রিয়েল-টাইম অ্যাকাউন্ট গ্যারান্টিযুক্ত মুদ্রার লাভ এবং ক্ষতির হিসাবের জন্য ব্যবহৃত হয়।
  • ইউপিএনএল বর্তমান গ্যারান্টিযুক্ত সম্পদ মুদ্রার ধারাবাহিকতার সমস্ত পজিশনের অকার্যকর লাভ এবং ক্ষতি, খুব স্বতন্ত্র ফিউচার এক্সচেঞ্জগুলি ব্যতীত, বেশিরভাগই এই ক্ষেত্রটিকে সমর্থন করে।

২, সেট মার্জিন লেভেল ফাংশন আপগ্রেড করুন symbol প্যারামিটার সমর্থন

ফিউচার এক্সচেঞ্জের অবজেক্টের সদস্য ফাংশন সেটমার্জিন লেভেল আপগ্রেড করা হয়েছে, এতে প্যারামিটার প্রতীক যুক্ত করা হয়েছে।

পরীক্ষামূলক উদাহরণঃ

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)
}

৩। GetMarkets ফাংশনটি CtValCcy ফীল্ডের সাথে মার্কেট স্ট্রাকচার যোগ করে

  • ক্ষেত্রCtValCcyএকটি চুক্তির মূল্যের ইউনিট রেকর্ড করা হয়, যা হতে পারেঃ বিটিসি, ইউএসডি, ইটিএইচ ইত্যাদি
  • ক্ষেত্রCtValবিনিময় বিনিময়ে এই ধরণের চুক্তির মান রেকর্ড করা হয়, একক হিসাবেCtValCcyপয়েন্টের জন্য মুদ্রার নাম লিখুন।CtValএটি 0.01,CtValCcy"বিটিসি" মানে ০.০১ বিটিসি মূল্যের একটি চুক্তি।

আরো

ওয়া-এমএমএন_আমি বললাম, আমার নতুন বোটের কি হয়েছে, রিটার্ন আইডিতেও নামের সাথে লেনদেন রয়েছে, আমি অনেক সময় ধরে গবেষণা করেছি, এবং অর্ডার দেওয়ার পরে লগ ইন করা তথ্য এখন প্রদর্শিত হচ্ছে না, হোস্টের আপডেটের কারণে?

চ্যাং লিওলি/upload/asset/2ffc0f961149326b78aed.png এই সমস্যা কি ইন্টারফেস আপডেটের কারণে হয়েছে?

ইকনেমিউস 希望exchange.Buy函数能增加开止损单的功能。。

ন্যানসেগসামনের সারি

ওয়া-এমএমএন_ভাল.

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নঠিক আছে, এখানে পরীক্ষা করে দেখুন। ধন্যবাদ আপনার প্রশ্নের জন্য। যত তাড়াতাড়ি সম্ভব এটি সমাধান করা হবে।

ওয়া-এমএমএন_ঠিক আছে, extMsg1, extMsg2 প্রদর্শিত হচ্ছে না।

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নহ্যালো, অর্ডার আইডি এটি একটি বাধ্যতামূলক পরিবর্তন, কারণ সরাসরি বর্ণ নির্ধারণের জন্য অর্ডার আপগ্রেড করা হয়েছে, অর্ডার আইডিতে অবশ্যই বর্ণের তথ্য থাকতে হবে, অন্যথায় এই অর্ডারটি কোন জাতের তা নির্ধারণ করা যায় না এবং প্রত্যাহারের সময় কল করা যায় না ((যেহেতু বেশিরভাগ এক্সচেঞ্জের প্রত্যাহারের সময় বর্ণ নির্ধারণ এবং আইডি নির্দিষ্ট করা প্রয়োজন)) । আপনি যে ট্যাগটি উল্লেখ করেছেন তা প্রদর্শিত হচ্ছে না, অর্থাৎঃ exchange.Buy ((price, amount, extMsg1, extMsg2) কল করার সময়, extMsg1, extMsg2 লগগুলিতে প্রদর্শিত হচ্ছে না?

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নহ্যালো, আপনি বর্তমান এক্সচেঞ্জ সেটিংস, ট্রেডিং জোড়া, চুক্তি কোড সেটিংস পাঠান।

উদ্ভাবক পরিমাণদয়া করে পরীক্ষার কোড এবং কনফিগারেশনের বিস্তারিত বিবরণ আমাদের ওয়ার্কফ্লো এ পাঠান এবং ইঞ্জিনিয়াররা আপনাকে প্রথমবারের মত উত্তর দেবেন।

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নতবে, এ বিষয়ে কিছু গবেষণা করা হচ্ছে, যাতে দেখা যায় যে, এই এক্সচেঞ্জের শর্তাবলী ও মেশিনের মধ্যে কিছুটা পার্থক্য রয়েছে।

উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নধন্যবাদ সমর্থন, আপনি যদি কোন সমস্যা আছে, আপনি একটি ফর্ম বা মন্তব্য করতে পারেন।