Die Ressourcen sind geladen. Beförderung...

exchange.GetPositions

Dieexchange.GetPositions()Die Funktion wird verwendet, um die Positionsinformationen zu erhalten.GetPositions()Die Funktion ist eine Mitgliederfunktion des Austauschobjekts {@var/EXCHANGE exchange}.GetPositions()Funktion erhält die Positionsinformationen des mit dem Austauschobjekt verbundenen Austauschkontosexchange. Zweck der Funktionen der Mitglieder (Methoden) derexchangeObjekt ist nur mitexchangeund wird sich hier nicht wiederholen.

Dieexchange.GetPositions()Funktion gibt ein Array von {@struct/Position Position}-Strukturen zurück, wenn die Datenanfrage erfolgreich ist, und nullwert, wenn die Datenanfrage fehlschlägt. {@struct/Position Position} Arrays, Nullwerte

Erhalten Sie Positionen. Wechsel.GetPositions (Symbol)

Der Parametersymbolwird verwendet, um dieHandelszeichenoderHandelssymbolbereichSie werden befragt. Wenn diesymbolWenn der Parameter nicht übergeben wird, werden standardmäßig die Positionsdaten aller Symbole 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":"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; 
}

Verwenden Sie Futures-Börsenobjekte, um Marktaufträge für mehrere verschiedene Handelspare und Vertragscodes zu platzieren.

Kryptowährungs-Futures-Kontrakte unterscheiden sich von Kryptowährungs-Spot-Kontrakten, die nur das logische Konzept einer Position haben.Handelspaare, VertragskodeBitte beachten Sie die Funktionen {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}. In derGetPositionsFunktion, werden die Anwendungsszenarien des Symbolparameters wie folgt zusammengefasst:

Klassifizierung von Exchange-Objekten Symbol Parameter Umfang der Abfrage Anmerkung
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-basierten Perpetual Contracts abgefragt.GetPositions("USDT.swap")
Futures Angabe des Handelsprodukts, der Symbolparameter lautet: BTC_USDT.swap Abfrage des USDT-basierten Dauerkontrakts eines bestimmten BTC Für Futures-Börsenobjekte ist das Format des Parameter-Symbols:HandelspaarundVertragskodedurch 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 derGetPositionsFunktion, Objekt des Futures-Austauschs Der Abfrage-Dimensionsbereich wird wie folgt zusammengefasst:

Symbol Parameter Definition des Antragsumfangs 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. Umfang der währungsbasierten Verträge.

♫ USD.Futures ♫ ♫ Umfang der auf Währung basierenden Lieferung ♫ 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. Umfang von Margin-Lieferverträgen. Die Futures_Kraken Exchange.

USD.Swap_pf. Gemischte Margin-Perpetual-Kontrakt-Bereich. Die Futures_Kraken Exchange.

Kompatibelexchange.GetPosition()Anrufen,GetPositionist genau das gleiche wieGetPositions.

Wenn das durch den Austauschgegenstand dargestellte Kontoexchangehat keine Positionen in derAbfragebereichoderbestimmte Handelsinstrumente, dieexchange.GetPositions()Funktion gibt ein leeres Array zurück, zum Beispiel:[].

{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}

Abrechnung exchange.SetMarginLevel