संसाधन लोड हो रहा है... लोड करना...

exchange.GetPositions


```exchange.GetPositions()```函数请求数据成功时返回{@struct/Position Position}结构数组,请求数据失败时返回空值。
{@struct/Position Position}数组、空值

exchange.GetPositions()
exchange.GetPositions(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":"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) + "`")

    // 打印输出一次信息后返回,防止后续回测时订单成交,影响数据观察
    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;
}

फ्यूचर्स एक्सचेंज के ऑब्जेक्ट का उपयोग करके, कई अलग-अलग ट्रेडिंग जोड़े, अनुबंध कोड के विभिन्न प्रकार के नीचे सूचीबद्ध मूल्य सूची; विभिन्न तरीकों से स्टॉक पूछें।

क्रिप्टोक्यूरेंसी फ्यूचर्स कॉन्ट्रैक्ट क्रिप्टोक्यूरेंसी नकदी से अलग है, नकदी केवल तार्किक रूप से होल्डिंग अवधारणा है। एफएमजेड क्वांटिफाइड ट्रेडिंग प्लेटफॉर्म के सिस्टम में क्रिप्टोक्यूरेंसी फ्यूचर्स कॉन्ट्रैक्ट की विशिष्ट किस्मेंसौदा सहीअनुबंध कोडआम तौर पर पहचाने जाने वाले. आप {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} फ़ंक्शन को देख सकते हैं. मेंGetPositionsफ़ंक्शन में, symbol पैरामीटर के उपयोग के परिदृश्यों को संक्षेप में प्रस्तुत किया गया हैः

एक्सचेंज ऑब्जेक्ट्स का वर्गीकरण symbol पैरामीटर पूछताछ का दायरा नोट्स
वायदा कोई प्रतीक पैरामीटर नहीं वर्तमान लेनदेन जोड़े, अनुबंध कोड आयाम के सभी लेनदेन किस्मों की जांच करें यदि वर्तमान लेन-देन जोड़ी BTC_USDT है, तो कॉन्ट्रैक्ट कोड swap है, यानी सभी USDT स्थानिक स्थायी अनुबंधों का पता लगाएं.GetPositions("USDT.swap")
वायदा विनिमय प्रकार निर्दिष्ट करें, प्रतीक पैरामीटर हैः BTC_USDT.swap बीटीसी के लिए यूएसडीटी स्थायी ठेके की जांच करें फ्यूचर्स एक्सचेंज ऑब्जेक्ट के लिए, पैरामीटर प्रतीक प्रारूपःसौदा सहीके साथअनुबंध कोडसंयोजन, अक्षरों के साथ"."यह एक बहुत ही दिलचस्प लेख है।
वायदा 指定交易品种范围,symbol参数为:”USDT.swap” USDT के सभी स्थायी ठेके देखें -
विकल्पों का समर्थन करने वाले फ्यूचर्स एक्सचेंज कोई प्रतीक पैरामीटर नहीं सभी विकल्प अनुबंधों के लिए आयाम सीमा पर वर्तमान लेनदेन की जांच करें यदि वर्तमान ट्रेडिंग जोड़ी BTC_USDT है, तो अनुबंध को विकल्प अनुबंध के रूप में सेट करें, उदाहरण के लिए, बिनान विकल्प अनुबंधः BTC-240108-40000-C
विकल्पों का समर्थन करने वाले फ्यूचर्स एक्सचेंज विशिष्ट लेन-देन की किस्में निर्दिष्ट करें निर्दिष्ट विकल्प अनुबंध की जांच करें उदाहरण के लिए, विनय वायदा एक्सचेंज के लिए, प्रतीक पैरामीटरः BTC_USDT.BTC-240108-40000-C
विकल्पों का समर्थन करने वाले फ्यूचर्स एक्सचेंज 指定交易品种范围,symbol参数为:”USDT.option” सभी USDT स्थानीय विकल्प अनुबंध देखें -

मेंGetPositionsफ़ंक्शन में, फ्यूचर्स एक्सचेंज ऑब्जेक्ट क्वेरी आयाम सीमा को समेकित किया जाता हैः

symbol पैरामीटर अनुरोध का दायरा नोट्स
USDT.swap USDT के स्थायी अनुबंध का दायरा। एक्सचेंज एपीआई इंटरफेस द्वारा समर्थित नहीं किए गए आयामों के लिए, कॉल करने पर एक त्रुटि लौटाई जाएगी।
USDT.futures USDT की स्थानीय विनिमय दर लगभग है। -
USD.swap इस तरह के एक नए नियम के तहत, मुद्रा विनिमय के लिए स्थायी अनुबंध का दायरा। -
USD.futures मुद्रा विनिमय दर लगभग दायरे में है। -
USDT.option USDT स्थानीय विकल्प अनुबंधों का दायरा। -
USD.option मुद्रा स्थानिक विकल्प अनुबंधों का दायरा। -
USDT.futures_combo यह एक बहुत ही अच्छा तरीका है। Futures_Deribit एक्सचेंज
USD.futures_ff मिश्रित प्रतिभूतियों का भुगतान अनुपात लगभग दायरा। Futures_Kraken एक्सचेंज
USD.swap_pf मिश्रित प्रतिभूतियों के लिए स्थायी अनुबंध का दायरा। Futures_Kraken एक्सचेंज

संगतताexchange.GetPosition()कॉल करें।GetPositionके साथGetPositionsयह पूरी तरह से एक जैसा है।

जब एक्सचेंज वस्तुexchangeप्रतिनिधि के खाते मेंपूछताछ के दायरे मेंयाविनिर्दिष्ट व्यापारिक किस्मजब कोई स्टॉक नहीं हैexchange.GetPositions()फ़ंक्शन खाली सरणी देता है, उदाहरण के लिएः[]

{@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 exchange.SetContractType}, {@fun/Futures/exchange.

खाता exchange.SetMarginLevel