संसाधन लोड हो रहा है... लोड करना...

exchange.IO

..exchange.IO()फ़ंक्शन का उपयोग एक्सचेंज ऑब्जेक्ट से संबंधित अन्य इंटरफेस कॉल के लिए किया जाता है.

..exchange.IO()फ़ंक्शन एक्सचेंज ऑब्जेक्ट से संबंधित अन्य इंटरफेस को कॉल करता है, एक सफल कॉल पर अनुरोधित प्रतिक्रिया डेटा लौटाता है और यह एक असफल कॉल पर शून्य लौटाता है। 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और इसी तरह। क सच स्ट्रिंग विस्तारित पैरामीटर, विशिष्ट कॉल परिदृश्य के अनुसार पारित,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()कार्यक्षमता, यह आवश्यक है समझने के लिए एपीआई इंटरफेस के विनिमय और जाँच प्रासंगिक प्रलेखन पहले. यह आप विस्तार करने के लिए अनुमति देगा कार्यक्षमता है कि नहीं है में जोड़ा गया है एफएमजेड मंच.POSTअनुरोध आपको एन्क्रिप्शन, हस्ताक्षर, या पैरामीटर सत्यापित करने के बारे में चिंता करने की आवश्यकता नहीं है, जो पहले से ही नीचे एफएमजेड द्वारा संभाला जाता है, जब तक आप संबंधित पैरामीटर भरते हैं। आप के बैच आदेश उदाहरण का संदर्भ ले सकते हैंओकेएक्स एक्सचेंजवायदा अनुबंध, और पैरामीटर का उपयोग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");
}

उदाहरण के लिए, टिकर इंटरफेस और ट्रेडिंग इंटरफेस के लिए अलग-अलग आधार पते वाले एक्सचेंजों के लिए, बिटकॉइन फ्यूचर्स में दो पते हैं, एक टिकर इंटरफेस के लिए और दूसरा ट्रेडिंग इंटरफेस के लिए। बिटकॉइन फ्यूचर्स निजी इंटरफ़ेस आधार पते का उपयोग करके स्विच करते हैंexchange.SetBase("xxx"). Bitfinex वायदा का उपयोग कर सार्वजनिक इंटरफ़ेस आधार पते स्विचexchange.IO("mbase", "xxx").

क्रिप्टोक्यूरेंसी-केंद्रित एक्सचेंजों के लिए अन्य एपीआई इंटरफेस कॉल जो समान रूप से कैप्सुलेट नहीं हैं, पैरामीटर के साथkसेट करना"api":

exchange.IO("api", httpMethod, resource, params, raw)
  • httpMethod : पैरामीटर एक स्ट्रिंग प्रकार है, अनुरोध प्रकार भरेंPOST, GETआदि।
  • संसाधन: पैरामीटर स्ट्रिंग प्रकार का है और अनुरोध पथ भरता है; यह पूर्ण अनुरोध पथों के उपयोग का समर्थन करता है, विवरण के लिए संदर्भ उदाहरण देखें.
  • parameters: पैरामीटर एक स्ट्रिंग प्रकार है, जो अनुरोध पैरामीटर से भरा हुआ है, जिसेURL.
  • raw: पैरामीटर कच्चा स्ट्रिंग पैरामीटर है और बाहर छोड़ दिया जा सकता है.

..exchange.IO("api", httpMethod, resource, params, raw)फ़ंक्शन कॉल एक्सचेंज इंटरफेस तक पहुंच जाएगा और यदि कॉल विफल हो जाती है और त्रुटि होती है तो शून्य लौटाएगा. केवल वास्तविक व्यापार का समर्थन करता हैexchange.IO("api", httpMethod, resource, params, raw) function.

II. व्यापारिक जोड़े बदलने के लिए, पैरामीटरkपर सेट है"currency":

exchange.IO("currency", currency)
  • मुद्राः पैरामीटर एक समान अपरकेस प्रारूप के साथ एक स्ट्रिंग प्रकार है, जो अलग करने के लिए एक रेखांकन का उपयोग करता हैbaseCurrencyसेquoteCurrency, जैसेBTC_USDT.

    1. बैकटेस्टिंग प्रणाली अब व्यापारिक जोड़े स्विचिंग का समर्थन करता है (केवल डिजिटल मुद्रा स्पॉट विनिमय वस्तुओं के लिए), जब बैकटेस्टिंग, आप ध्यान देना चाहिए कि आप केवल एक ही मुद्रा के साथ व्यापारिक जोड़े के लिए स्विच कर सकते हैं, उदाहरण के लिए, वर्तमान व्यापारिक जोड़ी हैETH_BTCकेवल पर स्विच कर सकते हैंLTC_BTC, नहीं करनाLTC_USDT.
    2. क्रिप्टोक्यूरेंसी वायदा अनुबंधों के लिए विनिमय वस्तु व्यापारिक जोड़े बदलती है और अनुबंध कोड को फिर से निर्धारित करने की आवश्यकता होती है कि किस अनुबंध का व्यापार किया जाना है।
    3. {@fun/Account/exchange.SetCurrency exchange.SetCurrency} फ़ंक्शन का उपयोग ट्रेडिंग जोड़े को स्विच करने के लिए उपयोग करने के समान ही हैexchange.IO("currency", currency)व्यापारिक जोड़े बदलने के लिए।

क्रिप्टोक्यूरेंसी स्पॉट एक्सचेंज ऑब्जेक्ट लीवरेज्ड अकाउंट मोड को स्विच करने के लिए प्रयोग किया जाता हैः

  • पैरामीटर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")सीधे लीवरेज मोड को निर्दिष्ट करने के लिए।
हुओबी लीवरेज्ड अकाउंट मोड ट्रेडिंग जोड़े सामान्य से भिन्न होते हैं, कुछ ट्रेडिंग जोड़े में वे नहीं हो सकते हैं। Huobi लीवरेज्ड खातों में पूर्ण पद और स्थिति-दर-स्थिति हैं। उपयोग करें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")सामान्य खाता मोड पर वापस स्विच करने के लिए।
CoinEx प्रयोगexchange.IO("trade_margin")लीवरेज्ड खाता मोड पर स्विच करने के लिए औरexchange.IO("trade_normal")सामान्य खाता मोड पर वापस स्विच करने के लिए।

अन्य स्विचिंग कार्य:देखोexchange.IO()कार्य के लिएअन्य स्विचिंग फ़ंक्शनउपयोगकर्ता गाइड में।

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

exchange.SetRate exchange.Log