Les ressources ont été chargées... Je charge...

exchange.GetPositions

Leexchange.GetPositions()La fonction est utilisée pour obtenir les informations de position;GetPositions()fonction est une fonction membre de l'objet d'échange {@var/EXCHANGE exchange}.GetPositions()fonction obtient les informations de position du compte de change lié à l'objet de changeexchangeLe but des fonctions (méthodes) des membres duexchangel'objet est uniquement lié àexchangeet ne se reproduira pas ici.

Leexchange.GetPositions()la fonction renvoie un tableau de structures {@struct/Position Position} si la demande de données est réussie, et elle renvoie une valeur nulle si la demande de données échoue. {@struct/Position Position} les tableaux, les valeurs nulles

Je suis en train de changer de position. Je suis en train d'écrire une lettre.

Le paramètresymbolest utilisé pour régler lesymbole de négociationougamme de symboles de négociationPour être interrogé. Si lesymbolsi le paramètre n'est pas passé, la valeur par défaut est de demander les données de position de tous les symboles dans la gamme de dimensions de la paire de négociation en cours et du code du contrat.

le symbole faux chaîne

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

Utilisez des objets d'échange de contrats à terme pour passer des ordres de marché pour plusieurs paires de transactions et codes de contrats différents.

Les contrats à terme de crypto-monnaie diffèrent des contrats à terme de crypto-monnaie, qui n'ont que le concept logique d'une position.paires de négociation, code du contratVeuillez vous référer aux fonctions {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}. Dans leGetPositionsfonction, les scénarios d'utilisation du paramètre symbole sont résumés comme suit:

Classification des objets Exchange Symbole Paramètres Portée de la requête Nom de l'entreprise
Les contrats à terme Ne pas passer le paramètre de symbole Rechercher tous les produits de négociation dans la gamme de dimensions de la paire de négociation et du code du contrat en cours Si la paire de trading actuelle est BTC_USDT et que le code du contrat est swap, tous les contrats perpétuels basés sur USDT seront interrogés.GetPositions("USDT.swap")
Les contrats à terme Indiquez le produit de négociation, le paramètre du symbole est: BTC_USDT.swap Rechercher le contrat perpétuel basé sur USDT d'un BTC spécifié Pour les objets d'échange de contrats à terme, le format du symbole de paramètre est:paire de négociationetcode du contratdéfinies par la plateforme FMZ, séparées par les caractères"..
Les contrats à terme Spécifier la gamme de produits de négociation, le paramètre du symbole est: USDT.swap Rechercher tous les contrats perpétuels basés sur USDT -
Échanges de contrats à terme qui prennent en charge les options Ne pas passer le paramètre de symbole Rechercher tous les contrats d'options dans la plage de dimension de la paire de négociation en cours Si la paire de négociation actuelle est BTC_USDT, le contrat est défini sur un contrat d'option, par exemple, le contrat d'option Binance: BTC-240108-40000-C
Échanges de contrats à terme qui prennent en charge les options Spécifier le produit commercial spécifique Rechercher le contrat d' option spécifié Par exemple, pour Binance Futures Exchange, le paramètre du symbole est le suivant: BTC_USDT.BTC-240108-40000-C
Échanges de contrats à terme qui prennent en charge les options Spécifiez la gamme de produits de négociation, le paramètre du symbole est: USDT.option Rechercher tous les contrats d'options basés sur USDT -

Dans leGetPositionsfonction, l'objet de l'échange à terme la gamme de dimensions de requête est résumée comme suit:

Symbole Paramètres Définition de la portée de la demande Nom de l'entreprise
USDT.swap la valeur de l'échange est la valeur de l'échange à terme. Pour

les dimensions qui ne sont pas prises en charge par l'interface API d'échange, une erreur sera signalée et une valeur nulle sera renvoyée lorsque Je vous appelle.

Une gamme de contrats de livraison basés sur USDT.

L'ampleur de l'échange perpétuel basé sur la monnaie Des contrats.

L'ampleur de la livraison basée sur la monnaie Des contrats.

Une gamme d'options basée sur USDT.

L'option USD est basée sur la monnaie.

  • |

Une gamme de combinaisons de CFD. Les échanges de dérivés futures.

L'ampleur des contrats de livraison de marge mixte. Je suis en train d'écrire un livre.

Une marge mixte pour un contrat perpétuel. Je suis en train d'écrire un livre.

Compatible avecexchange.GetPosition()appel,GetPositionest exactement le même queGetPositions.

Lorsque le compte représenté par l'objet d'échangeexchangen'a aucune position dans leplage de requêteouinstruments de négociation spécifiques, leexchange.GetPositions()la fonction renvoie un tableau vide, par exemple:[].

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

Compte exchange.SetMarginLevel