В процессе загрузки ресурсов... загрузка...

exchange.GetOrders

Вexchange.GetOrders()Функция используется для получения невыполненных заказов.

Вexchange.GetOrders()функция возвращает массив {@struct/Order Order} структур, если запрос на данные удается, и возвращает нулевые значения, если запрос на данные не удается. {@struct/Order Order} массив, нулевое значение

Обмен.GetOrders ((() обмен.GetOrders (символ)

Параметрsymbolиспользуется для установкисимвол транзакцииилидиапазон символов транзакцийчтобы его допросили. Для обменных объектов на месте, еслиsymbolпараметр не будет передан, будут запрошены незавершенные данные заказа всех спотовых продуктов. Для фьючерсных обменных объектов, еслиsymbolпараметр не передается, по умолчанию запрос не завершенных данных о заказе всех сортов в диапазоне измерений текущей торговой пары и кода контракта.

символ ложное строка

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

    // 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":"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;
}

Используйте объект спотовой биржи для размещения ордеров на покупку нескольких различных торговых пар по половине текущей цены, а затем запросите информацию о остающихся ордерах.

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

    // 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:
        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));    // The Id attribute type in the Order structure is TId, which is encoded using a C++ function to_string built into the FMZ platform.
            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;
}

Использование фьючерсных обменных объектов для размещения заказов на несколько различных торговых пар и кодов контрактов. размещение заказов по ценам, удаленным от цены контрагента, хранение заказов в невыполненном состоянии и запрос заказов несколькими способами.

function main() {
    var orders = exchange.GetOrders("BTC_USDT")           // Examples of spot products
    // var orders = exchange.GetOrders("BTC_USDT.swap")   // Examples of futures products
    Log("orders:", orders)
}
def main():
    orders = exchange.GetOrders("BTC_USDT")          # Examples of spot products
    # orders = exchange.GetOrders("BTC_USDT.swap")   # Examples of futures products
    Log("orders:", orders)
void main() {
    auto orders = exchange.GetOrders("BTC_USDT");           // Examples of spot products
    // auto orders = exchange.GetOrders("BTC_USDT.swap");   // Examples of futures products
    Log("orders:", orders);
}

Когда вы звонитеexchange.GetOrders()Функция, пропускать вSymbolпараметр для запроса данных о заказах для конкретной торговой пары и кода контракта.

ВGetOrdersфункция, сценарии использования параметра символа обобщены следующим образом:

Классификация обмена символ Параметры Объем запроса Примечание
Площадь Не передавать параметр символа Запрос всех спотовых торговых пар Для всех сценариев вызова, если интерфейс обмена не поддерживает его, будет сообщена ошибка и будет возвращено нулевое значение.
Площадь Укажите тип торговли, параметр символа: BTC_USDT Запрос указанной торговой пары BTC_USDT Для объектов спотового обмена формат параметра символа: BTC_USDT
Фьючерсы Не передавать параметр символа Запрос всех торговых продуктов в пределах текущего диапазона размеров торговой пары и кода контракта Если текущая торговая пара BTC_USDT и код контракта swap, будут запрошены все постоянные контракты с маржировкой USDT. Это эквивалентно вызовуGetOrders("USDT.swap")
Фьючерсы Укажите тип торговли, параметр символа: BTC_USDT.swap Запрос постоянного контракта на основе USDT для определенного BTC Формат символа параметра для фьючерсных биржевых объектов: комбинацияторговые парыикод контрактаопределены платформой FMZ, разделенные символами"..
Фьючерсы Укажите диапазон торговых продуктов, параметр символа: USDT.swap Запрос всех бессрочных контрактов на основе USDT -
Фьючерсные биржи, поддерживающие опционы Не передавать параметр символа Запрос всех опционных контрактов в пределах текущего диапазона размеров торговых пар Если текущая торговая пара BTC_USDT, контракт устанавливается на опционный контракт, например, опционный контракт Binance: BTC-240108-40000-C
Фьючерсные биржи, поддерживающие опционы Уточнить конкретные торговые продукты Запрос указанного опциона Например, для Binance Futures Exchange параметр символа: BTC_USDT.BTC-240108-40000-C
Фьючерсные биржи, поддерживающие опционы Укажите диапазон торговых продуктов, параметр символа: USDT.option Запрос всех контрактов на опционы на основе USDT -

ВGetOrdersфункция, фьючерсный обмен объект запрос диапазон измерений обобщается следующим образом:

символ Параметры Определение диапазона запроса Примечание
USDT.swap Периодический контрактный диапазон на основе USDT. Для

размеры, которые не поддерживаются интерфейсом API обмена, будет сообщена ошибка и возвращено нулевое значение, когда звонит. USDT.futures. USDT-основанный диапазон контрактов на доставку. ∙ ∙ ∙ USD.swap ∙ ∙ ∙ Диапазон валютных постоянных Контракты. USD.futures. Диапазон доставки на основе валюты Контракты. Оптимизация USDT.Опция USDT.Опционный контракт на основе USDT. Оптиции в долларах США. Оптиции в валютах. ∙ ∙ USDT.futures_combo ∙ Ряд комбинаций CFD. ∙ Фьючерс_Дерибит Биржа ∙∙∙ USD.futures_ff ∙∙ Ряд контрактов на поставку смешанной маржи. ∙∙ Фьючерс_Кракен Биржа. USD.swap_pf. Диапазон смешанных маржинальных вечных контрактов. Фьючерс_Кракен Биржа.

Когда счет, представленный обменным объектомexchangeне имеет ожидаемых заказов в рамкахдиапазон запросаиликонкретные торговые инструменты(активные заказы в невыполненном состоянии), вызов этой функции возвращает пустой массив, то есть:[]- Да. При вызове функции GetOrders с этими биржами, если параметр инструмента не передается, запрашиваются только незавершенные заказы текущего инструмента, а не незавершенные заказы всех инструментов (поскольку интерфейс обмена не поддерживает это). Zaif, MEXC, LBank, Korbit, Coinw, BitMart, Bithumb, BitFlyer, BigONE. Я не знаю, как это сделать.

Обмены, которые не поддерживаютexchange.GetOrders()Функция:

Имя функции Не поддерживаемые спотовые обмены Фьючерсные биржи без поддержки
GetOrders Фьючерсы_Бибокс

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

exchange.GetOrder exchange.GetHistoryOrders