Sumber daya yang dimuat... Pemuatan...

exchange.GetPositions

Peraturanexchange.GetPositions()fungsi digunakan untuk mendapatkan informasi posisi;GetPositions()fungsi adalah anggota fungsi dari exchange object {@var/EXCHANGE exchange}.GetPositions()fungsi mendapatkan informasi posisi akun pertukaran terikat pada objek pertukaranexchangeTujuan dari fungsi anggota (metode) dariexchangeobjek hanya terkait denganexchangedan tidak akan diulang di sini.

Peraturanexchange.GetPositions()fungsi mengembalikan array struktur {@struct/Position Position} jika permintaan data berhasil, dan mengembalikan nilai nol jika permintaan data gagal. {@struct/Position Position} array, nilai nol

Pertukaran.GetPositions ((() tukar.GetPositions (simbol)

Parametersymboldigunakan untuk mengatursimbol perdaganganataukisaran simbol perdaganganuntuk diinterogasi. Jikasymbolparameter tidak diteruskan, default adalah untuk meminta data posisi dari semua simbol dalam kisaran dimensi pasangan perdagangan saat ini dan kode kontrak.

lambang palsu 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; 
}

Menggunakan obyek pertukaran berjangka untuk menempatkan pesanan pasar untuk beberapa pasangan perdagangan yang berbeda dan kode kontrak.

Kontrak berjangka cryptocurrency berbeda dari spot cryptocurrency, yang hanya memiliki konsep posisi yang logis.Pasangan perdagangan, kode kontrakSilakan lihat fungsi {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} DalamGetPositionsfungsi, skenario penggunaan parameter simbol diringkas sebagai berikut:

Klasifikasi Objek Exchange simbol Parameter Ruang lingkup kueri Pernyataan
Masa Depan Jangan lulus parameter simbol Mencari semua produk perdagangan dalam kisaran dimensi pasangan perdagangan saat ini dan kode kontrak Jika pasangan perdagangan saat ini adalah BTC_USDT dan kode kontrak adalah swap, semua kontrak abadi berbasis USDT akan ditanyakan.GetPositions("USDT.swap")
Masa Depan Tentukan produk perdagangan, parameter simbol adalah: BTC_USDT.swap Mencari kontrak abadi berbasis USDT dari BTC tertentu Untuk obyek bursa berjangka, format simbol parameter adalah:pasangan perdagangandankode kontrakdidefinisikan oleh platform FMZ, dipisahkan oleh karakter"..
Masa Depan Tentukan rentang produk perdagangan, parameter simbol adalah: USDT.swap Mencari semua kontrak abadi berbasis USDT -
Bursa berjangka yang mendukung opsi Jangan lulus parameter simbol Mencari semua kontrak opsi dalam kisaran dimensi pasangan perdagangan saat ini Jika pasangan perdagangan saat ini adalah BTC_USDT, kontrak ditetapkan sebagai kontrak opsi, misalnya, kontrak opsi Binance: BTC-240108-40000-C
Bursa berjangka yang mendukung opsi Tentukan produk perdagangan tertentu Mencari kontrak opsi yang ditentukan Misalnya, untuk Binance Futures Exchange, parameter simbol adalah: BTC_USDT.BTC-240108-40000-C
Bursa berjangka yang mendukung opsi Tentukan rentang produk perdagangan, parameter simbol adalah: USDT.option Mencari semua kontrak opsi berbasis USDT -

DalamGetPositionsfungsi, obyek pertukaran berjangka rentang dimensi kueri diringkas sebagai berikut:

simbol Parameter Definisi Lingkup Permintaan Pernyataan
USDT.swap Rentang kontrak abadi berbasis USDT. Untuk

dimensi yang tidak didukung oleh antarmuka API pertukaran, kesalahan akan dilaporkan dan nilai nol akan dikembalikan ketika Menelpon.

USDT.futures. USDT berbasis rentang kontrak pengiriman.

{\cH00FFFF}$USD.swap {\cH00FFFF}Skop perpetual berbasis mata uang kontrak.

{\cH00FFFF}USD.futures. {\cH00FFFF}Skop pengiriman berdasarkan mata uang kontrak.

{\cH00FFFF}$USDT.option {\cH00FFFF}$USDT-based options contract range {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT-based options contract range {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFFFF}$USDT-based options contract range {\cH00FFFFFF}$USDT.option range.

USD.option Rentang kontrak opsi berbasis mata uang

  • |

USDT.futures_combo Rentang kombinasi CFD. Futures_Deribit Exchange

{\cH00FFFF}$.futures_ff. {\cH00FFFF}Skop kontrak pengiriman margin campuran. Futures_Kraken Exchange

{\cH00FFFF}USD.swap_pf {\cH00FFFF}Rentang kontrak jangka panjang margin campuran. Futures_Kraken Exchange

Kompatibel denganexchange.GetPosition()panggilan,GetPositionsama persis denganGetPositions.

Ketika akun yang diwakili oleh objek pertukaranexchangetidak memiliki posisi direntang kueriatauInstrumen perdagangan tertentu, yangexchange.GetPositions()fungsi mengembalikan array kosong, misalnya:[].

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

Rekening exchange.SetMarginLevel