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

exchange.GetOrders


```exchange.GetOrders()```函数请求数据成功时返回{@struct/Order Order}结构数组,请求数据失败时返回空值。
{@struct/Order Order}数组、空值

exchange.GetOrders()
exchange.GetOrders(symbol)

参数```symbol```用于设置所要查询的**交易品种**或者**交易品种的范围**。
对于现货交易所对象,不传```symbol```参数时,请求所有现货品种的未完成订单数据。
对于期货交易所对象,不传```symbol```参数时,默认以当前交易对、合约代码所在维度范围请求所有品种的未完成订单数据。

symbol
false
string

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

function main() {
    var arrSymbol = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]

    for (var symbol of arrSymbol) {
        var t = exchange.GetTicker(symbol)
        exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01)
    }

    var spotOrders = exchange.GetOrders()

    var tbls = []
    for (var orders of [spotOrders]) {
        var tbl = {type: "table", title: "test GetOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
        for (var order of orders) {
            tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        }
        tbls.push(tbl)
    }

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

    // 打印输出一次信息后返回,防止后续回测时订单成交,影响数据观察
    return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
'''

import json

def main():
    arrSymbol = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]

    for symbol in arrSymbol:
        t = exchange.GetTicker(symbol)
        exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 0.01)

    spotOrders = exchange.GetOrders()

    tbls = []
    for orders in [spotOrders]:
        tbl = {"type": "table", "title": "test GetOrders", "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
        for order in orders:
            tbl["rows"].append([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        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":"Binance","currency":"BTC_USDT"}]
*/

void main() {
    auto arrSymbol = {"ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"};
    
    for (const auto& symbol : arrSymbol) {
        auto t = exchange.GetTicker(symbol);
        exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01);
    }

    auto spotOrders = exchange.GetOrders();

    json tbls = R"([])"_json;
    std::vector<std::vector<Order>> arr = {spotOrders};
    for (const auto& orders : arr) {
        json tbl = R"({
            "type": "table", 
            "title": "test GetOrders", 
            "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
            "rows": []
        })"_json;

        for (const auto& order : orders) {
            json arrJson = R"([])"_json;

            arrJson.push_back("Symbol");
            arrJson.push_back("Id");
            arrJson.push_back(order.Price);
            arrJson.push_back(order.Amount);
            arrJson.push_back(order.DealAmount);
            arrJson.push_back(order.AvgPrice);
            arrJson.push_back(order.Status);
            arrJson.push_back(order.Type);
            arrJson.push_back(order.Offset);
            arrJson.push_back(order.ContractType);

            tbl["rows"].push_back(arrJson);
        }

        tbls.push_back(tbl);
    }
    
    LogStatus(_D(), "\n", "`" + tbls.dump() + "`");

    return;
}

Usando objetos de trocas instantâneas, pague por vários pares de transações diferentes, com metade do preço atual como preço do pedido abaixo, e consulte informações sobre pedidos não concluídos.

/*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) {
        var t = exchange.GetTicker(symbol)
        exchange.CreateOrder(symbol, "buy", t.Last / 2, 1)
        exchange.CreateOrder(symbol, "sell", t.Last * 2, 1)
    }

    var defaultOrders = exchange.GetOrders()
    var swapOrders = exchange.GetOrders("USDT.swap")
    var futuresOrders = exchange.GetOrders("USDT.futures")
    var btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")

    var tbls = []
    var arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
    var tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
    for (var index in arr) {
        var orders = arr[index]
        var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
        for (var order of orders) {
            tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        }
        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(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"}]
'''

import json

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

    for symbol in arrSymbol:
        t = exchange.GetTicker(symbol)
        exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 1)
        exchange.CreateOrder(symbol, "sell", t["Last"] * 2, 1)

    defaultOrders = exchange.GetOrders()
    swapOrders = exchange.GetOrders("USDT.swap")
    futuresOrders = exchange.GetOrders("USDT.futures")
    btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")

    tbls = []
    arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
    tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
    for index in range(len(arr)):
        orders = arr[index]
        tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
        for order in orders:
            tbl["rows"].append([order["Symbol"], order["Id"], order["Price"], order["Amount"], order["DealAmount"], order["AvgPrice"], order["Status"], order["Type"], order["Offset"], order["ContractType"]])
        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) {
        auto t = exchange.GetTicker(symbol);
        exchange.CreateOrder(symbol, "buy", t.Last / 2, 1);
        exchange.CreateOrder(symbol, "sell", t.Last * 2, 1);
    }
    
    auto defaultOrders = exchange.GetOrders();
    auto swapOrders = exchange.GetOrders("USDT.swap");
    auto futuresOrders = exchange.GetOrders("USDT.futures");
    auto btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap");
    
    json tbls = R"([])"_json;
    std::vector<std::vector<Order>> arr = {defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders};
    std::string tblDesc[] = {"defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"};
    for (int index = 0; index < arr.size(); index++) {
        auto orders = arr[index];
        json tbl = R"({
            "type": "table", 
            "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
            "rows": []
        })"_json;
        tbl["title"] = tblDesc[index];
    
        for (const auto& order : orders) {
            json arrJson = R"([])"_json;

            arrJson.push_back(order.Symbol);
            arrJson.push_back(to_string(order.Id));    // Order订单结构中的Id属性类型为TId,使用FMZ平台内置的一个C++函数to_string编码
            arrJson.push_back(order.Price);
            arrJson.push_back(order.Amount);
            arrJson.push_back(order.DealAmount);
            arrJson.push_back(order.AvgPrice);
            arrJson.push_back(order.Status);
            arrJson.push_back(order.Type);
            arrJson.push_back(order.Offset);
            arrJson.push_back(order.ContractType);
    
            tbl["rows"].push_back(arrJson);
        }
    
        tbls.push_back(tbl);
    }
    
    LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
    
    return;
}

Usar objetos de câmbio de futuros, fazer pedidos para vários pares de transações diferentes, variedades de códigos de contrato; fazer pedidos para preços distantes dos preços dos concorrentes no mercado, manter pedidos em estado pendente e consultar pedidos de várias maneiras.

function main() {
    var orders = exchange.GetOrders("BTC_USDT")           // 现货品种举例
    // var orders = exchange.GetOrders("BTC_USDT.swap")   // 期货品种举例
    Log("orders:", orders)
}
def main():
    orders = exchange.GetOrders("BTC_USDT")          # 现货品种举例
    # orders = exchange.GetOrders("BTC_USDT.swap")   # 期货品种举例
    Log("orders:", orders)
void main() {
    auto orders = exchange.GetOrders("BTC_USDT");           // 现货品种举例
    // auto orders = exchange.GetOrders("BTC_USDT.swap");   // 期货品种举例
    Log("orders:", orders);
}

Chamadaexchange.GetOrders()Função de entradaSymbolOs parâmetros especificam os dados de ordem dos pares de transações específicos solicitados, o código do contrato.

EmGetOrdersEm funções, os cenários de uso dos parâmetros do símbolo são:

Classificação de objetos Parâmetros de símbolos Período de consulta Notas
Imóveis à vista Parâmetros de símbolos não transmitidos Pesquise todas as transações em tempo real Todos os cenários de chamadas, se a interface do exchange não for suportada, retornará um valor em branco e não mais descreverá
Imóveis à vista Especifique o tipo de transação, o parâmetro do símbolo é: BTC_USDT Consultar o par de transações BTC_USDT indicado Para objetos de câmbio em tempo real, o formato do símbolo do parâmetro é: BTC_USDT
Futuros Parâmetros de símbolos não transmitidos Consultar todas as variedades de transações do par de transações atual, do alcance de código do contrato Se o par de negociação atual for BTC_USDT, o código do contrato é swap, querendo todos os contratos permanentes em USDT.GetOrders("USDT.swap")
Futuros Especifique a variedade de transações, o parâmetro do símbolo é: BTC_USDT.swap Consultar o contrato de permanência USDT indicado para BTC Para os objetos de câmbio de futuros, o formato do símbolo do parâmetro é definido como:NegociaçãoeCódigo do contratoCombinações, caracteres"."O que você está fazendo?
Futuros 指定交易品种范围,symbol参数为:”USDT.swap” Consulte todos os contratos permanentes da USDT -
As bolsas de futuros que apoiam opções Parâmetros de símbolos não transmitidos Consultar todos os contratos de opções de negociação atual para a faixa de dimensões Se o atual par de negociação for BTC_USDT, o contrato é definido como um contrato de opções, por exemplo, um contrato de opções binárias: BTC-240108-40000-C
As bolsas de futuros que apoiam opções Especificar a variedade de transação específica Consultar contrato de opções designado Por exemplo, para a troca de futuros de Bitcoin, o parâmetro do símbolo é: BTC_USDT.BTC-240108-40000-C
As bolsas de futuros que apoiam opções 指定交易品种范围,symbol参数为:”USDT.option” Consulte todos os contratos de opções USDT locais -

EmGetOrdersNa função, a gama de dimensões de consulta dos objetos da bolsa de futuros é resumida:

Parâmetros de símbolos Definição do escopo do pedido Notas
USDT.swap O alcance do contrato de permanência do USDT. Para as dimensões que não são suportadas pela interface API da bolsa, a chamada retornará um valor em branco.
USDT.futures A taxa de troca local do USDT é aproximada. -
USD.swap A área de atuação do Bitcoin é o âmbito do contrato permanente. -
USD.futures A taxa de troca de moeda local é aproximadamente de rango. -
USDT.option O escopo dos contratos de opções de localização USDT. -
USD.option O escopo dos contratos de opções binárias. -
USDT.futures_combo A diferença de preço é o alcance do contrato. Futures_Deribit
USD.futures_ff A taxa de transferência de fundos mixtos é aproximada. Futures_Kraken
USD.swap_pf O âmbito do contrato de garantia mixta é permanente. Futures_Kraken

Quando o objeto da trocaexchangeA conta do representante está noPeríodo de consultaOuVariedades negociadas designadasQuando não há um pedido pendente (um pedido de atividades em estado pendente), a função é chamada para retornar um conjunto de arquivos vazios, ou seja:[]Não, não é. As seguintes interfaces de intercâmbio para consultas de ordens atualmente pendentes devem passar por parâmetros de variedade, que são usados para chamar a função GetOrders, que solicita apenas ordens pendentes da variedade atual sem passar o parâmetro de símbolo, e não de todas as variedades (porque a interface da bolsa não é suportada). A empresa também oferece serviços para empresas como Zaif, MEXC, LBank, Korbit, Coinw, BitMart, Bithumb, BitFlyer, BigONE.

Não apoiaexchange.GetOrders()A função de troca:

Função nome As trocas em dinheiro não são suportadas Bolsas de futuros não suportadas
GetOrders Futures_Bibox

{@struct/Order Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}

exchange.GetOrder exchange.GetHistoryOrders