Die Ressourcen sind geladen. Beförderung...

exchange.GetOrders

Dieexchange.GetOrders()Die Funktion wird verwendet, um ausstehende Aufträge zu erhalten.

Dieexchange.GetOrders()Funktion gibt ein Array von {@struct/Order Order}-Strukturen zurück, wenn die Datenanfrage erfolgreich ist, und nullwerte, wenn die Datenanfrage fehlschlägt. {@struct/Order Order}-Array, Nullwert

- Ich bin nicht hier. - Das ist nicht wahr.

Der Parametersymbolwird verwendet, um dieTransaktionssymboloderTransaktionssymbolbereichSie werden befragt. Für Spot-Austauschobjekte, wenn diesymbolWenn der Parameter nicht übergeben wird, werden die unvollendeten Bestelldaten aller Spotprodukte angefordert. Für Futures-BörsensymbolWenn der Parameter nicht übergeben wird, werden standardmäßig die unvollendeten Auftragsdaten aller Sorten im Dimensionsbereich des aktuellen Handelspaares und des Vertragscodes angefordert.

Symbol falsche String

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

Verwenden Sie das Spot-Exchange-Objekt, um Kaufoptionen für mehrere verschiedene Handelspare zu der Hälfte des aktuellen Preises zu platzieren und dann die ausstehenden Auftragsinformationen abzufragen.

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

Verwenden Sie Futures-Börsenobjekte, um Aufträge für mehrere verschiedene Handelspare und Vertragscodes zu platzieren. Platzieren Sie Aufträge zu Preisen, die weit vom Gegenparteipreis entfernt sind, halten Sie Aufträge in einem unerfüllten Zustand und abfragen Sie Aufträge auf mehrere Arten.

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

Bei Anrufen derexchange.GetOrders()Funktion, in dieSymbolParameter zur Anforderung von Auftragsdaten für ein bestimmtes Handelspaar und einen Vertragskode.

In derGetOrdersFunktion, werden die Anwendungsszenarien des Symbolparameters wie folgt zusammengefasst:

Klassifizierung von Exchange-Objekten Symbol Parameter Umfang der Abfrage Anmerkung
Stellfläche Symbolparameter nicht übergeben Abfrage aller Spot-Handelspaare Für alle Anrufszenarien wird, wenn die Austauschoberfläche sie nicht unterstützt, ein Fehler gemeldet und ein Nullwert zurückgegeben.
Stellfläche Angabe des Handelstyps, der Symbolparameter lautet: BTC_USDT Abfrage des angegebenen BTC_USDT-Handelspaares Für Spot-Börsenobjekte ist das Symbolparameterformat: BTC_USDT
Futures Symbolparameter nicht übergeben Abfrage aller Handelsprodukte innerhalb des aktuellen Handelspaares und des Dimensionsabstands des Vertragscodes Wenn das aktuelle Handelspaar BTC_USDT ist und der Vertragscode Swap ist, werden alle USDT-margierten Perpetual Contracts abgefragt.GetOrders("USDT.swap")
Futures Angabe des Handelstyps, der Symbolparameter lautet: BTC_USDT.swap Abfrage des USDT-basierten Dauerkontrakts für einen bestimmten BTC Für Futures-Börsenobjekte ist das Format des Parameter-Symbols: eine Kombination vonHandelspaarundVertragskodedurch die FMZ-Plattform definiert, getrennt durch die Zeichen"..
Futures Angabe des Handelssortiments, der Symbolparameter lautet: USDT.swap Abfrage aller USDT-basierten Daueraufträge -
Futures-Börsen, die Optionen unterstützen Symbolparameter nicht übergeben Abfrage aller Optionskontrakte innerhalb des aktuellen Dimensionsbereichs des Handelspares Wenn das aktuelle Handelspaar BTC_USDT ist, wird der Vertrag auf einen Optionsvertrag festgelegt, z. B. Binance-Optionvertrag: BTC-240108-40000-C
Futures-Börsen, die Optionen unterstützen Spezifische Handelsprodukte angeben Abfrage des angegebenen Optionskontrakts Für die Binance Futures Exchange beispielsweise ist der Symbolparameter: BTC_USDT.BTC-240108-40000-C
Futures-Börsen, die Optionen unterstützen Angabe des Handelssortiments, der Symbolparameter lautet: USDT.option Abfrage aller USDT-basierten Optionskontrakte -

In derGetOrdersFunktion, die Futures Exchange-Objektanfrage Der Abmessungsbereich ist wie folgt zusammengefasst:

Symbol Parameter Definition des Anforderungsbereichs Anmerkung
USDT.swap USDT-basierte Dauervertragsspanne. Für

Abmessungen, die von der Exchange-API-Schnittstelle nicht unterstützt werden, Ein Fehler wird gemeldet und ein Nullwert wird zurückgegeben, wenn Sie ruft. ♫ USDT.Futures ♫ ♫ USDT-basierte Liefervertragsspanne ♫ ♫ USDT-basierte Liefervertragsspanne ♫ USD.Swap. Eine Reihe von Währungsbasierten Verträge. ♫ USD.Futures ♫ Verträge. USDT.Option. USDT-basierte Optionskontrakt-Bereich. USD.Option. Währungsbasierte Optionskontrakt-Range. USDT.Futures_Combo. Eine Reihe von CFD-Kombinationen. Futures_Deribit-Börse USD.Futures_ff Eine Reihe von Margin-Lieferverträgen. Die Futures_Kraken Exchange. USD.Swap_pf. Eine Reihe von perpetual Margin-Verträgen. Ich habe eine Idee. Ich habe eine Idee.

Wenn das durch den Austauschgegenstand dargestellte Kontoexchangehat keine ausstehenden Aufträge innerhalb derAbfragebereichoderbestimmte Handelsinstrumente(aktive Aufträge in einem unerfüllten Zustand), wenn diese Funktion aufgerufen wird, wird ein leeres Array zurückgegeben, d. h.:[]- Ich weiß. Bei der Aufforderung der GetOrders-Funktion bei diesen Börsen werden, wenn der Instrumentparameter nicht eingegeben wird, nur die unvollendeten Aufträge des aktuellen Instruments angefordert, nicht die unvollendeten Aufträge aller Instrumente (weil die Exchange-Schnittstelle dies nicht unterstützt). Zaif, MEXC, LBank, Korbit, Coinw, BitMart, Bithumb, BitFlyer, BigONE. Das ist nicht nur ein Spiel.

Dieexchange.GetOrders()Funktion:

Funktionsname Nicht unterstützte Spotbörsen Nicht abgesicherte Futures-Börsen
GetOrders Futures_Bibox

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

exchange.GetOrder exchange.GetHistoryOrders