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

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}

Conta exchange.SetMarginLevel