O recurso está a ser carregado... Carregamento...

Futuros

exchange.GetPositions

Oexchange.GetPositions()A função é utilizada para obter as informações de posição;GetPositions()função é uma função membro do objeto de troca {@var/EXCHANGE exchange}.GetPositions()função obtém as informações de posição da conta de câmbio ligada ao objeto de câmbioexchangeO objectivo das funções (métodos) dos membros doexchangeObjeto está relacionado apenas comexchangeE não se repetirá aqui.

Oexchange.GetPositions()A função retorna uma matriz de estruturas {@struct/Position Position} se a solicitação de dados for bem-sucedida, e retorna valor nulo se a solicitação de dados falhar. Matrizes {@struct/Position Position}, valores nulos

troca.GetPositions ((() troca.GetPositions (símbolo)

O parâmetrosymbolé utilizado para definir osímbolo comercialouIntervalo de símbolos de negociaçãoPara ser interrogado. Se osymbolSe o parâmetro não for transmitido, o padrão é solicitar os dados de posição de todos os símbolos na faixa de dimensões do par de negociação atual e do código do contrato.

símbolo Falso cordel

/*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; 
}

Usar objetos de troca de futuros para colocar ordens de mercado para vários pares de negociação diferentes e códigos de contrato.

Os contratos futuros de criptomoedas são diferentes dos contratos spot de criptomoedas, que têm apenas o conceito lógico de uma posição.pares de negociação, Código do contratoPor favor, consulte {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} funções. EmGetPositionsfunção, os cenários de utilização do parâmetro símbolo são resumidos do seguinte modo:

Classificação do objeto Exchange símbolo Parâmetros Alcance da consulta Observação
Futuros Não passe o parâmetro de símbolo Consultar todos os produtos de negociação dentro do intervalo de dimensões do par de negociação e do código do contrato corrente Se o par de negociação atual for BTC_USDT e o código do contrato for swap, todos os contratos perpétuos baseados em USDT serão consultados.GetPositions("USDT.swap")
Futuros Especificar o produto de negociação, o parâmetro do símbolo é: BTC_USDT.swap Consultar o contrato perpétuo baseado em USDT de um determinado BTC Para os objectos de câmbio de futuros, o formato do símbolo do parâmetro é:par de negociaçãoeCódigo do contratodefinidos pela plataforma FMZ, separados pelos caracteres"..
Futuros Especificar a gama de produtos de negociação, o parâmetro do símbolo é: USDT.swap Consultar todos os contratos perpétuos baseados em USDT -
Bolsas de futuros que suportam opções Não passe o parâmetro de símbolo Consultar todos os contratos de opção dentro do intervalo de dimensão do par de negociação corrente Se o par de negociação atual for BTC_USDT, o contrato é definido como um contrato de opção, por exemplo, contrato de opção da Binance: BTC-240108-40000-C
Bolsas de futuros que suportam opções Especificar um produto comercial específico Consultar o contrato de opção especificado Por exemplo, para a Binance Futures Exchange, o parâmetro do símbolo é: BTC_USDT.BTC-240108-40000-C
Bolsas de futuros que suportam opções Especificar a gama de produtos de negociação, o parâmetro do símbolo é: USDT.option Consultar todos os contratos de opções baseados em USDT -

EmGetPositionsfunção, o objeto da troca de futuros a gama de dimensões da consulta é resumida do seguinte modo:

símbolo Parâmetros Definição do âmbito de aplicação do pedido Observação
USDT.swap Intervalo de contratos perpétuos baseados em USDT. Para

dimensões não suportadas pela interface de API de troca, um erro será relatado e um valor nulo será devolvido quando Está a chamar-me.

♫ USDT.futures ♫ ♫ uma gama de contratos de entrega baseados em USDT ♫

O escopo do perpetual baseado em moeda Contratos.

USD.futures. Escala de entrega baseada em moeda Contratos.

O opção baseada em opções de contrato baseado em USDT.

O opção USD.opção baseada em moeda.

  • |

Combo USDT.futures. Uma gama de combinações de CFD. Futures_Deribit Exchange

USD.FUTURES_FF Escala dos contratos de entrega de margem mista. Futures_Kraken Exchange.

USD.swap_pf. Margem mista gama de contrato perpétuo. Futures_Kraken Exchange.

Compatível comexchange.GetPosition()ligação,GetPositioné exatamente o mesmo queGetPositions.

Quando a conta representada pelo objecto de trocaexchangenão tem posições nointervalo de consultaouInstrumentos de negociação especificados, oexchange.GetPositions()função retorna uma matriz vazia, por exemplo:[].

{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}

exchange.SetMarginLevel

Oexchange.SetMarginLevel()A função é utilizada para definir o valor de alavancagem do par de negociação ou do contrato especificado pelosymbolParâmetro compatível com apenas passar no parâmetromarginLevelPara definir o valor de alavancagem do par ou contrato de negociação corrente do objeto de troca {@var/EXCHANGE exchange}.

A taxa de câmbio é a taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação. Câmbio.SetMarginLevel ((marginLevel)

OsymbolO parâmetro é utilizado para especificar o par de negociação ou contrato para o qual o valor de alavancagem precisa de ser ajustado.symbolParâmetro doSetMarginLevel()A função é coerente com o formato dosymbolParâmetro doGetTicker()função. símbolo Falso cordel OmarginLevelO parâmetro é usado para definir o valor de alavancagem, que geralmente é um número inteiro para as bolsas e também suporta configurações de valor de alavancagem de ponto flutuante para algumas bolsas. Margem Nível verdade 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); 
}

Oexchange.SetMarginLevel()O sistema de backtesting suporta a chamada doexchange.SetMarginLevel()Função para definir o valor da alavancagem. Para contratos futuros de criptomoedas, o mecanismo de alavancagem não é uniforme devido às exchanges de contratos futuros de criptomoedas.exchange.SetMarginLevel()A função não gera uma solicitação de rede, mas apenas define a variável de alavancagem no sistema FMZ subjacente (usado para passar parâmetros na interface de colocação de ordens).exchange.SetMarginLevel()A função gerará uma solicitação de rede e pode não definir alavancagem. Pode haver muitas razões para isso, por exemplo: há uma posição atual ou ordem pendente, o que torna impossível definir um novo valor de alavancagem para este par ou contrato de negociação. As trocas que não suportam oexchange.SetMarginLevel()Função:

Nome da função Trocas spot não suportadas Atividades de negociação
SetMarginLevel Futuros_dYdX / Futuros_Deribit

{@var/EXCHANGE exchange}

exchange.SetDirection

Oexchange.SetDirection()A função é utilizada para definir a direção da ordem da função {@fun/Trade/exchange.Buy exchange.Buy}, função {@fun/Trade/exchange.Sell exchange.Sell} quando se fazem ordens para contratos futuros.

troca.Estabelecer direcção (direcção)

OdirectionO parâmetro é utilizado para definir a direção do contrato de futuros quando a ordem é colocada."buy", "closesell", "sell", "closebuy"- Não. direção verdade cordel

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

Oexchange.SetDirection()A função define a correspondência entre a direção da transação do contrato de futuros e a função de colocação de ordens:

Funções de colocação de pedidos A direção definida pelos parâmetros da função SetDirection Observações
exchange.Buy comprar Comprar e abrir posições longas
exchange.Buy fechamento de venda Comprar e fechar posições curtas
exchange.Sell venda Vender e abrir posições curtas
exchange.Sell closebuy Vender e fechar posições longas

{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}

exchange.SetContractType

Oexchange.SetContractType()A função é utilizada para definir o código do contrato atual do objeto de troca {@var/EXCHANGE exchange}.

Oexchange.SetContractType()A função retorna uma estrutura que contém o código do contrato de troca correspondente ao código do contrato atual.quarter, e a estrutura de valor de retorno desta função é:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}- Não. Objeto

troca.SetContractType (símbolo)

OsymbolO parâmetro é utilizado para definir o código do contrato, os valores opcionais são:"this_week", "next_week", "quarter", "next_quarter", "swap", etc. Contratos futuros de criptomoedascontrato de entregaOs códigos, se não especificados, têm geralmente:

  • this_weekO contrato da semana em curso.
  • next_weekO contrato da próxima semana.
  • quarter: contrato trimestral.
  • next_quarter: o próximo contrato trimestral.Contratos permanentesOs códigos em contratos futuros de criptomoedas, se não especificados, têm, em geral:
  • swapContrato perpétuo.

símbolo verdade cordel

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

Configure o contrato atual como o contrato da semana atual:

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

Ao estabelecer um contrato comUSDTcomo margem, é necessário trocar o par de negociação no código (também é possível definir o par de negociação diretamente ao adicionar o objeto de troca):

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 o valor de retorno doexchange.SetContractType()Função:

Na estratégia de contrato de futuros de criptomoeda, tome um exemplo de mudar para oBTC_USDTPares de negociação: Quando se trocam pares de negociação utilizando oexchange.SetCurrency("BTC_USDT")ouexchange.IO("currency", "BTC_USDT")funções, depois de trocar, você precisa usar oexchange.SetContractType()O sistema determina se é um par de negociação ou um par de negociação.contrato padrão de moedaou umContrato padrão USDTPor exemplo, se um par de negociação estiver definido paraBTC_USDT, utilizar oexchange.SetContractType("swap")função para definir o código do contrato paraswapNeste ponto, está definido paraBTCpara oPadrão USDTSe o par de negociação forBTC_USD, utilizar oexchange.SetContractType("swap")função para definir o código do contrato paraswapNeste ponto, está definido paraBTCÉ...padrão de moedacontrato perpétuo. Detalhes das bolsas de contratos futuros de criptomoedas compatíveis, com os nomes dos contratos de cada uma delas:

  • Futuros_OKCoin (OKX) Contrato perpétuo:exchange.SetContractType("swap")Conforme o contrato desta semana:exchange.SetContractType("this_week")Marcado para a próxima semana:exchange.SetContractType("next_week")Contrato mensal:exchange.SetContractType("month")Contrato para o próximo mês:exchange.SetContractType("next_month")Consolidado em contratos trimestrais:exchange.SetContractType("quarter")Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")

    A OKX tem contratos de negociação pré-mercado: a data de entrega do contrato é um horário fixo.HMSTR-USDT-250207. Configure o par de negociação paraHMSTR_USDTna plataforma FMZ, e depois utilizarexchange.SetContractType("HMSTR-USDT-250207")para estabelecer o contrato. Para funções que suportam osymbolParâmetros, tais como:exchange.GetTicker(), exchange.CreateOrder(), etc. Pode especificar osymbolParâmetro como:HMSTR_USDT.HMSTR-USDT-250207Para obter os dados de mercado do presente contrato ou realizar uma encomenda.

  • Futuros_HuobiDM (futuros de Huobi) Conforme o contrato desta semana:exchange.SetContractType("this_week")- Não. Marcado para a próxima semana:exchange.SetContractType("next_week")- Não. Consolidado em contratos trimestrais:exchange.SetContractType("quarter")- Não. Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")- Não. Contrato perpétuo:exchange.SetContractType("swap")- Não. Apoia contratos comUSDTcomo margem, tomarBTCContrato como exemplo: utilizaçãoexchange.IO("currency", "BTC_USDT")para mudar para um contrato que utilizaUSDTcomo margem. Ou definir o par de negociação actual paraBTC_USDTDepois de trocar pares de negociação, você precisa chamarexchange.SetContractType()A função de novo para definir o contrato.

  • Ativos de dívida líquidos e passivos Contrato perpétuo:exchange.SetContractType("swap")- Não. Os contratos de entrega de câmbio Futures_BitMEX são contratos mensais com os seguintes códigos de contrato (de janeiro a dezembro):

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

    Estabelecimento de contratos de entrega:exchange.SetContractType("December")Por exemplo, quando o par de negociação está definido paraXBT_USDT, oexchange.SetContractType("December")A função é chamada para definir o contrato para a entrega de Dezembro em USDT baseado em BTC (correspondente ao código do contrato real deXBTUSDTZ23).

    Resumo das informações sobre contratos Futures_BitMEX

    Código de contrato definido por Futures_BitMEX O par de negociação correspondente no FMZ Código do contrato correspondente na FMZ Observação
    DOGEUSD DOGE_USD troca denominado em USD, XBT liquidado.
    DOGEUSDT DOGE_USDT troca denominados em USDT, liquidados em USDT.
    XBTETH XBT_ETH troca ETH denominado, XBT liquidado.
    XBTEUR XBT_EUR troca denominados em euros, liquidados em XBT.
    USDTUSDC USDT_USDC troca denominado em USDC, liquidado em XBT.
    ETHUSD_ETH ETH_USD_ETH troca denominado em USD, ETH liquidado.
    XBTH24 XBT_USD Março Data de expiração: 24 de março, código do mês é: H; denominado em USD, liquidado em XBT.
    ETHUSDZ23 ETH_USD Outubro Data de expiração: 23 de dezembro, código do mês é: Z; denominado em USD, liquidado em XBT.
    XBTUSDTZ23 XBT_USDT Outubro Data de validade: 23 de Dezembro, código do mês é: Z ; denominado em USDT, liquidado em USDT.
    ADAZ23 ADA_XBT Outubro Data de expiração: 23 de dezembro, código do mês é: Z ; faturamento em XBT, liquidação em XBT.
    P_XBTETFX23 USDT_XXX P_XBTETFX23 Data de vencimento: 23/11/23; denominada em percentagem e liquidada em USDT.
  • Futures_GateIO Conforme o contrato desta semana:exchange.SetContractType("this_week")- Não. Marcado para a próxima semana:exchange.SetContractType("next_week")- Não. Consolidado em contratos trimestrais:exchange.SetContractType("quarter")- Não. Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")- Não. Contrato perpétuo:exchange.SetContractType("swap")- Não. Apoia contratos comUSDTcomo margem, tomarBTCContrato como exemplo: utilizaçãoexchange.IO("currency", "BTC_USDT")para mudar para um contrato que utilizaUSDTcomo margem. Ou definir o par de negociação actual paraBTC_USDTDepois de trocar pares de negociação, você precisa chamarexchange.SetContractType()A função de novo para definir o contrato.

  • Futuros_Deribit Contrato perpétuo:exchange.SetContractType("swap")- Não. Suporta DeribitsUSDCContrato. Os contratos de entrega são:"this_week", "next_week", "month", "quarter", "next_quarter", "third_quarter", "fourth_quarter"- Não. CFD (future_combo):"this_week,swap", "next_week,swap", "next_quarter,this_week", "third_quarter,this_week", "month,next_week", há muitas combinações. Para os contratos de opção, é necessário inserir o código específico do contrato de opção definido pela bolsa, consulte o site da Deribit para obter mais informações.

  • Futures_KuCoin Por exemplo, se o par de negociação estiver definido paraBTC_USDe o código do contrato é definido, trata-se de um contrato baseado em moeda: Contrato perpétuo:exchange.SetContractType("swap")- Não. Consolidado em contratos trimestrais:exchange.SetContractType("quarter")- Não. Contrato para o próximo trimestre:exchange.SetContractType("next_quarter").

    USDT como contrato de margem: Por exemplo, se o par de negociação estiver definido paraBTC_USDT, e, em seguida, definir o código do contrato, é um contrato com USDT como margem. Contrato perpétuo:exchange.SetContractType("swap").

  • Futures_Binance Binance Futures Exchange predefinições para o contrato perpétuo do par de negociação atual, código do contrato:swap- Não. Contrato perpétuo:exchange.SetContractType("swap"), os contratos perpétuos da Binance têm contratos que usamUSDTComo margem.USDTContrato perpétuo deBTCO par de negociação pode ser utilizado como um contrato de margem, e o par de negociação está definido paraBTC_USDTA Binance também suporta contratos perpétuos que usam moedas como margem, por exemplo,BTCÉ o contrato perpétuo padrão da Binance, com o par de negociação definido paraBTC_USD- Não. Consolidado em contratos trimestrais:exchange.SetContractType("quarter"), o contrato de entrega tem um contrato padrão de moeda (ou seja, utilizando moedas como margem), por exemplo,BTCNo contrato trimestral, o par de negociação está definido para:BTC_USDe depois estabelecer o contratoexchange.SetContractType("quarter"), está definido emBTCcontrato trimestral com um contrato padrão de moeda. Contrato para o próximo trimestre:exchange.SetContractType("next_quarter"), por exemplo,BTCdo contrato trimestral padrão de moeda, o par de negociação definido para:BTC_USD, e depois definir o contratoexchange.SetContractType("next_quarter")- Não. Binance suporta parcialmenteUSDTcomo contrato de entrega de margem, tomarBTCcomo exemplo, definir o par de negociação paraBTC_USDT, depois define o código do contrato.

    Suporte para contratos de opções Binance: O formato do código do contrato de opção baseia-se no código do contrato de opção definido pela bolsa:BTC-241227-15000-C, XRP-240112-0.5-C, BTC-241227-15000-PPegue o código do contrato de opção da BinanceBTC-241227-15000-PPor exemplo: BTC é o código da moeda da opção, 241227 é a data de exercício, 15000 é o preço de exercício, P representa uma opção de venda e C representa uma opção de compra. Para mais informações sobre o tipo de opção, quer se trate de opção europeia ou de opção americana, consulte as informações pertinentes do contrato de opção da bolsa. A troca pode restringir os vendedores de opções e exigir que eles solicitem qualificações separadamente.

  • Futures_Bibox Código do contrato para contratos perpétuos Bibox:swap- Não. Contrato perpétuo:exchange.SetContractType("swap").

  • Futures_Bybit O contrato de partilha é o contrato perpétuo para o par de negociação em curso, código do contrato:swap- Não. Código do contrato desta semana:this_week- Não. Código do contrato da próxima semana:next_week- Não. Código do contrato da terceira semana:third_week- Não. Código de contrato mensal:month- Não. Código do contrato do próximo mês:next_month- Não. Código do contrato trimestral:quarter- Não. Código do contrato do próximo trimestre:next_quarter- Não. Código do contrato do terceiro trimestre:third_quarter.

  • Futures_Kraken O contrato de partilha é o contrato perpétuo do par de negociação em curso, código do contrato:swap. swapContrato perpétuo.month: contrato do mês em curso.quarter: contrato trimestral.next_quarterContrato para o próximo trimestre.swap_pf: Contrato perpétuo de margem mista.quarter_ff: Contrato trimestral de margem mista.month_ff: Contrato de margem mista do mês em curso.next_quarter_ffContrato de margem mista para o próximo trimestre.

  • Futuros_Bitfinex O valor da posição em risco é o valor da posição em risco.swap.

  • Futures_Bitget O valor da posição em risco é o valor da posição em risco.swap- Não. O par de negociação está definido emBTC_USDpara os contratos padrão de moeda, e o par de negociação está definido emBTC_USDTpara contratos liquidados porUSDTOs contratos demo podem ser estabelecidos com pares de negociação comoSBTC_USD, BTC_SUSDT.

  • Futuros_dYdX Código do contrato para contratos perpétuos dYdX:swap- Não. Contrato perpétuo:exchange.SetContractType("swap"), a dYdX dispõe apenas de contratos normalizados em USDT.

  • Futures_MEXC Código do contrato para contratos perpétuos do MEXC:swap- Não. Contrato perpétuo:exchange.SetContractType("swap"). Configurar o par de negociação paraBTC_USD, que é um contrato padrão de moeda, e estabelecer o par de negociação paraBTC_USDT, que éUSDT- Contrato resolvido.

  • Futures_Crypto Tokens numa conta nocrypto.comOs valores mobiliários podem ser convertidos em créditos denominados em USD para serem utilizados como margem para negociação de contratos. Contrato perpétuo:exchange.SetContractType("swap")Exemplo de chamadaexchange.SetContractType("swap")função para definir um contrato perpétuo para BTC quando o par de negociação está definido paraBTC_USD- Não. Ocrypto.comOs contratos de entrega de câmbio são contratos mensais com os seguintes códigos de contrato (de janeiro a dezembro):

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

    Definir o contrato de entrega:exchange.SetContractType("October")Por exemplo, quando o par de negociação está definido paraBTC_USD, chamar a funçãoexchange.SetContractType("October")para estabelecer o contrato de entrega de outubro para BTC. O código do contrato correspondente é:BTCUSD-231027.

  • Futures_WOO Futuros_WOOUSDTbaseados em contratos com um código de contrato perpétuo deswapPor exemplo, quando o par de negociação está definido paraBTC_USDT, a funçãoexchange.SetContractType("swap")é chamado a definir o contrato atual para ser um contrato perpétuo baseado em USDT para BTC.

{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}

exchange.GetContractType

Oexchange.GetContractType()A função é utilizada para obter o código do contrato para a configuração atual do objeto de troca {@var/EXCHANGE exchange}.

Oexchange.GetContractType()A função devolve o código do contrato definido pela plataforma FMZ, por exemplo:this_week, swap, etc. cordel

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

{@fun/Futures/exchange.SetContractType exchange.SetContractType}

exchange.GetFundings

Oexchange.GetFundings()A função é utilizada para obter os dados da taxa de financiamento para o período em curso.

Oexchange.GetFundings()A função retorna uma matriz de estruturas {@struct/Funding Funding} quando a solicitação de dados é bem-sucedida e retorna um valor nulo quando a solicitação de dados falha. Matriz {@struct/Funding Funding}, valor nulo

Troca.GetFundings ((() Troca.GetFundings (símbolo)

O parâmetrosymbolé utilizado para definir osímbolo da transacçãoouIntervalo de símbolos de transacçãoO que é que a Comissão está a fazer?symbolSe o parâmetro não for transmitido, os dados da taxa de financiamento atual de todos os instrumentos serão solicitados por defeito na faixa de dimensões do par de negociação atual e do código do contrato.

símbolo Falso cordel

/*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() + "`");
}

Use o objeto de troca de futuros para chamar oexchange.GetFundings()Antes de chamar qualquer função de mercado, o GetFundings retorna apenas os dados de financiamento do par de negociação padrão atual. Depois de chamar a função de mercado, retorna os dados de financiamento de todas as variedades solicitadas.

Para as bolsas de futuros que não suportam consulta por lotes de dados de taxa de financiamento, se osymbolO parâmetro é especificado como a faixa de consulta, por exemplo:USDT.swapou osymbolQuando o parâmetro não é passado, a interface irá relatar um erro.GetFundings()função usando este tipo de objeto de troca de futuros, você deve especificar osymbolParâmetro como um tipo específico de contrato perpétuo, a fim de consultar os dados atuais da taxa de financiamento do tipo. Oexchange.GetFundings()A função suporta sistemas reais de negociação e backtesting. Bolsas que não suportam aquisição por lotes de dados de taxa de financiamento: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbolParâmetro com o código de símbolo específico, por exemplo:ETH_USDT.swap.

As trocas que não suportam oexchange.GetFundings()Função:

Nome da função Trocas spot não suportadas Atividades de negociação
GetFundings Futures_DigiFinex

{@struct/Funding Funding}

Conta Configurações da rede