4
ফোকাস
1271
অনুসারী

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

তৈরি: 2024-06-28 09:08:29, আপডেট করা হয়েছে: 2024-11-01 10:08:12
comments   12
hits   2053

[TOC]

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

ভূমিকা

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

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

সুতরাং এই নিবন্ধটির মাধ্যমে, আসুন আমরা একটি দ্রুত নজর দিই যে ইন্টারফেস আপগ্রেড এবং আপডেটগুলি উপলব্ধ এবং বর্তমান API-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য পুরানো কৌশলগুলি ব্যবহার করার জন্য কী পরিবর্তন প্রয়োজন।

1. নতুন API ইন্টারফেস

exchange.GetTickers ফাংশন

বহু-বৈচিত্র্যের কৌশল এবং পূর্ণ-বাজার পর্যবেক্ষণ কৌশলগুলি ডিজাইন করার জন্য। এই সমষ্টিগত বাজার ইন্টারফেসটি কৌশলগুলিকে বিকাশ করা সহজ করতে এবং চাকাটিকে পুনরায় উদ্ভাবন এড়াতে অপরিহার্য। উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম 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
}

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

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

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

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

exchange.GetHistoryOrders ফাংশন

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

ঐতিহাসিক অর্ডার অনুসন্ধানের জন্য, বিভিন্ন এক্সচেঞ্জ দ্বারা বাস্তবায়িত ইন্টারফেসগুলি ব্যাপকভাবে পরিবর্তিত হয়:

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

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

বিস্তারিত ফাংশন বিবরণ এখানে পুনরাবৃত্তি করা হবে না আপনি 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) +  "`")
}

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

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

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

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

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

exchange.GetFundings ফাংশন

নতুন যোগ করা GetFundings ফাংশন ফিউচার এক্সচেঞ্জে চিরস্থায়ী চুক্তির অর্থায়নের হার পেতে পারে। ফাংশনের একটি প্যারামিটার চিহ্ন রয়েছে। ফাংশন ফান্ডিং স্ট্রাকচারের একটি অ্যারে প্রদান করে।

  • প্রতীক পরামিতি নির্দিষ্ট করুন: নির্দিষ্ট বৈচিত্র্যের ফান্ডিং রেট ইনফরমেশন স্ট্রাকচার অ্যারে (ফান্ডিং অ্যারে) দিন।
  • প্রতীক পরামিতি নির্দিষ্ট না করে: বর্তমান ট্রেডিং পেয়ার এবং চুক্তি কোডের মাত্রা অনুযায়ী সমস্ত বৈচিত্র্যের ডেটা ফেরত দিন।
  • যদি এক্সচেঞ্জকে একটি নির্দিষ্ট বৈচিত্র উল্লেখ করতে হয়, তবে এটি অবশ্যই প্রতীক প্যারামিটারে পাস করতে হবে, যা নির্দিষ্ট বৈচিত্র্যের কোড, উদাহরণস্বরূপ:BTC_USDT.swap. যদি কোন প্যারামিটার পাস না হয় বা একটি পরিসীমা ফাংশন পাস করা হয়, একটি ত্রুটি রিপোর্ট করা হবে প্রতীক পরামিতি সমর্থিত নয়।

2. API ইন্টারফেস আপগ্রেড

exchange.GetTicker ফাংশন

বাজার ফাংশন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
}

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

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

এক্সচেঞ্জ.গেটডেপথ ফাংশন

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

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

exchange.GetTrades ফাংশন

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

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

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

এক্সচেঞ্জ.গেটরেকর্ডস ফাংশন

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

exchange.GetRecords()ফাংশনটি কীভাবে কল করবেন:

  • exchange.GetRecords() যখন কোনো পরামিতি নির্দিষ্ট করা না থাকে, তখন বর্তমান ট্রেডিং পেয়ার/কন্ট্রাক্ট কোডের সাথে সম্পর্কিত K-লাইন ডেটা অনুরোধ করা হয় স্ট্র্যাটেজি ব্যাকটেস্ট ইন্টারফেস বা রিয়েল ট্রেডিং-এ সেট করা ডিফল্ট কে-লাইন পিরিয়ড।
  • exchange.GetRecords(60 * 15) যখন শুধুমাত্র কে-লাইন সাইকেল প্যারামিটার নির্দিষ্ট করা হয়, তখন বর্তমান ট্রেডিং পেয়ার/কন্ট্রাক্ট কোডের সাথে সংশ্লিষ্ট বিভিন্নটির কে-লাইন ডেটা অনুরোধ করা হয়।
  • exchange.GetRecords(“BTC_USDT.swap”) যখন শুধুমাত্র বৈচিত্র্যের তথ্য নির্দিষ্ট করা হয়, তখন নির্দিষ্ট বৈচিত্র্যের কে-লাইন ডেটা অনুরোধ করা হয় কৌশল ব্যাকটেস্ট ইন্টারফেসে বা আসল ট্রেডিংয়ের সময় সেট করা ডিফল্ট কে-লাইন সময়কাল।
  • exchange.GetRecords(“BTC_USDT.swap”, 60 * 60) কে-লাইন ডেটা অনুরোধ করার জন্য পণ্যের তথ্য এবং নির্দিষ্ট কে-লাইন সময়কাল উল্লেখ করুন।
  • exchange.GetRecords(“BTC_USDT.swap”, 60, 1000) বিভিন্ন তথ্য নির্দিষ্ট করুন, নির্দিষ্ট কে-লাইন সময়কাল নির্দিষ্ট করুন এবং কে-লাইন ডেটা অনুরোধ করার জন্য কাঙ্ক্ষিত কে-লাইন দৈর্ঘ্য নির্দিষ্ট করুন। নোট করুন যে যখন সীমা প্যারামিটার এক্সচেঞ্জ থেকে একটি অনুরোধের সর্বাধিক দৈর্ঘ্য অতিক্রম করে, একটি পেজিং অনুরোধ তৈরি হবে (অর্থাৎ, এক্সচেঞ্জের কে-লাইন ইন্টারফেসটিকে একাধিকবার বলা হয়)।

পরীক্ষা করার জন্য 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)
}

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

exchange.GetOrders ফাংশন

GetOrders ফাংশন এছাড়াও যোগ করা হয়েছেsymbolপরামিতি, আপনি একটি নির্দিষ্ট বৈচিত্র উল্লেখ করতে পারেন এবং সেই বৈচিত্র্যের অসমাপ্ত আদেশগুলি (মুলতুবি অর্ডারগুলি) জিজ্ঞাসা করতে পারেন এটি নির্দিষ্ট মাত্রা পরিসরে সমস্ত বৈচিত্র্যের অসমাপ্ত আদেশগুলি (মুলতুবি আদেশ) জিজ্ঞাসা করতে সহায়তা করে।

exchange.GetOrders()ফাংশন কলিং পদ্ধতি হল:

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

exchange.GetPosition ফাংশন

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

exchange.IO ফাংশন

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

উদ্ভাবকের পরিমাণগত ট্রেডিং প্ল্যাটফর্ম API আপগ্রেডের বিশদ ব্যাখ্যা: কৌশল ডিজাইনের অভিজ্ঞতা উন্নত করা

3. API ইন্টারফেসের প্রভাব

exchange.GetOrder ফাংশন

এই আপগ্রেড প্রধানত প্রভাবিত করেexchange.GetOrder(id)ফাংশন পরামিতিid, আইডি প্যারামিটারটি আসল এক্সচেঞ্জ অর্ডার আইডি থেকে ট্রেডিং বৈচিত্র্য সহ একটি স্ট্রিং বিন্যাসে পরিবর্তিত হয়। FMZ প্ল্যাটফর্মের সমস্ত প্যাকেজ অর্ডার আইডি এই বিন্যাসে রয়েছে।

যেমন:

  • বিনিময় আদেশে সংজ্ঞায়িত মূল বিনিময় অর্ডার আইডি হল:123456 এই আপগ্রেডের আগে, GetOrder ফাংশন কল করতে, অর্ডার আইডি পাস করা হয়েছিল123456
  • বিনিময় ক্রমে সংজ্ঞায়িত বিনিময়-নামক পণ্য প্রতীক:BTC-USDT。 উল্লেখ্য যে এখানে যা উল্লেখ করা হয়েছে তা হল এক্সচেঞ্জের নাম দেওয়া ট্রেডিং প্রোডাক্ট কোড, FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত ট্রেডিং পেয়ার নয়।

তাই এই আপগ্রেডের পরে,exchange.GetOrder(id)ফাংশনটি পাস করার জন্য প্যারামিটার আইডির ফর্ম্যাটটি এতে সামঞ্জস্য করা হয়েছে:BTC-USDT,123456

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

  • কিভাবে এই প্রভাবের সাথে সামঞ্জস্যপূর্ণ হতে হবে: যদি আপনি exchange.IO ফাংশন ব্যবহার করে সরাসরি এক্সচেঞ্জের অর্ডার ইন্টারফেসে কল করে অর্ডার দেন, তাহলে রিটার্ন ভ্যালুতে সাধারণত এক্সচেঞ্জের আসল প্রতীক (পণ্য কোড) এবং আসল অর্ডার আইডি থাকে। তারপর ইংরেজি কমা দিয়ে দুটিকে সংযুক্ত করলে আপনাকে FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত অর্ডার আইডি দেওয়া হবে। একইভাবে, আপনি যদি এফএমজেড প্ল্যাটফর্ম দ্বারা এনক্যাপসুলেট করা অর্ডার ইন্টারফেস ব্যবহার করে একটি অর্ডার দেন, যেহেতু অর্ডার আইডির শুরুতে লেনদেন টাইপ কোড, আপনি যদি আসল অর্ডার আইডি ব্যবহার করতে চান তবে আপনাকে শুধুমাত্র টাইপ কোড এবং কমা মুছতে হবে। .

exchange.CancelOrder ফাংশন

এই আপগ্রেডটি এর জন্য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() ফাংশন, যখন কোনো পরামিতি নির্দিষ্ট না করেই কল করা হয়, তখন বর্তমান ট্রেডিং পেয়ার এবং চুক্তি কোড দ্বারা সেট করা নির্দিষ্ট চুক্তির অবস্থানের ডেটা পাওয়া যায়।

সামঞ্জস্য এবং পরিবর্তনের পরে, নতুন সংজ্ঞা হল: exchange.GetPosition() ফাংশন, যখন কোনো পরামিতি নির্দিষ্ট না করেই কল করা হয়, তখন বর্তমান সেট ট্রেডিং পেয়ার এবং চুক্তি কোড দ্বারা নির্ধারিত মাত্রা পরিসরে সমস্ত বৈচিত্র্যের অবস্থান গ্রহণ করে।

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

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

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

exchange.GetOrders ফাংশন

  1. স্পট এক্সচেঞ্জের জন্য:

পুরানো সংজ্ঞা: Exchange.GetOrders() ফাংশন, যখন কোনো পরামিতি উল্লেখ না করেই কল করা হয়, তখন বর্তমান ট্রেডিং পেয়ারের জন্য সমস্ত অসামান্য অর্ডার পাওয়া যায়।

সমন্বয় এবং পরিবর্তনের পরে, নতুন সংজ্ঞা হল: exchange.GetOrders() ফাংশন, যখন কোনো প্যারামিটার উল্লেখ না করে কল করা হয়, তখন সমস্ত স্পট ট্রেডিং জোড়ার অসামান্য অর্ডার পাওয়া যাবে।

  1. ফিউচার এক্সচেঞ্জের জন্য:

পুরানো সংজ্ঞা: Exchange.GetOrders() ফাংশন, যখন কোনো পরামিতি নির্দিষ্ট না করেই কল করা হয়, তখন বর্তমান ট্রেডিং পেয়ার এবং চুক্তি কোড দ্বারা নির্ধারিত নির্দিষ্ট চুক্তির জন্য সমস্ত অসামান্য অর্ডার পাওয়া যায়।

সামঞ্জস্য এবং পরিবর্তনের পরে, নতুন সংজ্ঞা হল: exchange.GetOrders() ফাংশন, যখন কোনো প্যারামিটার উল্লেখ না করেই কল করা হয়, তখন বর্তমান সেট ট্রেডিং পেয়ার এবং চুক্তি কোড দ্বারা নির্ধারিত মাত্রা পরিসরে সমস্ত অসামান্য অর্ডার পাওয়া যায়।

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

exchange.GetOrders()   // 等价于调用 exchange.GetOrders("USD.futures")

এই ফাংশনটি সমস্ত মুদ্রার মুদ্রা-প্রান্তিক বিতরণ চুক্তির জন্য অসামান্য অর্ডার ডেটার জন্য অনুরোধ করবে।

4. কাঠামোগত সমন্বয়

টিকার গঠন

এই আপডেটটি টিকারের কাঠামোতে একটি প্রতীক ক্ষেত্র যোগ করে, যা বর্তমান টিকারের কাঠামো কোন বৈচিত্র্যের বাজার তথ্য রেকর্ড করে। এই ক্ষেত্রের বিন্যাস হিসাবে একইexchange.GetTicker()ফাংশনের প্রতীক প্যারামিটার বিন্যাস হুবহু একই।

অর্ডার কাঠামো

এই আপডেটটি অর্ডার স্ট্রাকচারে একটি সিম্বল ফিল্ড যোগ করে এই ফিল্ডের ফরম্য