Dieexchange.IO()
Funktion wird für andere Schnittstellenanrufe im Zusammenhang mit dem Austauschobjekt verwendet.
Dieexchange.IO()
Funktion ruft andere Schnittstellen auf, die mit dem Exchange-Objekt verbunden sind, und gibt bei einem erfolgreichen Anruf die angeforderten Antwortdaten zurück und bei einem fehlgeschlagenen Anruf null zurück.
String, number, bool, object, array, null und jeder andere vom System unterstützte Typ
exchange.IO(k,... args)
Diek
Parameter wird verwendet, um den Anruftyp mit optionalen Werten festzulegen"api"
, "currency"
, "base"
, "trade_margin"
, "trade_normal"
, "public_base"
, "mbase"
, selfTradePreventionMode
, simulate
, cross
, dual
, unified
und so weiter.
k
wahr
String
Erweiterte Parameter gemäß dem spezifischen Anrufszenario,arg
Durch den polymorphen Mechanismus derexchange.IO()
Die Anzahl und Art der Parameter, die für dieexchange.IO()
Funktion sind unbestimmt.
Arg
- Das stimmt.
String, number, bool, object, array, null und alle anderen vom System unterstützten Typen
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);
}
Mit Hilfe derexchange.IO("api", httpMethod, resource, params, raw)
Aufrufformular derexchange.IO()
Die Funktionalität der FMZ-Plattform kann durch die Einreichung eines Antrags auf die Übermittlung von Informationen über die Funktionalität der FMZ-Plattform erweitert werden.POST
Anforderung erfordert nicht, dass Sie sich Sorgen um die Verschlüsselung, Signierung oder Überprüfung der Parameter machen, die bereits von FMZ unten behandelt werden, solange Sie die entsprechenden Parameter ausfüllen.OKX ExchangeFutures-Kontrakte und verwenden Sie den Parameterraw
zur Übergabe der Auftragsparameter:
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);
}
Wenn der Schlüsselwert in derparams
Parameter (d.h. HTTP-Anfrageparameter) ist eine Zeichenfolge, sie muss in einzelnen Anführungszeichen (d.h. das Symbol ') um den Parameterwert geschrieben werden, um den Parameterwert zu umschließen.
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);
}
Es unterstützt die Übergabe vollständiger URL-Parameter, die den Betrieb des Umschaltens der Basisadresse (Aufrufen der URL-Adresse) weglassen können.exchange.SetBase()
Funktion).
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);
}
Beispiel für einen Aufruf ohne 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());
}
Wechseln Sie das Handelspaar des aktuellen Austauschs, so dass es das Handelspaar durch Code konfiguriert wechselnbei der Schaffung von Live-Handelsgeschäftenoderbei 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");
}
Für Börsen mit unterschiedlichen Basisadressen für die Tickerschnittstelle und die Handelsschnittstelle haben Bitfinex Futures beispielsweise zwei Adressen, eine für die Tickerschnittstelle und die andere für die Handelsschnittstelle.exchange.SetBase("xxx")
. Bitfinex Futures wechseln öffentliche Schnittstelle Basisadresse mitexchange.IO("mbase", "xxx")
.
I. Für kryptogeldzentrierte Börsen andere API-Schnittstellenanrufe, die nicht einheitlich verkapselt sind, mit Parameterk
auf"api"
:
exchange.IO("api", httpMethod, resource, params, raw)
POST
, GET
, usw.URL
.Dieexchange.IO("api", httpMethod, resource, params, raw)
Funktionsanruf wird auf die Exchange-Schnittstelle zugreifen und null zurückgeben, wenn der Anruf fehlschlägt und ein Fehler auftritt.
Nur der echte Handel unterstützt die Anrufung derexchange.IO("api", httpMethod, resource, params, raw)
function.
II. Bei Wechseln von Handelsparen wird der Parameterk
ist auf"currency"
:
exchange.IO("currency", currency)
Währung: Der Parameter ist ein Zeichenkettentyp mit einem einheitlichen Großbuchstabenformat, bei dem ein Unterstrich verwendet wird, um zu trennenbaseCurrency
vonquoteCurrency
, wie zum BeispielBTC_USDT
.
ETH_BTC
kann nur aufLTC_BTC
, nicht zuLTC_USDT
.exchange.IO("currency", currency)
um Handelspare zu wechseln.III. Wird verwendet, um den Leveraged-Konto-Modus des Kryptowährungs-Spot-Austauschobjekts zu wechseln:
k
ist auf"trade_margin"
Die Angabe von Aufträgen und der Erwerb von Kontovermögen erfolgt über die Spot-Leveraged-Schnittstelle der Börse.
Wenn die Börse bei Spot-Leverage zwischen voller Marge und isolierter Marge unterscheidet, wird folgendes verwendet:exchange.IO("trade_super_margin")
die Umstellung auf die volle Marge für das Hebelkonto undexchange.IO("trade_margin")
Umstellung auf eine isolierte Marge für das Hebelkonto.k
ist auf"trade_normal"
Zurück zum normalen Spotkonto-Modus.Spotbörsen, die den Wechsel zwischen Leveraged-Konto-Modellen unterstützen:
Auswechslungen | Besondere Bemerkungen |
---|---|
OKX | Handelspaare im Hebelkonto-Modus unterscheiden sich von normalen, einige Handelspaare haben sie möglicherweise nicht.exchange.IO("trade_super_margin") zur Umstellung auf die volle Position für Hebelkonten und zur Verwendungexchange.IO("trade_margin") Sie können auch eine andere Anlage verwenden.trade_normal Sie können die Tabelle in einem anderen Modus verwenden, um in den normalen Spotmodus zu wechseln.exchange.IO("tdMode", "cross") um die Hebelwirkung direkt anzugeben. |
Weiß nicht. | Bei Huobi gibt es eine Reihe von Handelspaaren, bei denen es sich um die vollständigen Positionen und die Positionen nach Positionen handelt.trade_margin zur Umstellung auf Hebelkontoposition nach Position, Verwendungtrade_super_margin Um auf Hebelwirkung zu wechseln.trade_normal zum normalen Währungs-Währungs-Modus wechseln. |
Binance | Der Leveraged-Konto-Modus wird in Position nach Position und Vollposition, Verwendungtrade_margin Um von Position zu Position zu wechseln, verwendentrade_super_margin Um in die volle Position zu wechseln, verwenden Sietrade_normal zum normalen Währungs-Währungs-Modus wechseln. |
Schnittstelle | Der Leveraged-Konto-Modus wird in Position nach Position und Vollposition, Verwendungtrade_margin Um von Position zu Position zu wechseln, verwendentrade_super_margin Um in die volle Position zu wechseln, verwenden Sietrade_normal zum normalen Währungs-Währungs-Modus wechseln. |
AscendEx | Verwendungexchange.IO("trade_margin") zur Umstellung auf einen Hebelkonto undexchange.IO("trade_normal") Zurück zum normalen Konto-Modus. |
Wo ist er? | Verwendungexchange.IO("trade_margin") zur Umstellung auf einen Hebelkonto undexchange.IO("trade_normal") Zurück zum normalen Konto-Modus. |
CoinEx | Verwendungexchange.IO("trade_margin") zur Umstellung auf den Leveraged-Konto-Modus undexchange.IO("trade_normal") Zurück zum normalen Konto-Modus. |
IV. Sonstige Schaltfunktionen:Schauen Sie sich das an.exchange.IO()
Funktion fürAndere Schaltfunktionenin der Benutzeranleitung.
{@fun/NetSettings/exchange.SetBase exchange.SetBase}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@var EXCHANGE_OP_IO_CONTROL}
exchange.SetRate exchange.Log