En la carga de los recursos... Cargando...

exchange.IO

Elexchange.IO()La función se utiliza para otras llamadas de interfaz relacionadas con el objeto de intercambio.

Elexchange.IO()La función llama a otras interfaces relacionadas con el objeto de intercambio, devolviendo los datos de respuesta solicitados en una llamada exitosa y devuelve nulo en una llamada fallida. cadena, número, bool, objeto, matriz, nulo y cualquier otro tipo soportado por el sistema

exchange.IO(k,...args)

ElkParámetro utilizado para establecer el tipo de llamada, con valores opcionales"api", "currency", "base", "trade_margin", "trade_normal", "public_base", "mbase", selfTradePreventionMode, simulate, cross, dual, unifiedy así sucesivamente. el verdadero la cuerda Parámetros ampliados, aprobados de acuerdo con el escenario de llamada específico,argLos parámetros pueden ser pasados a más de uno.exchange.IO()El número y el tipo de parámetros para elexchange.IO()Las funciones son indeterminadas. el verdadero string, number, bool, object, array, null y cualquier otro tipo soportado por el sistema

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

Utilizando elexchange.IO("api", httpMethod, resource, params, raw)el formulario de convocatoria de laexchange.IO()En este caso, es necesario entender la interfaz API del intercambio y comprobar primero la documentación pertinente. Esto le permitirá ampliar la funcionalidad que no se agrega a la plataforma FMZ.POSTLa solicitud no requiere que se preocupe por cifrar, firmar o verificar los parámetros, que ya son manejados por FMZ en la parte inferior, siempre y cuando complete los parámetros correspondientes.Intercambio OKXlos contratos de futuros, y utilizar el parámetrorawpara pasar los parámetros de orden:

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

Si el valor clave en elparamsParámetro (es decir, parámetro de solicitud HTTP) es una cadena, que necesita ser escrito en comillas (es decir, el símbolo ') alrededor del valor del parámetro para envolver el valor del parámetro.

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

Apoya el paso de parámetros de url completos que pueden omitir la operación de cambiar la dirección base (llamando elexchange.SetBase()función).

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

Ejemplo de llamada sin el parámetroraw:

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

Cambiar el par de negociación del intercambio actual, de modo que cambiará el par de negociación configurado por códigoen la creación de operaciones en vivoo bienen el 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");
}

Para los intercambios con diferentes direcciones de base para la interfaz de ticker y la interfaz de negociación, por ejemplo, Bitfinex Futures tiene dos direcciones, una para la interfaz de ticker y la otra para la interfaz de negociación.exchange.SetBase("xxx")Los futuros de Bitfinex cambian la dirección de base de la interfaz pública usandoexchange.IO("mbase", "xxx").

I. Para los intercambios centrados en las criptomonedas, otras llamadas de interfaz de API que no estén encapsuladas de manera uniforme, con parámetrokSe establece en"api":

exchange.IO("api", httpMethod, resource, params, raw)
  • httpMethod : El parámetro es un tipo de cadena, complete el tipo de solicitudPOST, GET, etc.
  • resource : El parámetro es de tipo cadena y llena la ruta de solicitud; admite el uso de rutas de solicitud completas, véase el ejemplo de referencia para más detalles.
  • Parámetros: El parámetro es un tipo de cadena, lleno de parámetros de solicitud, codificado conURL.
  • raw: el parámetro es el parámetro de la cadena raw y se puede omitir.

Elexchange.IO("api", httpMethod, resource, params, raw)La llamada de la función accederá a la interfaz de intercambio y devolverá null si la llamada falla y se produce un error. Sólo el comercio real apoya la llamadaexchange.IO("api", httpMethod, resource, params, raw) function.

II. Para el cambio de pares de operaciones, el parámetrokestá configurado para:"currency":

exchange.IO("currency", currency)
  • moneda: El parámetro es un tipo de cadena con un formato de mayúscula uniforme, utilizando un trazo para separarbaseCurrencydesdequoteCurrency, como por ejemploBTC_USDT.

    1. El sistema de backtesting ahora admite el cambio de pares comerciales (sólo para objetos de intercambio spot de moneda digital), al hacer backtesting, debe prestar atención a que solo puede cambiar a pares comerciales con la misma moneda denominada, por ejemplo, el par comercial actual esETH_BTCsólo puede cambiar aLTC_BTC, no paraLTC_USDT.
    2. Para los contratos de futuros de criptomonedas, el objeto de intercambio cambia de par de operaciones y el código del contrato debe volver a establecerse para determinar qué contrato se negociará.
    3. Usar la función {@fun/Account/exchange.SetCurrency exchange.SetCurrency} para cambiar pares de operaciones es exactamente lo mismo que usarexchange.IO("currency", currency)para cambiar de par de operaciones.

III. Se utiliza para cambiar el modo de cuenta apalancada del objeto de intercambio spot de criptomonedas:

  • El parámetrokestá configurado para:"trade_margin"Para realizar órdenes y obtener activos de la cuenta, se accederá a la interfaz de apalancamiento al contado de la bolsa. Si la bolsa distingue entre el margen total y el margen aislado en el apalancamiento al contado, utilizar:exchange.IO("trade_super_margin")cambiar al margen completo para la cuenta apalancada, yexchange.IO("trade_margin")el cambio a margen aislado para la cuenta apalancada.
  • Parámetrokestá configurado para:"trade_normal"para volver al modo normal de cuenta al contado.

Bolsas al contado que admiten el cambio entre modelos de cuentas apalancadas:

Los intercambios Observaciones especiales
No hay problema. Los pares de operaciones en el modo de cuenta apalancada son diferentes de los normales, algunos pares de operaciones pueden no tenerlos.exchange.IO("trade_super_margin")cambiar a posición completa para las cuentas apalancadas y utilizarexchange.IO("trade_margin")para cambiar a posición por posición.trade_normalpara cambiar al modo spot normal.exchange.IO("tdMode", "cross")para especificar directamente el modo de apalancamiento.
- ¿ Qué? Los pares de operaciones de modo de cuenta apalancada son diferentes de los normales, algunos pares de operaciones pueden no tenerlos.trade_marginpara cambiar a la posición de la cuenta de apalancamiento por posición, utilizartrade_super_marginPara cambiar a la posición completa de la cuenta de apalancamiento.trade_normalpara cambiar al modo normal de divisas.
Binance El modo de cuenta apalancada se divide en posición por posición y posición completa, usotrade_marginpara cambiar a posición por posición, utilizartrade_super_marginpara cambiar a posición completa, utilizartrade_normalpara cambiar al modo normal de divisas.
Puerta de entrada El modo de cuenta apalancada se divide en posición por posición y posición completa, usotrade_marginpara cambiar a posición por posición, utilizartrade_super_marginpara cambiar a posición completa, utilizartrade_normalpara cambiar al modo normal de divisas.
AscendEx es el nombre de la aplicación. Utilizaciónexchange.IO("trade_margin")cambiar al modo de cuenta de apalancamiento yexchange.IO("trade_normal")para volver al modo de cuenta normal.
¿ Qué pasa? Utilizaciónexchange.IO("trade_margin")cambiar al modo de cuenta de apalancamiento yexchange.IO("trade_normal")para volver al modo de cuenta normal.
CoinEx también Utilizaciónexchange.IO("trade_margin")cambiar al modo de cuenta apalancada yexchange.IO("trade_normal")para volver al modo de cuenta normal.

Otras funciones de conmutación:Mira elexchange.IO()Función paraOtras funciones de conmutaciónen la Guía del usuario.

En el caso de los sistemas operativos, el valor de los valores de los valores de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos de los sistemas operativos.

exchange.SetRate exchange.Log