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

exchange.GetPositions

についてexchange.GetPositions()位置情報を取得するために使用されます.GetPositions()交換オブジェクト {@var/EXCHANGE exchange} のメンバー関数である.GetPositions()交換オブジェクトにリンクした交換口座の位置情報を取得します.exchangeメンバーの機能 (方法) の目的exchange対象は,単に関連しているexchange繰り返されないでしょう

についてexchange.GetPositions()この関数は,データ要求が成功した場合に {@struct/Position Position} 構造の配列を返し,データ要求が失敗した場合に null 値を返します. {@struct/Position Position} アレイ,ゼロ値

交換.GetPositions (位置を取得する) 交換.GetPositions (シグナル)

パラメータsymbol設定するために使用されます.取引符号または取引シンボルの範囲尋問される もしsymbolパラメータが送信されない場合,デフォルトでは,現在の取引ペアと契約コードの次元範囲内のすべてのシンボルの位置データを要求します.

シンボル 偽り 文字列

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

複数の異なる取引ペアと契約コードのための市場オーダーを配置するために先物交換オブジェクトを使用します.複数の方法でポジションをクエリします.

仮想通貨先物契約は,ポジションの論理的概念のみを有する仮想通貨スポットとは異なります. FMZ Quant Tradingプラットフォームのシステムでは,特定のタイプの仮想通貨先物契約は,トレーディングペア, 契約コード{@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} の関数を参照してください. についてGetPositionsfunction,シンボルのパラメータの使用シナリオは,以下のように要約されます.

エクスチェンジオブジェクト分類 パラメータ クエリの範囲 コメント
フューチャー シンボルのパラメータを通さない 現在の取引ペアと契約コードの次元範囲内のすべての取引製品を検索する. 現在の取引ペアがBTC_USDTで,契約コードがスワップである場合,すべてのUSDTベースの永続契約がクエリされます. これは,呼び出しに相当しますGetPositions("USDT.swap")
フューチャー 取引商品を指定する,シンボルのパラメータは: BTC_USDT.swap 指定されたBTCのUSDTベースの永続契約をクエリする フューチャー取引対象のパラメータシンボルの形式は:トレーディングペアそして契約コードFMZプラットフォームで定義され,文字で区切られています."..
フューチャー 取引商品の範囲を指定します. シンボルのパラメータは: USDT.swap すべてのUSDTベースの永続契約をクエリ -
オプションをサポートする先物取引 シンボルのパラメータを通さない 現在の取引ペアサイズ範囲内のすべてのオプション契約をクエリする 現在の取引ペアが BTC_USDTである場合,契約はオプション契約に設定されます.例えば,Binanceオプション契約: BTC-240108-40000-C
オプションをサポートする先物取引 特定の取引商品を指定する 指定されたオプション契約をクエリ たとえば,Binance 期貨取引所では,シンボルのパラメータは: BTC_USDT.BTC-240108-40000-C
オプションをサポートする先物取引 取引商品の範囲を指定します,シンボルのパラメータは: USDT.option すべてのUSDTベースのオプション契約をクエリ -

についてGetPositions機能,先物取引対象 問い合わせの寸法範囲は次のように要約されます.

パラメータ 要求範囲の定義 コメント
USDT.swap USDTベースの永続契約範囲 について

Exchange API インターフェースでサポートされていない次元 エラーが報告され, null 値が返されます. 呼び出しています

送料契約の範囲です 送料契約の範囲です

通貨ベースの永続的な取引の範囲 契約です

貨幣による配送の範囲 契約です

USDTのオプションです USDTベースのオプション契約の範囲です

通貨ベースのオプション契約の範囲です

  • |

USDT.futures_combo CFDの組み合わせの範囲 FUTURES_DERIBIT 取引所

USD.futures_ff ミックス・マーージン・デリバリー・コントラクトの範囲 フューチャーズ_クラッケン取引所

USD.swap_pf ミックス・マーージン・パーペチュアル・コントラクト・レンジ フューチャーズ_クラッケン取引所

互換性exchange.GetPosition()呼び出しGetPositionこの式は,GetPositions.

取引対象となる口座がexchange市場におけるポジションがない問い合わせ範囲または特定取引手段についてexchange.GetPositions()function は空の配列を返します 例えば:[].

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

口座 exchange.SetMarginLevel