Peraturanexchange.IO()
fungsi digunakan untuk panggilan antarmuka lain yang terkait dengan objek pertukaran.
Peraturanexchange.IO()
fungsi memanggil antarmuka lain yang terkait dengan objek pertukaran, mengembalikan data respons yang diminta pada panggilan yang berhasil dan mengembalikan nol pada panggilan yang gagal.
string, number, bool, object, array, null, dan jenis lain yang didukung oleh sistem
exchange.IO(k,... args)
Peraturank
Parameter digunakan untuk mengatur jenis panggilan, dengan nilai opsional"api"
, "currency"
, "base"
, "trade_margin"
, "trade_normal"
, "public_base"
, "mbase"
, selfTradePreventionMode
, simulate
, cross
, dual
, unified
dan sebagainya.
k
benar
string
Parameter diperluas, lulus sesuai dengan skenario panggilan tertentu,arg
Karena mekanisme polimorfik dariexchange.IO()
fungsi, pengaturan parameter yang berbeda sesuai dengan fungsi yang berbeda.exchange.IO()
Fungsi tidak pasti.
arg
benar
string, number, bool, object, array, null dan jenis lain yang didukung oleh sistem
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);
}
Menggunakanexchange.IO("api", httpMethod, resource, params, raw)
bentuk panggilan dariexchange.IO()
fungsi, perlu untuk memahami antarmuka API dari pertukaran dan memeriksa dokumentasi yang relevan terlebih dahulu. ini akan memungkinkan Anda untuk memperluas fungsi yang tidak ditambahkan ke platform FMZ.POST
permintaan tidak memerlukan Anda untuk khawatir tentang enkripsi, penandatanganan, atau memverifikasi parameter, yang sudah ditangani oleh FMZ di bagian bawah, selama Anda mengisi parameter yang sesuai.OKX Exchangekontrak berjangka, dan menggunakan parameterraw
untuk melewati parameter urutan:
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);
}
Jika nilai kunci dalamparams
parameter (yaitu, parameter permintaan HTTP) adalah string, itu perlu ditulis dalam tanda kutip tunggal (yaitu, simbol ') di sekitar nilai parameter untuk membungkus nilai parameter.
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);
}
Hal ini mendukung melewati di parameter url lengkap yang dapat menghilangkan operasi beralih alamat dasar (menelponexchange.SetBase()
fungsi).
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);
}
Contoh panggilan tanpa parameterraw
:
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());
}
Mengubah pasangan perdagangan pertukaran saat ini, sehingga akan mengubah pasangan perdagangan yang dikonfigurasi oleh kodepada penciptaan perdagangan langsungataupada 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");
}
Untuk pertukaran dengan alamat dasar yang berbeda untuk antarmuka ticker dan antarmuka perdagangan, misalnya, Bitfinex Futures memiliki dua alamat, satu untuk antarmuka ticker dan yang lainnya untuk antarmuka perdagangan.exchange.SetBase("xxx")
. Bitfinex berjangka beralih alamat dasar antarmuka publik menggunakanexchange.IO("mbase", "xxx")
.
I. Untuk pertukaran yang berpusat pada cryptocurrency panggilan antarmuka API lainnya yang tidak terkapsul secara seragam, dengan parameterk
diatur untuk"api"
:
exchange.IO("api", httpMethod, resource, params, raw)
POST
, GET
, dll.URL
.Peraturanexchange.IO("api", httpMethod, resource, params, raw)
panggilan fungsi akan mengakses antarmuka pertukaran dan mengembalikan null jika panggilan gagal dan terjadi kesalahan.
Hanya perdagangan nyata mendukung panggilanexchange.IO("api", httpMethod, resource, params, raw)
function.
II. Untuk beralih pasangan perdagangan, parameterk
diatur untuk"currency"
:
exchange.IO("currency", currency)
mata uang: Parameter adalah jenis string dengan format huruf besar yang seragam, menggunakan tanda bawah untuk memisahkanbaseCurrency
dariquoteCurrency
, sepertiBTC_USDT
.
ETH_BTC
hanya bisa beralih keLTC_BTC
, tidak untukLTC_USDT
.exchange.IO("currency", currency)
untuk menukar pasangan perdagangan.III. Digunakan untuk beralih ke mode akun leveraged objek pertukaran cryptocurrency spot:
k
diatur untuk"trade_margin"
untuk beralih ke mode akun leverage spot. menempatkan pesanan dan memperoleh aset akun akan mengakses pertukaranexchange.IO("trade_super_margin")
untuk beralih ke margin penuh untuk akun leveraged, danexchange.IO("trade_margin")
untuk beralih ke margin terisolasi untuk akun leveraged.k
diatur untuk"trade_normal"
untuk beralih kembali ke mode akun spot normal.Bursa spot yang mendukung beralih antara model akun leveraged:
Pertukaran | Catatan Khusus |
---|---|
OKX | Pasangan perdagangan dalam mode akun leveraged berbeda dari yang normal, beberapa pasangan perdagangan mungkin tidak memilikinya.exchange.IO("trade_super_margin") untuk beralih ke posisi penuh untuk akun leveraged dan menggunakanexchange.IO("trade_margin") untuk beralih ke posisi dengan posisi.trade_normal untuk beralih ke mode spot normal.exchange.IO("tdMode", "cross") untuk secara langsung menentukan mode leverage. |
Huobi | Pasangan perdagangan mode akun leveraged berbeda dari yang normal, beberapa pasangan perdagangan mungkin tidak memilikinya.trade_margin untuk beralih ke posisi akun leverage berdasarkan posisi, menggunakantrade_super_margin untuk beralih ke leverage account posisi penuh.trade_normal untuk beralih ke mode mata uang-mata uang normal. |
Binance | Modus akun leveraged dibagi menjadi posisi per posisi dan posisi penuh, penggunaantrade_margin untuk beralih ke posisi dengan posisi, menggunakantrade_super_margin untuk beralih ke posisi penuh, gunakantrade_normal untuk beralih ke mode mata uang-mata uang normal. |
Gerbang | Modus akun leveraged dibagi menjadi posisi per posisi dan posisi penuh, penggunaantrade_margin untuk beralih ke posisi dengan posisi, menggunakantrade_super_margin untuk beralih ke posisi penuh, gunakantrade_normal untuk beralih ke mode mata uang-mata uang normal. |
AscendEx | Penggunaanexchange.IO("trade_margin") untuk beralih ke mode akun leverage danexchange.IO("trade_normal") untuk beralih kembali ke mode akun normal. |
WOO | Penggunaanexchange.IO("trade_margin") untuk beralih ke mode akun leverage danexchange.IO("trade_normal") untuk beralih kembali ke mode akun normal. |
CoinEx | Penggunaanexchange.IO("trade_margin") untuk beralih ke mode akun leveraged danexchange.IO("trade_normal") untuk beralih kembali ke mode akun normal. |
IV. Fungsi switching lainnya:Lihatlahexchange.IO()
fungsi untukFungsi switching lainnyadalam Panduan Pengguna.
{@fun/NetSettings/exchange.SetBase exchange.SetBase}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@var EXCHANGE_OP_IO_CONTROL}
exchange.SetRate exchange.Log