資源の読み込みに... 荷物...

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

現貨取引所のオブジェクトを使用して,複数の異なる取引対を,現在の価格の半分を下手価格として下手価格で決済し,未完成の注文情報を問い合わせる.

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

フューチャー取引所のオブジェクトを使用して,複数の異なる取引対,契約コードの種類を注文します. 注文価格は,取引先価格から遠ざかり,注文は未完了状態に保ち,注文を複数の方法で問い合わせます.

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

呼び出しexchange.GetOrders()函数が入力される時Symbolパラメータは,要求された特定の取引対,契約コードの注文データを指定します.

ニュースGetOrders函数では,symbol参数の使用シナリオは以下のようにまとめられます.

取引所の対象分類 symbol パラメータ 検索範囲 コメント
現貨 シンボルのパラメータを伝えない すべての現金取引を検索します. すべての呼び出しシナリオは,取引所のインターフェースがサポートしていない場合,エラーリポートが空白値を返します.
現貨 取引の種類を指定し,シンボルのパラメータは:BTC_USDT 指定されたBTC_USDT取引対を検索 現金取引所オブジェクトでは,参数シンボルの形式は:BTC_USDT
フューチャー シンボルのパラメータを伝えない 現在の取引対,契約コードの次元範囲のすべての取引種を検索します 現在の取引ペアがBTC_USDTで,契約コードがスワップである場合,すべてのUSDT本位永続契約を検索します.GetOrders("USDT.swap")
フューチャー 取引種を指定し,シンボルのパラメータは:BTC_USDT.swap 指定されたBTCのUSDT本位永続契約について調べる フューチャー取引所のオブジェクトでは,パラメータシンボル形式は:FMZプラットフォームで定義されています.取引はそして契約コード文字の組み合わせ"."ギャップ.
フューチャー 指定交易品种范围,symbol参数为:”USDT.swap” USDTのすべての永続契約を検索する -
支持する先物取引所 シンボルのパラメータを伝えない 現在取引されているすべてのオプション契約を次元範囲で調べる 現在の取引対がBTC_USDTである場合,契約はオプション契約として設定されます.例えば,Binanceオプション契約:BTC-240108-40000-C
支持する先物取引所 特定の取引品種を指定する 指定されたオプション契約について調べる 例えば,BTC先物取引所では,シンボルのパラメータは:BTC_USDT.BTC-240108-40000-C
支持する先物取引所 指定交易品种范围,symbol参数为:”USDT.option” USDTのローカルオプション契約をすべて調べる -

ニュースGetOrders関数では,フューチャー取引所のオブジェクトのクエリ次元範囲をまとめます.

symbol パラメータ 要求範囲 コメント
USDT.swap USDTの永続契約の範囲は, エクスチェンジAPIがサポートしていない次元については,呼び出し時にエラーが返される.
USDT.futures USDT本位換算率は約範囲である. -
USD.swap 永続契約の範囲は. -
USD.futures 通貨の本位交換比率は,約範囲である. -
USDT.option USDTのローカルオプション契約の範囲. -
USD.option 取引先は,取引先の取引先と取引先の取引先を比較しています. -
USDT.futures_comb 契約の範囲は,価格の差をまとめます. フューチャーズ_デリビット取引所
USD.futures_ff 混合担保金配当比率について フューチャーズ_クラケン取引所
USD.swap_pf 混合担保の永続契約の範囲. フューチャーズ_クラケン取引所

取引所の対象となる場合exchange代表の口座は問い合わせ範囲あるいは指定された取引品種掛けるリストがないとき (未完了状態のアクティビティオーダー) は,空の配列を返します.[]│ │ 以下の取引所への問い合わせは,現在未完了の注文のインターフェースが品種参数を送信しなければならない.これらの取引所がGetOrders関数を呼び出す場合,シンボル参数を送信しない場合,現在の品種のみの未完了注文を要求する,すべての品種の未完了注文を要求する (取引所のインターフェースがサポートしていないため). ザイフ,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}, {@struct/Trade/Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/Trade/exchange}, {@struct/Order Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders}, {@fun/Trade/exchange.GetHistoryOrders}, {@fun/Trade/exchange}, {@struct/Trade/Exchange}, {@struct/Trade/Exchange.GetOrder exchange.GetOrder exchange.GetOrder exchange.GetOrder}, {@fun/Trade/Exchange.GetHistoryOrders}, {@

exchange.GetOrder exchange.GetHistoryOrders