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

exchange.IO

দ্যexchange.IO()ফাংশনটি এক্সচেঞ্জ অবজেক্টের সাথে সম্পর্কিত অন্যান্য ইন্টারফেস কলগুলির জন্য ব্যবহৃত হয়।

দ্যexchange.IO()ফাংশন এক্সচেঞ্জ অবজেক্টের সাথে সম্পর্কিত অন্যান্য ইন্টারফেসগুলিকে কল করে, একটি সফল কলের জন্য অনুরোধ করা প্রতিক্রিয়া ডেটা ফেরত দেয় এবং এটি ব্যর্থ কলের জন্য null ফেরত দেয়। string, number, bool, object, array, null, এবং সিস্টেম দ্বারা সমর্থিত অন্য কোন টাইপ

exchange.IO(k,...args)

দ্যkপ্যারামিটার কল টাইপ সেট করতে ব্যবহৃত হয়, ঐচ্ছিক মান সঙ্গে"api", "currency", "base", "trade_margin", "trade_normal", "public_base", "mbase", selfTradePreventionMode, simulate, cross, dual, unifiedইত্যাদি। k সত্য স্ট্রিং প্রসারিত পরামিতি, নির্দিষ্ট কল দৃশ্যকল্প অনুযায়ী পাস,argপ্যারামিটার একের বেশি পাস করা যেতে পারে।exchange.IO()ফাংশন, বিভিন্ন পরামিতি সেটিং বিভিন্ন ফাংশন অনুরূপ।exchange.IO()ফাংশন অনির্দিষ্ট। আরজি সত্য string, number, bool, object, array, null এবং সিস্টেম দ্বারা সমর্থিত অন্য যেকোনো টাইপ

function main() {
    var arrOrders = [
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
    ]
    
    // Call exchange.IO to access the exchange's bulk order interface directly
    var ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", JSON.stringify(arrOrders))
    Log(ret)
}
import json
def main():
    arrOrders = [
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}, 
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
    ]
    ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", json.dumps(arrOrders))
    Log(ret)
void main() {
    json arrOrders = R"([
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
    ])"_json;
    auto ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", arrOrders.dump());
    Log(ret);
}

ব্যবহার করেexchange.IO("api", httpMethod, resource, params, raw)কল ফর্মexchange.IO()ফাংশন, এটি এক্সচেঞ্জের এপিআই ইন্টারফেস বুঝতে এবং প্রাসঙ্গিক ডকুমেন্টেশন পরীক্ষা করা প্রয়োজন। এটি আপনাকে FMZ প্ল্যাটফর্মে যোগ করা হয় না এমন কার্যকারিতা প্রসারিত করার অনুমতি দেবে।POSTঅনুরোধ আপনাকে এনক্রিপশন, স্বাক্ষর, বা পরামিতি যাচাই করার বিষয়ে চিন্তা করতে হবে না, যা ইতিমধ্যে নীচে FMZ দ্বারা পরিচালিত হয়, যতক্ষণ আপনি সংশ্লিষ্ট পরামিতি পূরণ করুন। আপনি ব্যাচ অর্ডার উদাহরণটি উল্লেখ করতে পারেনOKX এক্সচেঞ্জফিউচার চুক্তি, এবং প্যারামিটার ব্যবহারrawঅর্ডার প্যারামিটার পাস করার জন্যঃ

var amount = 1
var price = 10
var basecurrency = "ltc"
function main () {
    // Note that both amount.toString() and price.toString() have a ' character on the left and right side
    var message = "symbol=" + basecurrency + "&amount='" + amount.toString() + "'&price='" + price.toString() + "'&side=buy" + "&type=limit"
    var id = exchange.IO("api", "POST", "/v1/order/new", message)
}
amount = 1
price = 10
basecurrency = "ltc"
def main():
    message = "symbol=" + basecurrency + "&amount='" + str(amount) + "'&price='" + str(price) + "'&side=buy" + "&type=limit"
    id = exchange.IO("api", "POST", "/v1/order/new", message)
void main() {
    auto amount = 1.0;
    auto price = 10.0;
    auto basecurrency = "ltc";
    string message = format("symbol=%s&amount=\"%.1f\"&price=\"%.1f\"&side=buy&type=limit", basecurrency, amount, price);
    auto id = exchange.IO("api", "POST", "/v1/order/new", message);
}

যদি মূল মানparamsপ্যারামিটার (যেমন, HTTP অনুরোধ প্যারামিটার) একটি স্ট্রিং, এটি প্যারামিটার মান আবৃত করতে প্যারামিটার মান চারপাশে একক উদ্ধৃতি (যেমন, চিহ্ন ') লিখতে হবে।

function main() {
    var ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
    Log(ret)
}
def main():
    ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
    Log(ret)
void main() {
    auto ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC");
    Log(ret);
}

এটি সম্পূর্ণ ইউআরএল পরামিতি পাস সমর্থন করে, যা বেস ঠিকানা সুইচিং অপারেশন বাদ দিতে পারেনexchange.SetBase()ফাংশন) ।

function main(){
    var ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
    Log(ret)
}
def main():
    ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
    Log(ret)
void main() {
    auto ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT");
    Log(ret);
}

প্যারামিটার ছাড়াই একটি কলের উদাহরণraw:

function main() {
    // For example, if you set the current trading pair of the exchange object to BTC_USDT at the beginning of the live trading, print the current trading pair tickers
    Log(exchange.GetTicker())
    // Switch the trading pair to LTC_BTC      
    exchange.IO("currency", "LTC_BTC")
    Log(exchange.GetTicker())
}
def main():
    Log(exchange.GetTicker())
    exchange.IO("currency", "LTC_BTC")
    Log(exchange.GetTicker())
void main() {
    Log(exchange.GetTicker());
    exchange.IO("currency", "LTC_BTC");
    Log(exchange.GetTicker());
}

বর্তমান এক্সচেঞ্জের ট্রেডিং জোড়া পরিবর্তন করুন, যাতে এটি কোড দ্বারা কনফিগার করা ট্রেডিং জোড়া পরিবর্তন করবেলাইভ ট্রেডিং সৃষ্টিতেঅথবাব্যাকটেস্টে.

function main () {
    // exchanges[0] is the first exchange object added when the live trading is created 
    exchanges[0].IO("base", "https://api.huobi.pro")
}
def main():
    exchanges[0].IO("base", "https://api.huobi.pro")
void main() {
    exchanges[0].IO("base", "https://api.huobi.pro");
}```
For example, the default base address when the exchange object is wrapped is ```https://api.huobipro.com```, and when you need to switch to ```https://api.huobi.pro```, use the following code to switch:
```javascript
function main() {
    exchange.SetBase("https://api.bitfinex.com")
    exchange.IO("mbase", "https://api-pub.bitfinex.com")
}
def main():
    exchange.SetBase("https://api.bitfinex.com")
    exchange.IO("mbase", "https://api-pub.bitfinex.com")
void main() {
    exchange.SetBase("https://api.bitfinex.com");
    exchange.IO("mbase", "https://api-pub.bitfinex.com");
}

টিকার ইন্টারফেস এবং ট্রেডিং ইন্টারফেস জন্য বিভিন্ন বেস ঠিকানা সঙ্গে এক্সচেঞ্জ জন্য, উদাহরণস্বরূপ, Bitfinex ফিউচার দুটি ঠিকানা আছে, টিকার ইন্টারফেস জন্য এক এবং ট্রেডিং ইন্টারফেস জন্য অন্য. Bitfinex ফিউচার ব্যবহার করে ব্যক্তিগত ইন্টারফেস বেস ঠিকানা পরিবর্তনexchange.SetBase("xxx"). Bitfinex ফিউচার পাবলিক ইন্টারফেস বেস ঠিকানা পরিবর্তন ব্যবহার করেexchange.IO("mbase", "xxx").

I. ক্রিপ্টোকারেন্সি-কেন্দ্রিক এক্সচেঞ্জের জন্য অন্যান্য API ইন্টারফেস কলগুলি যা পরামিতি সহ অভিন্নভাবে ক্যাপসুল করা হয় নাkসেট করুন"api":

exchange.IO("api", httpMethod, resource, params, raw)
  • httpMethod : প্যারামিটারটি একটি স্ট্রিং টাইপ, অনুরোধ টাইপ পূরণ করুনPOST, GETইত্যাদি।
  • resource: প্যারামিটারটি স্ট্রিং টাইপের এবং অনুরোধ পথ পূরণ করে; এটি সম্পূর্ণ অনুরোধ পথ ব্যবহার সমর্থন করে, বিস্তারিত জানার জন্য রেফারেন্স উদাহরণ দেখুন।
  • প্যারামিটার: প্যারামিটারটি একটি স্ট্রিং টাইপ, যা অনুরোধ প্যারামিটার দিয়ে ভরা, যা কোড করা হয়URL.
  • raw: প্যারামিটারটি হল raw স্ট্রিং প্যারামিটার এবং বাদ দেওয়া যেতে পারে।

দ্যexchange.IO("api", httpMethod, resource, params, raw)ফাংশন কল এক্সচেঞ্জ ইন্টারফেসে অ্যাক্সেস করবে এবং কল ব্যর্থ হলে এবং একটি ত্রুটি ঘটে গেলে null ফেরত দেবে। শুধুমাত্র বাস্তব ট্রেডিং সমর্থন কলexchange.IO("api", httpMethod, resource, params, raw) function.

II. ট্রেডিং জোড়া পরিবর্তন করার জন্য, পরামিতিkসেট করা আছে"currency":

exchange.IO("currency", currency)
  • মুদ্রাঃ পরামিতিটি একটি স্ট্রিং টাইপ যা একটি অভিন্ন বড় হাতের ফরম্যাটের সাথে, পৃথক করার জন্য একটি underscore ব্যবহার করেbaseCurrencyথেকেquoteCurrencyযেমন-BTC_USDT.

    1. ব্যাকটেস্টিং সিস্টেম এখন ট্রেডিং জোড়া স্যুইচিং সমর্থন করে (শুধুমাত্র ডিজিটাল মুদ্রা স্পট এক্সচেঞ্জ বস্তুর জন্য), যখন ব্যাকটেস্টিং, আপনি মনোযোগ দিতে হবে যে আপনি শুধুমাত্র একই denominated মুদ্রা সঙ্গে ট্রেডিং জোড়া স্যুইচ করতে পারেন, উদাহরণস্বরূপ, বর্তমান ট্রেডিং জোড়া হয়ETH_BTCশুধুমাত্র পরিবর্তন করতে পারেনLTC_BTC, নাLTC_USDT.
    2. ক্রিপ্টোকারেন্সি ফিউচার চুক্তির ক্ষেত্রে এক্সচেঞ্জ অবজেক্ট ট্রেডিং জোড়া পরিবর্তন করে এবং কোন চুক্তিটি ট্রেড করা হবে তা নির্ধারণের জন্য চুক্তির কোডটি আবার সেট করতে হবে।
    3. {@fun/Account/exchange.SetCurrency exchange.SetCurrency} ফাংশন ব্যবহার করে ট্রেডিং জোড়া স্যুইচ করার জন্য ব্যবহার ঠিক একইexchange.IO("currency", currency)ট্রেডিং জোড়া পরিবর্তন করতে।

iii. ক্রিপ্টোকারেন্সি স্পট এক্সচেঞ্জ অবজেক্ট লিভারেজড অ্যাকাউন্ট মোড স্যুইচ করতে ব্যবহৃত হয়ঃ

  • প্যারামিটারkসেট করা আছে"trade_margin"এক্সচেঞ্জের স্পট লিভারেজ অ্যাকাউন্ট মোডে স্যুইচ করার জন্য। অর্ডার দেওয়া এবং অ্যাকাউন্টের সম্পদ পাওয়া এক্সচেঞ্জের স্পট লিভারেজ ইন্টারফেসে অ্যাক্সেস পাবে। যদি এক্সচেঞ্জ স্পট লিভারেজের ক্ষেত্রে পূর্ণ মার্জিন এবং বিচ্ছিন্ন মার্জিনের মধ্যে পার্থক্য করে, তাহলে ব্যবহার করুনঃexchange.IO("trade_super_margin")লিভারেজযুক্ত অ্যাকাউন্টের জন্য পূর্ণ মার্জিনে স্যুইচ করতে হবে এবংexchange.IO("trade_margin")লিভারেজযুক্ত অ্যাকাউন্টের জন্য আইসোলেটেড মার্জিনে স্যুইচ করতে হবে।
  • প্যারামিটারkসেট করা আছে"trade_normal"স্বাভাবিক স্পট অ্যাকাউন্ট মোডে ফিরে যেতে।

স্পট এক্সচেঞ্জ যা লিভারেজযুক্ত অ্যাকাউন্ট মডেলগুলির মধ্যে স্যুইচিং সমর্থন করেঃ

বিনিময় বিশেষ মন্তব্য
ঠিক আছে লিভারেজযুক্ত অ্যাকাউন্ট মোডে ট্রেডিং জোড়া স্বাভাবিকগুলির থেকে আলাদা, কিছু ট্রেডিং জোড়া তাদের নাও থাকতে পারে।exchange.IO("trade_super_margin")লিভারেজযুক্ত অ্যাকাউন্টের জন্য পূর্ণ পজিশনে স্যুইচ করা এবং ব্যবহার করাexchange.IO("trade_margin")অবস্থান দ্বারা অবস্থান পরিবর্তন করতে.trade_normalসাধারণ স্পট মোডে স্যুইচ করতে।exchange.IO("tdMode", "cross")সরাসরি লিভারেজ মোড নির্দিষ্ট করতে।
হুবি লিভারেজড অ্যাকাউন্ট মোড ট্রেডিং জোড়া স্বাভাবিকের থেকে আলাদা, কিছু ট্রেডিং জোড়া তাদের নাও থাকতে পারে। হুবি লিভারেজড অ্যাকাউন্টে পূর্ণ অবস্থান এবং অবস্থান দ্বারা অবস্থান রয়েছে। ব্যবহার করুনtrade_marginপজিশন অনুযায়ী লিভারেজ অ্যাকাউন্ট পজিশনে স্যুইচ করতে, ব্যবহারtrade_super_marginলিভারেজ অ্যাকাউন্টের পূর্ণ অবস্থানে স্যুইচ করতে।trade_normalস্বাভাবিক মুদ্রা-মুদ্রা মোডে স্যুইচ করতে।
বিন্যান্স লিভারেজযুক্ত অ্যাকাউন্টের মোডটি পজিশন অনুযায়ী পজিশন এবং পূর্ণ পজিশনে বিভক্ত, ব্যবহারtrade_marginঅবস্থান দ্বারা অবস্থান পরিবর্তন করতে, ব্যবহারtrade_super_marginপূর্ণ অবস্থানে স্যুইচ করতে, ব্যবহারtrade_normalস্বাভাবিক মুদ্রা-মুদ্রা মোডে স্যুইচ করতে।
গেটআইও লিভারেজযুক্ত অ্যাকাউন্টের মোডটি পজিশন অনুযায়ী পজিশন এবং পূর্ণ পজিশনে বিভক্ত, ব্যবহারtrade_marginঅবস্থান দ্বারা অবস্থান পরিবর্তন করতে, ব্যবহারtrade_super_marginপূর্ণ অবস্থানে স্যুইচ করতে, ব্যবহারtrade_normalস্বাভাবিক মুদ্রা-মুদ্রা মোডে স্যুইচ করতে।
AscendEx ব্যবহারexchange.IO("trade_margin")লিভারেজ অ্যাকাউন্ট মোডে স্যুইচ করতে এবংexchange.IO("trade_normal")স্বাভাবিক অ্যাকাউন্ট মোডে ফিরে যেতে।
উও ব্যবহারexchange.IO("trade_margin")লিভারেজ অ্যাকাউন্ট মোডে স্যুইচ করতে এবংexchange.IO("trade_normal")স্বাভাবিক অ্যাকাউন্ট মোডে ফিরে যেতে।
কয়েন এক্স ব্যবহারexchange.IO("trade_margin")লিভারেজযুক্ত অ্যাকাউন্ট মোডে স্যুইচ করতে এবংexchange.IO("trade_normal")স্বাভাবিক অ্যাকাউন্ট মোডে ফিরে যেতে।

IV. অন্যান্য সুইচিং ফাংশনঃদেখুনexchange.IO()জন্য ফাংশনঅন্যান্য সুইচিং ফাংশনব্যবহারকারীর নির্দেশিকায়।

{@fun/NetSettings/exchange.SetBase exchange.SetBase}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@var EXCHANGE_OP_IO_CONTROL}

exchange.SetRate exchange.Log