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

Los futuros

exchange.GetPositions

Elexchange.GetPositions()La función se utiliza para obtener la información de posición;GetPositions()La función es una función miembro del objeto de intercambio {@var/EXCHANGE exchange}.GetPositions()La función obtiene la información de posición de la cuenta de intercambio vinculada al objeto de intercambioexchangeEl objetivo de las funciones (métodos) de los miembros de laexchangeobjeto sólo está relacionado conexchangey no se repetirá aquí.

Elexchange.GetPositions()La función devuelve una matriz de estructuras {@struct/Position Position} si la solicitud de datos tiene éxito, y devuelve un valor nulo si la solicitud de datos falla. Las matrices de {@struct/Position Position}, valores nulos

El cambio.GetPositions ((() intercambio.GetPositions (símbolo)

El parámetrosymbolse utiliza para establecer elsímbolo comercialo bienrango de símbolos de negociaciónpara ser interrogado. Si elsymbolSi el parámetro no se pasa, por defecto se solicitan los datos de posición de todos los símbolos en el rango de dimensiones del par de negociación actual y el código del contrato.

el símbolo falsos la cuerda

/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

function main() {
    var arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]

    for (var symbol of arrSymbol) {
        exchange.CreateOrder(symbol, "buy", -1, 1)
        exchange.CreateOrder(symbol, "sell", -1, 1)
    }

    var defaultPositions = exchange.GetPositions()
    var swapPositions = exchange.GetPositions("USDT.swap")
    var futuresPositions = exchange.GetPositions("USDT.futures")
    var btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap")

    var tbls = []
    var arr = [defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions]
    var tblDesc = ["defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"]
    for (var index in arr) {
        var positions = arr[index]
        var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"], rows: [] }
        for (var pos of positions) {
            tbl.rows.push([pos.Symbol, pos.MarginLevel, pos.Amount, pos.FrozenAmount, pos.Price, pos.Profit, pos.Type, pos.ContractType, pos.Margin])
        }
        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) + "`")

    // Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
    return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''

import json

def main():
    arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]

    for symbol in arrSymbol:
        exchange.CreateOrder(symbol, "buy", -1, 1)
        exchange.CreateOrder(symbol, "sell", -1, 1)

    defaultPositions = exchange.GetPositions()
    swapPositions = exchange.GetPositions("USDT.swap")
    futuresPositions = exchange.GetPositions("USDT.futures")
    btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap")

    tbls = []
    arr = [defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions]
    tblDesc = ["defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"]
    for index in range(len(arr)):
        positions = arr[index]
        tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"], "rows": []}
        for pos in positions:
            tbl["rows"].append([pos["Symbol"], pos["MarginLevel"], pos["Amount"], pos["FrozenAmount"], pos["Price"], pos["Profit"], pos["Type"], pos["ContractType"], pos["Margin"]])

        tbls.append(tbl)

    LogStatus("`" + json.dumps(tbls) + "`")

    return
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

void main() {
    auto arrSymbol = {"BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
    
    for (const auto& symbol : arrSymbol) {
        exchange.CreateOrder(symbol, "buy", -1, 1);
        exchange.CreateOrder(symbol, "sell", -1, 1);
    }
    
    auto defaultPositions = exchange.GetPositions();
    auto swapPositions = exchange.GetPositions("USDT.swap");
    auto futuresPositions = exchange.GetPositions("USDT.futures");
    auto btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap");
    
    json tbls = R"([])"_json;
    std::vector<std::vector<Position>> arr = {defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions};
    std::string tblDesc[] = {"defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"};
    for (int index = 0; index < arr.size(); index++) {
        auto positions = arr[index];
        json tbl = R"({
            "type": "table", 
            "cols": ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"],
            "rows": []
        })"_json;
        tbl["title"] = tblDesc[index];
    
        for (const auto& pos : positions) {
            json arrJson = R"([])"_json;
    
            arrJson.push_back(pos.Symbol);
            arrJson.push_back(pos.MarginLevel);
            arrJson.push_back(pos.Amount);
            arrJson.push_back(pos.FrozenAmount);
            arrJson.push_back(pos.Price);
            arrJson.push_back(pos.Profit);
            arrJson.push_back(pos.Type);
            arrJson.push_back(pos.ContractType);
            arrJson.push_back(pos.Margin);
    
            tbl["rows"].push_back(arrJson);
        }
    
        tbls.push_back(tbl);
    }
    
    LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
    
    return; 
}

Utilizar objetos de intercambio de futuros para colocar órdenes de mercado para múltiples pares comerciales diferentes y códigos de contrato.

Los contratos de futuros de criptomonedas son diferentes de los contratos spot de criptomonedas, que solo tienen el concepto lógico de una posición.Pares de negociación, código del contratoPor favor, consulte las funciones {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}. En elGetPositionsFunción, los escenarios de uso del parámetro símbolo se resumen de la siguiente manera:

Clasificación de objetos de intercambio símbolo Parámetros Alcance de la consulta No obstante,
Los futuros No pase el parámetro de símbolo Consultar todos los productos de negociación dentro del rango de dimensiones del par de negociación actual y del código del contrato Si el par de negociación actual es BTC_USDT y el código del contrato es swap, todos los contratos perpetuos basados en USDT serán consultados.GetPositions("USDT.swap")
Los futuros Especifique el producto de negociación, el parámetro del símbolo es: BTC_USDT.swap Consultar el contrato perpetuo basado en USDT de un BTC especificado Para los objetos de cambio de futuros, el formato del símbolo del parámetro es:Pares de negociaciónycódigo del contratodefinidas por la plataforma FMZ, separadas por los caracteres"..
Los futuros Especifique el rango de productos de negociación, el parámetro del símbolo es: USDT.swap Consultar todos los contratos perpetuos basados en USDT -
Bolsas de futuros que admiten opciones No pase el parámetro de símbolo Consultar todos los contratos de opción dentro del rango de dimensiones del par de operaciones actual Si el par de operaciones actual es BTC_USDT, el contrato se establece en un contrato de opción, por ejemplo, contrato de opción de Binance: BTC-240108-40000-C
Bolsas de futuros que admiten opciones Especificar el producto comercial específico Consultar el contrato de opción especificado Por ejemplo, para Binance Futures Exchange, el parámetro del símbolo es: BTC_USDT.BTC-240108-40000-C
Bolsas de futuros que admiten opciones Especifique la gama de productos de negociación, el parámetro del símbolo es: USDT.option Consultar todos los contratos de opciones basados en USDT -

En elGetPositionsfunción, el objeto del intercambio de futuros el rango de dimensiones de la consulta se resume de la siguiente manera:

símbolo Parámetros Definición del ámbito de aplicación de la solicitud No obstante,
USDT.swap Los tipos de interés de las entidades de crédito incluidas en el anexo I se determinarán de acuerdo con el método de cálculo de la rentabilidad. Para

dimensiones que no sean compatibles con la interfaz de API de intercambio, se informará de un error y se devolverá un valor nulo cuando llamando.

Un contrato de entrega basado en USDT.

USD.swap. El alcance de la moneda basada en el cambio perpetuo Los contratos.

USD.futures. Espejo de entrega basada en moneda Los contratos.

Un contrato de opciones basado en USDT.

La opción USD. Opciones basadas en divisas.

  • |

Conjunto USDT.futures_combo. Rango de combinaciones de CFD. Futures_Deribit Intercambio

USD.futures_ff. alcance de los contratos de entrega de margen mixto. Futures_Kraken Intercambio

USD.swap_pf Rango de contrato perpetuo de margen mixto. Futures_Kraken Intercambio

Compatible conexchange.GetPosition()llamada,GetPositiones exactamente lo mismo queGetPositions.

Cuando la cuenta representada por el objeto de intercambioexchangeno tiene posiciones en elrango de búsquedao bieninstrumentos de negociación específicos, elexchange.GetPositions()función devuelve una matriz vacía, por ejemplo:[].

El valor de las operaciones de cambio de divisas se calculará en función de las posiciones de cambio de divisas de la entidad.

exchange.SetMarginLevel

Elexchange.SetMarginLevel()la función se utiliza para establecer el valor de apalancamiento del par de operaciones o contrato especificado por elsymbolParámetro Compatible con sólo pasar en el parámetromarginLevelpara establecer el valor de apalancamiento del par de operaciones o contrato actual del objeto de intercambio {@var/EXCHANGE exchange}.

En el caso de las operaciones de intercambio, el valor de las operaciones de intercambio es el valor de las operaciones de intercambio.SetMarginLevel ((símbolo, MarginLevel) En el caso de las operaciones de intercambio, el nivel de margen se establece en el siguiente orden:

ElsymbolEl parámetro se utiliza para especificar el par o contrato de negociación para el que debe ajustarse el valor del apalancamiento.symbolParámetro delSetMarginLevel()La función es coherente con el formato de lasymbolParámetro delGetTicker()la función. el símbolo falsos la cuerda ElmarginLevelEl parámetro se utiliza para establecer el valor de apalancamiento, que generalmente es un número entero para los intercambios y también admite la configuración del valor de apalancamiento de punto flotante para algunos intercambios. Margen y nivel verdadero Número

function main() {
    exchange.SetMarginLevel(10)
    // Set the leverage of BTC’s USDT-margined perpetual contract to 15
    exchange.SetMarginLevel("BTC_USDT.swap", 15)
}
def main():
    exchange.SetMarginLevel(10)
    exchange.SetMarginLevel("BTC_USDT.swap", 15)
void main() {
    exchange.SetMarginLevel(10);
    exchange.SetMarginLevel("BTC_USDT.swap", 15); 
}

Elexchange.SetMarginLevel()El sistema de backtesting admite llamar a los objetos de intercambio de contratos de futuros de criptomonedas solamente.exchange.SetMarginLevel()función para establecer el valor de apalancamiento. Para los contratos de futuros de criptomonedas, el mecanismo de apalancamiento no es uniforme debido a los intercambios de contratos de futuros de criptomonedas.exchange.SetMarginLevel()La función no genera una solicitud de red, sino que solo establece la variable de apalancamiento en el sistema FMZ subyacente (utilizado para transmitir parámetros en la interfaz de colocación de órdenes). El valor de apalancamiento de algunos contratos de futuros de intercambio es un ajuste del intercambio, que debe establecerse en la página del sitio web del intercambio o utilizando la interfaz API.exchange.SetMarginLevel()Puede haber muchas razones para esto, por ejemplo: hay una posición actual o una orden pendiente, lo que hace imposible establecer un nuevo valor de apalancamiento para este par o contrato de negociación. Los intercambios que no apoyan elexchange.SetMarginLevel()Función:

Nombre de la función Intercambios al contado sin soporte Exchanges de futuros no respaldados
Establecer el nivel de margen Los valores de los instrumentos de inversión de los Estados miembros que no cumplen los requisitos de la letra a) del presente artículo serán considerados como derivados de los instrumentos de inversión de los Estados miembros.

¿Qué es lo que está pasando?

exchange.SetDirection

Elexchange.SetDirection()La función se utiliza para establecer la dirección de la orden de la función {@fun/Trade/exchange.Buy exchange.Buy}, la función {@fun/Trade/exchange.Sell exchange.Sell} cuando se realizan órdenes para contratos de futuros.

cambio.Configurar Dirección (dirección)

Eldirectionel parámetro se utiliza para establecer la dirección del contrato de futuros cuando se realiza la orden."buy", "closesell", "sell", "closebuy"- ¿ Por qué? dirección verdadero la cuerda

function main(){
    // For example, set to OKX futures contract of this week
    exchange.SetContractType("this_week")    
    // Set leverage to 5 times
    exchange.SetMarginLevel(5)
    // Set the order type to long
    exchange.SetDirection("buy")
    // Place an order for 2 contracts at 10,000
    exchange.Buy(10000, 2)              
    exchange.SetMarginLevel(5)
    exchange.SetDirection("closebuy")
    exchange.Sell(1000, 2)
}
def main():
    exchange.SetContractType("this_week")
    exchange.SetMarginLevel(5)
    exchange.SetDirection("buy")
    exchange.Buy(10000, 2)
    exchange.SetMarginLevel(5)
    exchange.SetDirection("closebuy")
    exchange.Sell(1000, 2)
void main() {
    exchange.SetContractType("this_week");
    exchange.SetMarginLevel(5);
    exchange.SetDirection("buy");
    exchange.Buy(10000, 2);
    exchange.SetMarginLevel(5);
    exchange.SetDirection("closebuy");
    exchange.Sell(1000, 2);
}

Elexchange.SetDirection()la función establece la correspondencia entre la dirección de la operación del contrato de futuros y la función de colocación de órdenes:

Funciones de colocación de pedidos La dirección establecida por los parámetros de la función SetDirection Las observaciones
exchange.Buy comprar Comprar y abrir posiciones largas
exchange.Buy cierre de venta Comprar y cerrar posiciones cortas
exchange.Sell vendiendo Vender y abrir posiciones cortas
exchange.Sell compra cercana Vender y cerrar posiciones largas

En el caso de las empresas de servicios de la Unión Europea, el número de empresas de servicios de servicios de la Unión Europea es el siguiente:

exchange.SetContractType

Elexchange.SetContractType()La función se utiliza para establecer el código del contrato actual del objeto de intercambio {@var/EXCHANGE exchange}.

Elexchange.SetContractType()La función devuelve una estructura que contiene el código del contrato de intercambio correspondiente al código del contrato actual.quarter, y la estructura de valor de retorno de esta función es:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}- ¿ Por qué? Objeto

el símbolo de intercambio.SetContractType

Elsymbolel parámetro se utiliza para establecer el código del contrato, los valores opcionales son:"this_week", "next_week", "quarter", "next_quarter", "swap", etc. Contratos futuros de criptomonedascontrato de entregalos códigos, si no se especifican, generalmente tienen:

  • this_week: el contrato de la semana en curso.
  • next_weekEl contrato de la próxima semana.
  • quarter: contrato trimestral.
  • next_quarter: el siguiente contrato trimestral.Contratos permanenteslos códigos en los contratos de futuros de criptomonedas, si no se especifican, generalmente tienen:
  • swapContrato perpetuo.

el símbolo verdadero la cuerda

function main() {
    // Set to this week contract
    exchange.SetContractType("this_week") 
}
def main():
    exchange.SetContractType("this_week")
void main() {
    exchange.SetContractType("this_week");
}

Establezca el contrato actual como el contrato de la semana actual:

function main() {
    // The default trading pair is BTC_USD, set the contract for this week, and the contract is a currency standard contract
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())
    
    // Switching trading pairs, then setting up contracts, switching to USDT as margin contracts, as opposed to currency standard contracts
    exchange.IO("currency", "BTC_USDT")   
    exchange.SetContractType("swap")
    Log("ticker:", exchange.GetTicker())
}
def main():
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())
    exchange.IO("currency", "BTC_USDT")
    exchange.SetContractType("swap")
    Log("ticker:", exchange.GetTicker())
void main() {
    exchange.SetContractType("this_week");
    Log("ticker:", exchange.GetTicker());
    exchange.IO("currency", "BTC_USDT");
    exchange.SetContractType("swap");
    Log("ticker:", exchange.GetTicker());
}

Cuando se establece un contrato conUSDTcomo margen, debe cambiar el par de operaciones en el código (también puede establecer el par de operaciones directamente al agregar el objeto de intercambio):

function main(){
    // Set the contract for this week
    var ret = exchange.SetContractType("this_week")     
    // Return information about the current week's contracts
    Log(ret)
}
def main():
    ret = exchange.SetContractType("this_week")
    Log(ret)
void main() {
    auto ret = exchange.SetContractType("this_week");
    Log(ret);
}

Imprimir el valor de retorno delexchange.SetContractType()Función:

En la estrategia del contrato de futuros de criptomonedas, tome un ejemplo de cambiar a laBTC_USDTPares de negociación: Cuando se cambian de pares de negociación utilizando elexchange.SetCurrency("BTC_USDT")o bienexchange.IO("currency", "BTC_USDT")Funciones, después de cambiar, usted necesita utilizar elexchange.SetContractType()La función de restablecimiento del contrato para determinar el contrato actual que se operará con el nuevo par de operaciones.contrato estándar de divisaso unaContrato estándar en USDTPor ejemplo, si un par de operaciones está configurado paraBTC_USDT, utilizar elexchange.SetContractType("swap")función para establecer el código del contrato aswapEn este punto, está configurado paraBTCpara elEl estándar USDTSi el par de negociación esBTC_USD, utilizar elexchange.SetContractType("swap")función para establecer el código del contrato aswapEn este punto, está configurado paraBTC¿ Qué?norma de divisascontrato perpetuo. Detalles de los intercambios de contratos de futuros de criptomonedas compatibles, con los nombres de los contratos de cada intercambio como sigue:

  • Los futuros_OKCoin (OKX) Se establece en contratos perpetuos:exchange.SetContractType("swap")En el contrato de esta semana:exchange.SetContractType("this_week")Con el contrato de la próxima semana:exchange.SetContractType("next_week")Contrato mensual:exchange.SetContractType("month")Contrato para el próximo mes:exchange.SetContractType("next_month")Con arreglo a los contratos trimestrales:exchange.SetContractType("quarter")Contrato para el próximo trimestre:exchange.SetContractType("next_quarter")

    OKX tiene contratos de negociación previos al mercado: la fecha de entrega del contrato es una hora fija.HMSTR-USDT-250207Establezca el par de operaciones enHMSTR_USDTen la plataforma FMZ, y luego utilizarexchange.SetContractType("HMSTR-USDT-250207")para establecer el contrato. Para las funciones que soportan elsymbolParámetro, por ejemplo:exchange.GetTicker(), exchange.CreateOrder(), etc. Se puede especificar elsymbolParámetro como:HMSTR_USDT.HMSTR-USDT-250207para obtener los datos de mercado del presente contrato o realizar un pedido.

  • Los futuros de las entidades de crédito se clasifican en el modelo de referencia. En el contrato de esta semana:exchange.SetContractType("this_week")- ¿ Por qué? Con el contrato de la próxima semana:exchange.SetContractType("next_week")- ¿ Por qué? Con arreglo a los contratos trimestrales:exchange.SetContractType("quarter")¿ Qué pasa? Contrato para el próximo trimestre:exchange.SetContractType("next_quarter")- ¿ Por qué? Se establece en contratos perpetuos:exchange.SetContractType("swap")- ¿ Por qué? Apoya los contratos conUSDTcomo margen, tomarBTCContrato como ejemplo: usoexchange.IO("currency", "BTC_USDT")para cambiar a un contrato que utilizaUSDTcomo margen. O ajustar el par de operaciones actual aBTC_USDTDespués de cambiar los pares de negociación, usted necesita llamarexchange.SetContractType()La función de nuevo para establecer el contrato.

  • Los valores de los derivados de las operaciones de inversión de los bancos centrales de los Estados miembros se calcularán en función de los tipos de interés. Se establece en contratos perpetuos:exchange.SetContractType("swap")¿ Qué pasa? Los contratos de entrega de futuros de BitMEX son contratos mensuales con los siguientes códigos de contrato (de enero a diciembre):

    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    

    Establecimiento de contratos de entrega:exchange.SetContractType("December")Por ejemplo, cuando el par de operaciones está configurado paraXBT_USDT, elexchange.SetContractType("December")La función se llama para establecer el contrato para la entrega de diciembre en USDT basado en BTC (correspondiente al código del contrato real deXBTUSDTZ23).

    Resumen de la información sobre el contrato de futuros_BitMEX

    Código del contrato definido por Futures_BitMEX El par de operaciones correspondiente en FMZ El código del contrato correspondiente en FMZ No obstante,
    El DOGEUSD El valor de las acciones de la entidad cambio denominado en USD, XBT se liquida. XBT es BTC.
    En el caso de las personas que no sean miembros de la familia No se puede utilizar. cambio denominado en USDT, liquidado en USDT.
    XBTETH Se trata de un sistema de transferencia de datos. cambio ETH denominado, XBT resuelto.
    XBTEUR El valor de las transferencias cambio denominados en euros y liquidados en XBT.
    USDTUSDC USDT_USDC cambio denominado en USDC, liquidado en XBT.
    ETHUSD_ETH En el caso de las entidades financieras, el importe de las pérdidas se calculará de acuerdo con el método de cálculo de las pérdidas. cambio denominado en USD y liquidado en ETH.
    Se trata de la XBTH24 El valor de la transacción será el valor de la transacción Marzo Fecha de vencimiento: 24 de marzo, código del mes es: H; denominado en USD, liquidado en XBT.
    El valor de las pérdidas ETH_USD Diciembre Fecha de vencimiento: 23 de diciembre, código del mes es: Z; denominado en USD, liquidado en XBT.
    XBTUSDTZ23 El valor de las transferencias Diciembre Fecha de vencimiento: 23 de diciembre. El código del mes es: Z ; denominado en USDT, liquidado en USDT.
    ADAZ23 ADA_XBT Diciembre Fecha de vencimiento: 23 de diciembre, el código del mes es: Z ; facturación en XBT, liquidación en XBT.
    P_XBTETFX23 USDT_XXX P_XBTETFX23 Expiración: 23/11/23; denominado en porcentaje y liquidado en USDT.
  • Los futuros_GateIO En el contrato de esta semana:exchange.SetContractType("this_week")- ¿ Por qué? Con el contrato de la próxima semana:exchange.SetContractType("next_week")- ¿ Por qué? Con arreglo a los contratos trimestrales:exchange.SetContractType("quarter")¿ Qué pasa? Contrato para el próximo trimestre:exchange.SetContractType("next_quarter")- ¿ Por qué? Se establece en contratos perpetuos:exchange.SetContractType("swap")- ¿ Por qué? Apoya los contratos conUSDTcomo margen, tomarBTCContrato como ejemplo: usoexchange.IO("currency", "BTC_USDT")para cambiar a un contrato que utilizaUSDTcomo margen. O ajustar el par de operaciones actual aBTC_USDTDespués de cambiar los pares de negociación, usted necesita llamarexchange.SetContractType()La función de nuevo para establecer el contrato.

  • Los futuros_Deribit Se establece en contratos perpetuos:exchange.SetContractType("swap")- ¿ Por qué? Es compatible con DeribitUSDCel contrato. Los contratos de entrega son los siguientes:"this_week", "next_week", "month", "quarter", "next_quarter", "third_quarter", "fourth_quarter"- ¿ Por qué? En el caso de las entidades financieras, el valor de los derivados de las operaciones de inversión se calcula en función de los tipos de interés de los derivados."this_week,swap", "next_week,swap", "next_quarter,this_week", "third_quarter,this_week", "month,next_week", hay muchas combinaciones. Para los contratos de opción, debe introducir el código específico del contrato de opción definido por la bolsa, véase el sitio web de Deribit para obtener más detalles.

  • Los futuros_KuCoin Por ejemplo, si el par de operaciones está configurado paraBTC_USDy el código del contrato está establecido, se trata de un contrato basado en moneda: Establecido en contratos perpetuos:exchange.SetContractType("swap")- ¿ Por qué? Con arreglo a los contratos trimestrales:exchange.SetContractType("quarter")¿ Qué pasa? Contrato para el próximo trimestre:exchange.SetContractType("next_quarter").

    USDT como contrato de margen: Por ejemplo, si el par de operaciones está configurado paraBTC_USDT, y luego establecer el código del contrato, es un contrato con USDT como margen. Establecido en contratos perpetuos:exchange.SetContractType("swap").

  • Los futuros de Binance Binance Futures Exchange impone el contrato perpetuo del par de operaciones actual, código del contrato:swap- ¿ Por qué? Se establece en contratos perpetuos:exchange.SetContractType("swap"), los contratos perpetuos de Binance tienen contratos que utilizanUSDTcomo margen.USDTcontrato perpetuo estándar deBTCel valor de la transacción se puede utilizar como un contrato de margen, y el par de operaciones está configurado paraBTC_USDTBinance también admite contratos perpetuos que usan monedas como margen, por ejemplo,BTCEs el contrato perpetuo estándar de Binance, con el par de operaciones configurado paraBTC_USD- ¿ Por qué? Con arreglo a los contratos trimestrales:exchange.SetContractType("quarter"), el contrato de entrega tiene un contrato estándar en moneda (es decir, utilizando monedas como margen), por ejemplo,BTCEn el contrato trimestral, el par de operaciones está establecido para:BTC_USDy luego fijar el contratoexchange.SetContractType("quarter"), está configurado paraBTCcontrato trimestral con un contrato tipo de moneda. Contrato para el próximo trimestre:exchange.SetContractType("next_quarter"), por ejemplo,BTCdel contrato trimestral tipo de divisas, el par de operaciones fijado a:BTC_USD, y luego fijar el contratoexchange.SetContractType("next_quarter")- ¿ Por qué? Binance admite el uso parcialUSDTcomo contrato de entrega de margen, tomarBTCcomo ejemplo, establecer el par de negociación aBTC_USDT, luego establece el código del contrato.

    Apoyo para los contratos de opciones de Binance: El formato del código del contrato de opción se basa en el código del contrato de opción definido por la bolsa:BTC-241227-15000-C, XRP-240112-0.5-C, BTC-241227-15000-PTome el código del contrato de opciones de Binance.BTC-241227-15000-PPor ejemplo: BTC es el código de moneda de la opción, 241227 es la fecha de ejercicio, 15000 es el precio de ejercicio, P representa una opción de venta y C una opción de compra. Para obtener más detalles sobre el tipo de opción, ya sea una opción europea o una opción estadounidense, consulte la información pertinente del contrato de opción de la bolsa. El intercambio puede restringir a los vendedores de opciones y requerir que soliciten calificaciones por separado.

  • El valor de la inversión se calcula a partir del valor de la inversión Código del contrato para los contratos perpetuos de Bibox:swap- ¿ Por qué? Se establece en contratos perpetuos:exchange.SetContractType("swap").

  • Las acciones de la entidad El valor de las pérdidas de valor se calcula en función de las pérdidas de valor de las pérdidas de valor.swap- ¿ Por qué? Código del contrato de esta semana:this_week- ¿ Por qué? Código del contrato de la próxima semana:next_week- ¿ Por qué? Código del contrato de la tercera semana:third_week- ¿ Por qué? Código del contrato mensual:month- ¿ Por qué? Código del contrato del próximo mes:next_month¿ Qué pasa? Código del contrato trimestral:quarter¿ Qué pasa? Código del contrato del próximo trimestre:next_quarter- ¿ Por qué? Código del contrato del tercer trimestre:third_quarter.

  • Los futuros_Kraken El valor de la opción de compra y venta es el valor de la opción de compra y venta de la opción de venta.swap. swapContrato perpetuo.month: contrato del mes en curso.quarter: contrato trimestral.next_quarterEl próximo trimestre.swap_pf: Contrato perpetuo de margen mixto.quarter_ff: Contrato trimestral de margen mixto.month_ff: Contrato de margen mixto del mes en curso.next_quarter_ffContrato de margen mixto para el próximo trimestre.

  • Los futuros de Bitfinex El valor de las pérdidas de valor de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés.swap.

  • Los futuros_Bitget El valor de las pérdidas de valor de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés de las operaciones de tipo de interés.swap- ¿ Por qué? El par de operaciones está configurado paraBTC_USDpara los contratos estándar de divisas, y el par de negociación está configurado paraBTC_USDTpara los contratos liquidados porUSDTLos contratos de demostración pueden establecerse con pares de operaciones comoSBTC_USD, BTC_SUSDT.

  • Los futuros_dYdX Código del contrato para los contratos perpetuos dYdX:swap- ¿ Por qué? Se establece en contratos perpetuos:exchange.SetContractType("swap"), dYdX sólo tiene contratos estándar en USDT.

  • Los futuros_MEXC Código del contrato para los contratos perpetuos del MEXC:swap- ¿ Por qué? Se establece en contratos perpetuos:exchange.SetContractType("swap"). Establecer el par de negociación aBTC_USD, que es un contrato estándar de divisas, y establecer el par de negociación paraBTC_USDT, que esUSDT- Contrato resuelto.

  • El valor de las acciones de la entidad Fichas en una cuenta en elcrypto.comEl valor de los activos de cambio puede convertirse en créditos denominados en USD para utilizarlos como margen para la negociación de contratos. Se ha establecido un contrato perpetuo:exchange.SetContractType("swap"). Ejemplo de llamar a laexchange.SetContractType("swap")función para establecer un contrato perpetuo para BTC cuando el par de operaciones está configurado paraBTC_USD- ¿ Por qué? Elcrypto.comLos contratos de entrega de cambio son contratos mensuales con los siguientes códigos de contrato (de enero a diciembre):

    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    

    Establecer el contrato de entrega:exchange.SetContractType("October")Por ejemplo, cuando el par de operaciones está configurado paraBTC_USD, llamar a la funciónexchange.SetContractType("October")para establecer el contrato de entrega de octubre para BTC. El código del contrato correspondiente en el momento actual es:BTCUSD-231027.

  • Los futuros Los instrumentos financieros de tipo de interés de las entidades de crédito incluidos en el modelo 060USDTLos contratos basados en un código de contrato perpetuo deswapPor ejemplo, cuando el par de operaciones está configurado paraBTC_USDT, la funciónexchange.SetContractType("swap")se llama a establecer el contrato actual para ser un contrato perpetuo basado en USDT para BTC.

El valor de las transacciones se calculará en función de la cantidad de transacciones que se realizan en el mercado.

exchange.GetContractType

Elexchange.GetContractType()La función se utiliza para obtener el código del contrato para la configuración actual del objeto de intercambio {@var/EXCHANGE exchange}.

Elexchange.GetContractType()La función devuelve el código del contrato definido por la plataforma FMZ, por ejemplo:this_week, swap, etc. la cuerda

el tipo de contrato.GetContractType()

function main () {
    Log(exchange.SetContractType("this_week")) 
    Log(exchange.GetContractType())
}
def main():
    Log(exchange.SetContractType("this_week"))
    Log(exchange.GetContractType())
void main() {
    Log(exchange.SetContractType("this_week"));
    Log(exchange.GetContractType());
}

En el caso de las empresas de seguros, las empresas de seguros deben tener en cuenta los siguientes factores:

exchange.GetFundings

Elexchange.GetFundings()La función se utiliza para obtener los datos de las tasas de financiación del período en curso.

Elexchange.GetFundings()función devuelve un conjunto de estructuras {@struct/Funding Funding} cuando la solicitud de datos es exitosa, y devuelve un valor nulo cuando la solicitud de datos falla. {@struct/Funding Funding} matriz, valor nulo

En cambio.GetFundings ((() intercambio.GetFundings (símbolo)

El parámetrosymbolse utiliza para establecer elsímbolo de la transaccióno bienrango de símbolos de transacciónEn el caso de lossymbolSi el parámetro no se pasa, se solicitarán por defecto los datos de la tasa de financiación actual de todos los instrumentos en el rango de dimensiones del par de negociación actual y el código del contrato.

el símbolo falsos la cuerda

/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/

function main() {
    // LPT_USDT.swap 4-hour period
    var symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
    for (var symbol of symbols) {
        exchange.GetTicker(symbol)
    }
    
    var arr = []
    var arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
    for (p of arrParams) {
        if (p == "no param") {
            arr.push(exchange.GetFundings())
        } else {
            arr.push(exchange.GetFundings(p))
        }
    }
    
    var tbls = []
    var index = 0
    for (var fundings of arr) {
        var tbl = {
            "type": "table",
            "title": arrParams[index],
            "cols": ["Symbol", "Interval", "Time", "Rate"],
            "rows": [],
        }
    
        for (var f of fundings) {
            tbl["rows"].push([f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate * 100 + " %"])
        }
        tbls.push(tbl)
        index++
    }
    
    LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + JSON.stringify(tbls) + "`")
}
'''backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
'''
    
import json
    
def main():
    # LPT_USDT.swap 4-hour period
    symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
    for symbol in symbols:
        exchange.GetTicker(symbol)
    
    arr = []
    arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
    for p in arrParams:
        if p == "no param":
            arr.append(exchange.GetFundings())
        else:
            arr.append(exchange.GetFundings(p))
    
    tbls = []
    index = 0
    for fundings in arr:
        tbl = {
            "type": "table",
            "title": arrParams[index],
            "cols": ["Symbol", "Interval", "Time", "Rate"],
            "rows": [],
        }
    
        for f in fundings:
            tbl["rows"].append([f["Symbol"], f["Interval"] / 3600000, _D(f["Time"]), str(f["Rate"] * 100) + " %"])
    
        tbls.append(tbl)
        index += 1
    
    LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + json.dumps(tbls) + "`")
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/
    
void main() {
    // LPT_USDT.swap 4-hour period
    json arrSymbol = R"([])"_json;
    std::string symbols[] = {"SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"};
    for (const std::string& symbol : symbols) {
        exchange.GetTicker(symbol);
        arrSymbol.push_back(symbol);
    }
    
    std::vector<std::vector<Funding>> arr = {};
    std::string arrParams[] = {"no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"};
    for (const std::string& p : arrParams) {
        if (p == "no param") {
            arr.push_back(exchange.GetFundings());
        } else {
            arr.push_back(exchange.GetFundings(p));
        }
    }
    
    json tbls = R"([])"_json;
    int index = 0;
    for (int i = 0; i < arr.size(); i++) {
        auto fundings = arr[i];
    
        json tbl = R"({
            "type": "table", 
            "cols": ["Symbol", "Interval", "Time", "Rate"],
            "rows": []
        })"_json;
        tbl["title"] = arrParams[index];
    
        for (int j = 0; j < fundings.size(); j++) {
            auto f = fundings[j];
            // json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), string(f.Rate * 100) + " %"};
            json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate};
            tbl["rows"].push_back(arrJson);
        }
        tbls.push_back(tbl);
        index++;
    }
    
    LogStatus(_D(), "\n Requested market types:", arrSymbol.dump(), "\n`" + tbls.dump() + "`");
}

Utilice el objeto de intercambio de futuros para llamar a laexchange.GetFundings()Antes de llamar a cualquier función de mercado, GetFundings solo devuelve los datos de financiamiento del par de operaciones por defecto actual. Después de llamar a la función de mercado, devuelve los datos de financiamiento de todas las variedades solicitadas. Puede consultar el siguiente ejemplo de prueba:

Para los intercambios de futuros que no admiten la consulta por lotes de datos de tasas de financiación, si elsymbolel parámetro se especifica como el rango de consulta, por ejemplo:USDT.swapo elsymbolSi el parámetro no se pasa, la interfaz informará un error.GetFundings()función utilizando este tipo de objeto de intercambio de futuros, debe especificar elsymbolParámetro como tipo específico de contrato perpetuo para consultar los datos actuales de tasas de financiación del tipo. Elexchange.GetFundings()La función soporta sistemas reales de trading y backtesting. Intercambios que no admiten la adquisición por lotes de datos de tasas de financiación: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbolParámetro con el código de símbolo específico, por ejemplo:ETH_USDT.swap.

Los intercambios que no apoyan laexchange.GetFundings()Función:

Nombre de la función Intercambios al contado sin soporte Exchanges de futuros no respaldados
Obtener fondos Los futuros_DigiFinex

¿Qué es lo que está pasando?

Cuenta Configuración de la red