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áck
tham 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
, unified
và 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ể,arg
Cá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.POST
yê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 trongparams
tham 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)
POST
, GET
, vvURL
.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áchbaseCurrency
từquoteCurrency
, nhưBTC_USDT
.
ETH_BTC
chỉ có thể chuyển sangLTC_BTC
, không phảiLTC_USDT
.exchange.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ỗ:
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.k
đượ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