Tài nguyên đang được tải lên... tải...

exchange.IO

Cácexchange.IO()hàm được sử dụng cho các cuộc gọi giao diện khác liên quan đến đối tượng trao đổi.

Cácexchange.IO()hàm gọi các giao diện khác liên quan đến đối tượng trao đổi, trả về dữ liệu phản hồi được yêu cầu trên một cuộc gọi thành công và nó trả về null trên một cuộc gọi thất bại. chuỗi, số, bool, đối tượng, mảng, null, và bất kỳ loại khác được hỗ trợ bởi hệ thống

exchange.IO(k,...args)

Cácktham số được sử dụng để thiết lập loại cuộc gọi, với các giá trị tùy chọn"api", "currency", "base", "trade_margin", "trade_normal", "public_base", "mbase", selfTradePreventionMode, simulate, cross, dual, unifiedvà như vậy. k đúng chuỗi Các thông số mở rộng, được thông qua theo kịch bản gọi cụ thể,argCác tham số có thể được truyền nhiều hơn một.exchange.IO()Số lượng và loại tham số cho cácexchange.IO()chức năng là không xác định. arg đúng chuỗi, số, bool, đối tượng, mảng, null và bất kỳ loại nào khác được hỗ trợ bởi hệ thống

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

Sử dụngexchange.IO("api", httpMethod, resource, params, raw)hình thức gọi củaexchange.IO()Điều này sẽ cho phép bạn mở rộng chức năng không được thêm vào nền tảng FMZ.POSTyêu cầu không yêu cầu bạn phải lo lắng về mã hóa, ký kết, hoặc xác minh các thông số, mà đã được xử lý bởi FMZ ở phía dưới, miễn là bạn điền vào các thông số tương ứng.OKX Exchangehợp đồng tương lai, và sử dụng các thông sốrawđể thông qua các thông số thứ tự:

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

Nếu giá trị khóa trongparamstham số (tức là, tham số yêu cầu HTTP) là một chuỗi, nó cần phải được viết bằng dấu ngoặc kép đơn (tức là, ký hiệu ') xung quanh giá trị tham số để bọc giá trị tham số.

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

Nó hỗ trợ truyền vào đầy đủ url tham số mà có thể bỏ qua các hoạt động của chuyển đổi địa chỉ cơ sở (gọiexchange.SetBase()chức năng).

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

Ví dụ về một cuộc gọi mà không có tham số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());
}

Chuyển đổi cặp giao dịch của trao đổi hiện tại, để nó sẽ chuyển đổi cặp giao dịch được cấu hình bởi mãkhi tạo giao dịch trực tiếphoặctại backtest.

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

Đối với các sàn giao dịch với địa chỉ cơ sở khác nhau cho giao diện ticker và giao diện giao dịch, ví dụ, Bitfinex Futures có hai địa chỉ, một cho giao diện ticker và một cho giao diện giao dịch.exchange.SetBase("xxx"). Bitfinex tương lai chuyển đổi địa chỉ cơ sở giao diện công cộng sử dụngexchange.IO("mbase", "xxx").

I. Đối với các sàn giao dịch tập trung vào tiền điện tử, các cuộc gọi giao diện API khác không được đóng gói đồng nhất, với tham sốkđược thiết lập thành"api":

exchange.IO("api", httpMethod, resource, params, raw)
  • httpMethod : Các tham số là một kiểu chuỗi, điền vào kiểu yêu cầuPOST, GET, vv
  • tài nguyên: Parameter là kiểu chuỗi và điền vào đường dẫn yêu cầu; Nó hỗ trợ việc sử dụng các đường dẫn yêu cầu hoàn chỉnh, xem ví dụ tham chiếu để biết chi tiết.
  • params: Parameter là một kiểu chuỗi, đầy các tham số yêu cầu, được mã hóa bằngURL.
  • raw: Các tham số là các tham số chuỗi thô và có thể được bỏ qua.

Cácexchange.IO("api", httpMethod, resource, params, raw)function call sẽ truy cập giao diện trao đổi và trả về null nếu cuộc gọi thất bại và xảy ra lỗi. Chỉ có thương mại thực sự hỗ trợ gọiexchange.IO("api", httpMethod, resource, params, raw) function.

II. Đối với việc chuyển đổi cặp giao dịch, tham sốkđược thiết lập thành"currency":

exchange.IO("currency", currency)
  • Tiền tệ: Parameter là một kiểu chuỗi với định dạng chữ cái lớn đồng nhất, sử dụng dấu chân để táchbaseCurrencytừquoteCurrency, nhưBTC_USDT.

    1. Hệ thống backtesting bây giờ hỗ trợ chuyển đổi các cặp giao dịch (chỉ dành cho các đối tượng trao đổi giao ngay tiền kỹ thuật số), khi backtesting, bạn cần phải chú ý rằng bạn chỉ có thể chuyển sang các cặp giao dịch với cùng một loại tiền tệ, ví dụ, cặp giao dịch hiện tại làETH_BTCchỉ có thể chuyển sangLTC_BTC, không phảiLTC_USDT.
    2. Đối với các hợp đồng tương lai tiền điện tử, đối tượng trao đổi chuyển đổi cặp giao dịch và mã hợp đồng cần phải được đặt lại để xác định hợp đồng nào được giao dịch.
    3. Sử dụng {@fun/Account/exchange.SetCurrency exchange.SetCurrency} chức năng để chuyển đổi các cặp giao dịch là chính xác giống như sử dụngexchange.IO("currency", currency)để đổi cặp giao dịch.

III. Được sử dụng để chuyển đổi chế độ tài khoản đòn bẩy đối tượng trao đổi giao dịch tiền điện tử tại chỗ:

  • Các thông sốkđược thiết lập thành"trade_margin"để chuyển sang chế độ tài khoản đòn bẩy tại chỗ. đặt lệnh và nhận tài sản tài khoản sẽ truy cập giao diện đòn bẩy tại chỗ của sàn giao dịch. Nếu sàn giao dịch phân biệt giữa ký quỹ đầy đủ và ký quỹ tách biệt trong đòn bẩy tại chỗ, sử dụng:exchange.IO("trade_super_margin")để chuyển sang ký quỹ đầy đủ cho tài khoản đòn bẩy, vàexchange.IO("trade_margin")để chuyển sang ký quỹ tách biệt cho tài khoản đòn bẩy.
  • Parameterkđược thiết lập thành"trade_normal"để chuyển trở lại chế độ tài khoản giao ngay bình thường.

Các sàn giao dịch tại chỗ hỗ trợ chuyển đổi giữa các mô hình tài khoản đòn bẩy:

Chuyển đổi Nhận xét đặc biệt
OKX Các cặp giao dịch trong chế độ tài khoản đòn bẩy khác với các cặp giao dịch bình thường, một số cặp giao dịch có thể không có chúng.exchange.IO("trade_super_margin")để chuyển sang vị trí đầy đủ cho các tài khoản đòn bẩy và sử dụngexchange.IO("trade_margin")để chuyển sang vị trí theo vị trí.trade_normalđể chuyển sang chế độ điểm bình thường.exchange.IO("tdMode", "cross")để chỉ định trực tiếp chế độ đòn bẩy.
Huobi Các cặp giao dịch chế độ tài khoản đòn bẩy khác với các cặp giao dịch bình thường, một số cặp giao dịch có thể không có chúng. Có toàn bộ vị trí và vị trí theo vị trí trong tài khoản đòn bẩy Huobi. Sử dụngtrade_marginđể chuyển sang tài khoản đòn bẩy theo vị trí, sử dụngtrade_super_marginđể chuyển sang tài khoản đòn bẩy vị trí đầy đủ.trade_normalđể chuyển sang chế độ tiền tệ-tiền tệ bình thường.
Binance Chế độ tài khoản đòn bẩy được chia thành vị trí theo vị trí và vị trí đầy đủ, sử dụngtrade_marginđể chuyển sang vị trí theo vị trí, sử dụngtrade_super_marginđể chuyển sang vị trí đầy đủ, sử dụngtrade_normalđể chuyển sang chế độ tiền tệ-tiền tệ bình thường.
GateIO Chế độ tài khoản đòn bẩy được chia thành vị trí theo vị trí và vị trí đầy đủ, sử dụngtrade_marginđể chuyển sang vị trí theo vị trí, sử dụngtrade_super_marginđể chuyển sang vị trí đầy đủ, sử dụngtrade_normalđể chuyển sang chế độ tiền tệ-tiền tệ bình thường.
AscendEx Sử dụngexchange.IO("trade_margin")để chuyển sang chế độ tài khoản đòn bẩy vàexchange.IO("trade_normal")để chuyển trở lại chế độ tài khoản bình thường.
WOO Sử dụngexchange.IO("trade_margin")để chuyển sang chế độ tài khoản đòn bẩy vàexchange.IO("trade_normal")để chuyển trở lại chế độ tài khoản bình thường.
CoinEx Sử dụngexchange.IO("trade_margin")để chuyển sang chế độ tài khoản đòn bẩy vàexchange.IO("trade_normal")để chuyển trở lại chế độ tài khoản bình thường.

IV. Các chức năng chuyển đổi khác:Nhìn xem.exchange.IO()chức năng choCác chức năng chuyển đổi kháctrong Hướng dẫn sử dụng.

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

exchange.SetRate exchange.Log