Sumber daya yang dimuat... Pemuatan...

Masa Depan

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}

exchange.SetMarginLevel

Peraturanexchange.SetMarginLevel()Fungsi ini digunakan untuk menetapkan nilai leverage dari pasangan perdagangan atau kontrak yang ditentukan olehsymbolKompatibel dengan hanya melewati dalam parametermarginLeveluntuk menetapkan nilai leverage dari pasangan perdagangan atau kontrak saat ini dari objek pertukaran {@var/EXCHANGE exchange}.

exchange.SetMarginLevel ((simbol, marginLevel) Pertukaran.Set MarginLevel ((marginLevel)

Peraturansymbolparameter digunakan untuk menentukan pasangan perdagangan atau kontrak yang mana nilai leverage perlu disesuaikan.symbolparameter dariSetMarginLevel()fungsi konsisten dengan format darisymbolparameter dariGetTicker()fungsi. lambang palsu string PeraturanmarginLevelparameter digunakan untuk mengatur nilai leverage, yang biasanya bilangan bulat untuk bursa dan juga mendukung pengaturan nilai leverage titik terapung untuk beberapa bursa. marginLevel benar nomor

function main() {
    exchange.SetMarginLevel(10)
    // Set the leverage of BTC’s USDT-margined perpetual contract to 15
    exchange.SetMarginLevel("BTC_USDT.swap", 15)
}
def main():
    exchange.SetMarginLevel(10)
    exchange.SetMarginLevel("BTC_USDT.swap", 15)
void main() {
    exchange.SetMarginLevel(10);
    exchange.SetMarginLevel("BTC_USDT.swap", 15); 
}

Peraturanexchange.SetMarginLevel()fungsi mendukung cryptocurrency kontrak berjangka pertukaran objek saja. sistem backtesting mendukung memanggilexchange.SetMarginLevel()fungsi untuk mengatur nilai leverage. Untuk kontrak berjangka cryptocurrency, mekanisme leverage tidak seragam karena pertukaran kontrak berjangka cryptocurrency.exchange.SetMarginLevel()fungsi tidak menghasilkan permintaan jaringan, tetapi hanya menetapkan variabel leverage dalam sistem FMZ yang mendasari (digunakan untuk melewati parameter dalam antarmuka penempatan pesanan). Nilai leverage dari beberapa kontrak berjangka pertukaran adalah pengaturan dari bursa, yang perlu ditetapkan di halaman situs web bursa atau menggunakan antarmuka API. Dalam hal ini memanggilexchange.SetMarginLevel()fungsi akan menghasilkan permintaan jaringan dan mungkin gagal mengatur leverage. Ada banyak alasan untuk ini, misalnya: ada posisi saat ini atau pesanan yang menunggu, yang membuat tidak mungkin untuk menetapkan nilai leverage baru untuk pasangan perdagangan atau kontrak ini. Bursa yang tidak mendukungexchange.SetMarginLevel()Fungsi:

Nama Fungsi Pertukaran Spot yang tidak didukung Pertukaran Futures Tanpa Dukungan
SetMarginLevel Futures_dYdX / Futures_Deribit

{@var/EXCHANGE pertukaran}

exchange.SetDirection

Peraturanexchange.SetDirection()Fungsi ini digunakan untuk mengatur arah pesanan dari fungsi {@fun/Trade/exchange.Buy exchange.Buy}, fungsi {@fun/Trade/exchange.Sell exchange.Sell} ketika menempatkan pesanan untuk kontrak berjangka.

Pertukaran.SetDirection ((arah)

Peraturandirectionparameter digunakan untuk mengatur arah kontrak berjangka ketika pesanan ditempatkan."buy", "closesell", "sell", "closebuy"Aku tidak tahu. arah benar string

function main(){
    // For example, set to OKX futures contract of this week
    exchange.SetContractType("this_week")    
    // Set leverage to 5 times
    exchange.SetMarginLevel(5)
    // Set the order type to long
    exchange.SetDirection("buy")
    // Place an order for 2 contracts at 10,000
    exchange.Buy(10000, 2)              
    exchange.SetMarginLevel(5)
    exchange.SetDirection("closebuy")
    exchange.Sell(1000, 2)
}
def main():
    exchange.SetContractType("this_week")
    exchange.SetMarginLevel(5)
    exchange.SetDirection("buy")
    exchange.Buy(10000, 2)
    exchange.SetMarginLevel(5)
    exchange.SetDirection("closebuy")
    exchange.Sell(1000, 2)
void main() {
    exchange.SetContractType("this_week");
    exchange.SetMarginLevel(5);
    exchange.SetDirection("buy");
    exchange.Buy(10000, 2);
    exchange.SetMarginLevel(5);
    exchange.SetDirection("closebuy");
    exchange.Sell(1000, 2);
}

Peraturanexchange.SetDirection()Fungsi menetapkan korespondensi antara arah transaksi kontrak berjangka dan fungsi penempatan order:

Fungsi penempatan pesanan Arah yang ditetapkan oleh parameter fungsi SetDirection Pengamatan
exchange.Buy membeli Membeli dan membuka posisi panjang
exchange.Buy jual tutup Membeli dan menutup posisi pendek
exchange.Sell menjual Jual dan buka posisi pendek
exchange.Sell closebuy Jual dan tutup posisi panjang

{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}

exchange.SetContractType

Peraturanexchange.SetContractType()Fungsi ini digunakan untuk mengatur kode kontrak saat ini dari objek pertukaran {@var/EXCHANGE exchange}.

Peraturanexchange.SetContractType()fungsi mengembalikan struktur yang berisi kode kontrak pertukaran yang sesuai dengan kode kontrak saat ini.quarter, dan struktur nilai pengembalian fungsi ini adalah:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}Aku tidak tahu. objek

exchange.SetContractType ((simbol)

Peraturansymbolparameter digunakan untuk mengatur kode kontrak, nilai opsional adalah:"this_week", "next_week", "quarter", "next_quarter", "swap", dll. Kontrak berjangka cryptocurrencykontrak pengirimankode, jika tidak ditentukan, umumnya memiliki:

  • this_week: kontrak minggu ini.
  • next_week: kontrak minggu depan.
  • quarter: kontrak triwulanan.
  • next_quarter: kontrak kuartal berikutnya.Kontrak permanenkode dalam kontrak berjangka cryptocurrency, jika tidak ditentukan, umumnya memiliki:
  • swap: kontrak abadi.

lambang benar string

function main() {
    // Set to this week contract
    exchange.SetContractType("this_week") 
}
def main():
    exchange.SetContractType("this_week")
void main() {
    exchange.SetContractType("this_week");
}

Tetapkan kontrak saat ini sebagai kontrak minggu saat ini:

function main() {
    // The default trading pair is BTC_USD, set the contract for this week, and the contract is a currency standard contract
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())
    
    // Switching trading pairs, then setting up contracts, switching to USDT as margin contracts, as opposed to currency standard contracts
    exchange.IO("currency", "BTC_USDT")   
    exchange.SetContractType("swap")
    Log("ticker:", exchange.GetTicker())
}
def main():
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())
    exchange.IO("currency", "BTC_USDT")
    exchange.SetContractType("swap")
    Log("ticker:", exchange.GetTicker())
void main() {
    exchange.SetContractType("this_week");
    Log("ticker:", exchange.GetTicker());
    exchange.IO("currency", "BTC_USDT");
    exchange.SetContractType("swap");
    Log("ticker:", exchange.GetTicker());
}

Ketika membuat kontrak denganUSDTsebagai margin, Anda perlu beralih pasangan perdagangan dalam kode (Anda juga dapat mengatur pasangan perdagangan langsung saat menambahkan objek pertukaran):

function main(){
    // Set the contract for this week
    var ret = exchange.SetContractType("this_week")     
    // Return information about the current week's contracts
    Log(ret)
}
def main():
    ret = exchange.SetContractType("this_week")
    Log(ret)
void main() {
    auto ret = exchange.SetContractType("this_week");
    Log(ret);
}

Mencetak nilai kembali dariexchange.SetContractType()Fungsi:

Dalam strategi kontrak berjangka cryptocurrency, ambil contoh beralih keBTC_USDTPasangan perdagangan: Ketika beralih pasangan perdagangan menggunakanexchange.SetCurrency("BTC_USDT")atauexchange.IO("currency", "BTC_USDT")fungsi, setelah beralih, Anda perlu menggunakanexchange.SetContractType()Sistem ini berfungsi untuk mengatur ulang kontrak untuk menentukan kontrak saat ini yang akan dioperasikan di bawah pasangan perdagangan baru.kontrak standar mata uangatauKontrak standar USDTMisalnya, jika pasangan perdagangan diatur untukBTC_USDT, gunakanexchange.SetContractType("swap")fungsi untuk mengatur kode kontrak untukswapPada titik ini, itu diatur untukBTCuntukStandar USDTkontrak abadi. Jika pasangan perdaganganBTC_USD, gunakanexchange.SetContractType("swap")fungsi untuk mengatur kode kontrak untukswapPada titik ini, itu diatur untukBTCItu adalahstandar mata uangkontrak abadi. Rincian dari pertukaran kontrak berjangka cryptocurrency yang didukung, dengan nama kontrak untuk setiap pertukaran sebagai berikut:

  • Futures_OKCoin (OKX) Setel untuk kontrak abadi:exchange.SetContractType("swap")Set untuk kontrak minggu ini:exchange.SetContractType("this_week")Setel untuk kontrak minggu depan:exchange.SetContractType("next_week")Setel kontrak bulanan:exchange.SetContractType("month")Setel untuk kontrak bulan depan:exchange.SetContractType("next_month")Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")

    OKX memiliki kontrak perdagangan pra-pasar: tanggal pengiriman kontrak adalah waktu tetap.HMSTR-USDT-250207. Atur pasangan perdagangan keHMSTR_USDTdi platform FMZ, dan kemudian menggunakanexchange.SetContractType("HMSTR-USDT-250207")untuk mengatur kontrak. Untuk fungsi yang mendukungsymbolparameter, seperti:exchange.GetTicker(), exchange.CreateOrder(), dll. Anda dapat menentukansymbolparameter sebagai:HMSTR_USDT.HMSTR-USDT-250207untuk memperoleh data pasar dari kontrak ini atau melakukan pesanan.

  • Futures_HuobiDM (Futures Huobi) Set untuk kontrak minggu ini:exchange.SetContractType("this_week")Aku tidak tahu. Setel untuk kontrak minggu depan:exchange.SetContractType("next_week")Aku tidak tahu. Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")Aku tidak tahu. Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")Aku tidak tahu. Setel untuk kontrak abadi:exchange.SetContractType("swap")Aku tidak tahu. Ini mendukung kontrak denganUSDTsebagai margin, ambilBTCkontrak sebagai contoh: penggunaanexchange.IO("currency", "BTC_USDT")untuk beralih ke kontrak yang menggunakanUSDTsebagai margin. Atau atur pasangan perdagangan saat ini keBTC_USDTlangsung saat mengkonfigurasi parameter perdagangan langsung dan menambahkan objek pertukaran.exchange.SetContractType()fungsi lagi untuk mengatur kontrak.

  • Futures_BitMEX (BitMEX) Setel untuk kontrak abadi:exchange.SetContractType("swap")Aku tidak tahu. Kontrak pengiriman bursa Futures_BitMEX adalah kontrak bulanan dengan kode kontrak berikut (dari Januari hingga Desember):

    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    

    Menetapkan kontrak pengiriman:exchange.SetContractType("December")Misalnya, ketika pasangan perdagangan diatur untukXBT_USDT, yangexchange.SetContractType("December")fungsi dipanggil untuk menetapkan kontrak untuk pengiriman Desember dalam USDT berdasarkan BTC (mengandung kode kontrak yang sebenarnya dariXBTUSDTZ23).

    Futures_BitMEX Ringkasan Informasi Kontrak

    Kode kontrak yang didefinisikan oleh Futures_BitMEX Pasangan perdagangan yang sesuai di FMZ Kode kontrak yang sesuai di FMZ Pernyataan
    DOGEUSD DOGE_USD swap Denied USD, XBT diselesaikan.
    DOGEUSDT DOGE_USDT swap USDT, USDT diselesaikan.
    XBTETH XBT_ETH swap ETH di atas, XBT di atas.
    XBTEUR XBT_EUR swap Dimensional EUR, XBT diselesaikan.
    USDTUSDC USDT_USDC swap USDC, XBT diselesaikan.
    ETHUSD_ETH ETH_USD_ETH swap Nominasikan dalam USD, ETH diselesaikan.
    XBTH24 XBT_USD Maret Tanggal kedaluwarsa: 24 Maret, kode bulan adalah: H; denominasi USD, XBT diselesaikan.
    ETHUSDZ23 ETH_USD Desember Tanggal kedaluwarsa: 23 Desember, kode bulan adalah: Z; denominasi USD, diselesaikan dalam XBT.
    XBTUSDTZ23 XBT_USDT Desember Tanggal kedaluwarsa: 23 Desember, kode bulan adalah: Z ; denominasi USDT, diselesaikan dalam USDT.
    ADAZ23 ADA_XBT Desember Tanggal kedaluwarsa: 23 Desember, kode bulan adalah: Z ; penagihan XBT, XBT diselesaikan.
    P_XBTETFX23 USDT_XXX P_XBTETFX23 Kesudahan: 11/23/23; dinyatakan sebagai persentase dan diselesaikan dalam USDT.
  • Futures_GateIO Set untuk kontrak minggu ini:exchange.SetContractType("this_week")Aku tidak tahu. Setel untuk kontrak minggu depan:exchange.SetContractType("next_week")Aku tidak tahu. Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")Aku tidak tahu. Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")Aku tidak tahu. Setel untuk kontrak abadi:exchange.SetContractType("swap")Aku tidak tahu. Ini mendukung kontrak denganUSDTsebagai margin, ambilBTCkontrak sebagai contoh: penggunaanexchange.IO("currency", "BTC_USDT")untuk beralih ke kontrak yang menggunakanUSDTsebagai margin. Atau atur pasangan perdagangan saat ini keBTC_USDTlangsung saat mengkonfigurasi parameter perdagangan langsung dan menambahkan objek pertukaran.exchange.SetContractType()fungsi lagi untuk mengatur kontrak.

  • Futures_Deribit Setel untuk kontrak abadi:exchange.SetContractType("swap")Aku tidak tahu. Ini mendukung DeribitUSDCkontrak. Kontrak pengiriman adalah:"this_week", "next_week", "month", "quarter", "next_quarter", "third_quarter", "fourth_quarter"Aku tidak tahu. CFD (future_combo):"this_week,swap", "next_week,swap", "next_quarter,this_week", "third_quarter,this_week", "month,next_week", ada banyak kombinasi. Untuk kontrak opsi, Anda harus memasukkan kode kontrak opsi tertentu yang ditentukan oleh bursa, lihat situs web Deribit untuk rincian.

  • Futures_KuCoin Misalnya, jika pasangan perdagangan diatur untukBTC_USDdan kode kontrak ditetapkan, itu adalah kontrak berbasis mata uang: Setel kontrak abadi:exchange.SetContractType("swap")Aku tidak tahu. Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")Aku tidak tahu. Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter").

    USDT sebagai kontrak margin: Misalnya, jika pasangan perdagangan diatur untukBTC_USDT, dan kemudian mengatur kode kontrak, itu adalah kontrak dengan USDT sebagai margin. Setel kontrak abadi:exchange.SetContractType("swap").

  • Futures_Binance Binance Futures Exchange default untuk kontrak abadi dari pasangan perdagangan saat ini, kode kontrak:swapAku tidak tahu. Setel untuk kontrak abadi:exchange.SetContractType("swap"), kontrak abadi Binance memiliki kontrak yang menggunakanUSDTsebagai margin.USDTstandar kontrak abadi dariBTCdapat digunakan sebagai kontrak margin, dan pasangan perdagangan diatur untukBTC_USDTBinance juga mendukung kontrak abadi yang menggunakan koin sebagai margin, misalnya,BTCBinance standar kontrak abadi, dengan pasangan perdagangan diatur untukBTC_USDAku tidak tahu. Diatur ke kontrak triwulanan:exchange.SetContractType("quarter"), kontrak pengiriman memiliki kontrak standar mata uang (yaitu, menggunakan mata uang sebagai margin), misalnya,BTCPada kontrak kuartalan, pasangan perdagangan diatur untuk:BTC_USDdan kemudian mengatur kontrakexchange.SetContractType("quarter"), itu diatur untukBTCkontrak kuartal dengan kontrak standar mata uang. Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter"), misalnya,BTCdari kontrak tahunan standar mata uang, pasangan perdagangan ditetapkan untuk:BTC_USD, dan kemudian mengatur kontrakexchange.SetContractType("next_quarter")Aku tidak tahu. Binance mendukung sebagianUSDTsebagai kontrak pengiriman margin, mengambilBTCsebagai contoh, mengatur pasangan perdagangan untukBTC_USDT, lalu atur kode kontrak.

    Dukungan untuk kontrak Binance Options: Format kode kontrak opsi didasarkan pada kode kontrak opsi yang didefinisikan oleh bursa:BTC-241227-15000-C, XRP-240112-0.5-C, BTC-241227-15000-PAmbil kode kontrak opsi Binance.BTC-241227-15000-Psebagai contoh: BTC adalah kode mata uang opsi, 241227 adalah tanggal pelaksanaan, 15000 adalah harga pelaksanaan, P mewakili opsi jual, dan C mewakili opsi pembelian. Untuk rincian jenis opsi, apakah itu opsi Eropa atau opsi Amerika, silakan lihat informasi yang relevan dari kontrak opsi bursa. Bursa dapat membatasi penjual opsi dan mengharuskan mereka untuk mengajukan kualifikasi secara terpisah.

  • Futures_Bibox Kode kontrak untuk kontrak abadi Bibox:swapAku tidak tahu. Setel untuk kontrak abadi:exchange.SetContractType("swap").

  • Futures_Bybit Standar adalah kontrak abadi untuk pasangan perdagangan saat ini, kode kontrak:swapAku tidak tahu. Kode kontrak minggu ini:this_weekAku tidak tahu. Kode kontrak minggu depan:next_weekAku tidak tahu. Kode kontrak minggu ketiga:third_weekAku tidak tahu. Kode kontrak bulanan:monthAku tidak tahu. Kode kontrak bulan depan:next_monthAku tidak tahu. Kode kontrak kuartal:quarterAku tidak tahu. Kode kontrak kuartal berikutnya:next_quarterAku tidak tahu. Kode kontrak kuartal ketiga:third_quarter.

  • Futures_Kraken Standar adalah kontrak abadi dari pasangan perdagangan saat ini, kode kontrak:swap. swap: kontrak abadi.month: kontrak bulan saat ini.quarter: kontrak triwulanan.next_quarter: kontrak kuartal berikutnya.swap_pf: Kontrak abadi dengan margin campuran.quarter_ff: Kontrak kuartal dengan margin campuran.month_ff: Kontrak bulan saat ini dengan margin campuran.next_quarter_ff: Margin campuran kontrak kuartal berikutnya.

  • Futures_Bitfinex Default adalah kontrak abadi untuk pasangan perdagangan saat ini, kode kontrak:swap.

  • Futures_Bitget Default adalah kontrak abadi untuk pasangan perdagangan saat ini, kode kontrak:swapAku tidak tahu. Pasangan perdagangan diatur untukBTC_USDuntuk kontrak standar mata uang, dan pasangan perdagangan diatur untukBTC_USDTuntuk kontrak yang diselesaikan olehUSDTKontrak demo dapat diatur dengan pasangan perdagangan sebagaiSBTC_USD, BTC_SUSDT.

  • Futures_dYdX Kode kontrak untuk kontrak abadi dYdX:swapAku tidak tahu. Setel untuk kontrak abadi:exchange.SetContractType("swap"), dYdX hanya memiliki kontrak standar USDT.

  • Futures_MEXC Kode kontrak untuk kontrak abadi MEXC:swapAku tidak tahu. Setel untuk kontrak abadi:exchange.SetContractType("swap"). Atur pasangan perdagangan keBTC_USD, yang merupakan kontrak standar mata uang, dan mengatur pasangan perdagangan untukBTC_USDT, yang merupakanUSDT- Kontrak diselesaikan.

  • Futures_Crypto Token di rekening dicrypto.comnilai tukar dapat dikonversi menjadi kredit dalam USD untuk digunakan sebagai margin untuk perdagangan kontrak. Set untuk kontrak abadi:exchange.SetContractType("swap"). Contoh memanggilexchange.SetContractType("swap")fungsi untuk mengatur kontrak abadi untuk BTC ketika pasangan perdagangan diatur untukBTC_USDAku tidak tahu. Peraturancrypto.comkontrak pengiriman pertukaran adalah kontrak bulanan dengan kode kontrak berikut (dari Januari hingga Desember):

    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    

    Tetapkan kontrak pengiriman:exchange.SetContractType("October")Misalnya, ketika pasangan perdagangan diatur untukBTC_USD, memanggil fungsiexchange.SetContractType("October")untuk menetapkan kontrak pengiriman Oktober untuk BTC. Kode kontrak yang sesuai saat ini adalah:BTCUSD-231027.

  • Futures_WOO Futures_WOO dukungan pertukaranUSDTberdasarkan kontrak dengan kode kontrak abadiswapMisalnya, ketika pasangan perdagangan diatur untukBTC_USDT, fungsiexchange.SetContractType("swap")disebut untuk mengatur kontrak saat ini untuk menjadi kontrak abadi berbasis USDT untuk BTC.

{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}

exchange.GetContractType

Peraturanexchange.GetContractType()Fungsi ini digunakan untuk mendapatkan kode kontrak untuk pengaturan saat ini dari objek pertukaran {@var/EXCHANGE exchange}.

Peraturanexchange.GetContractType()fungsi mengembalikan kode kontrak yang didefinisikan oleh platform FMZ, misalnya:this_week, swap, dll. string

exchange.GetContractType (()

function main () {
    Log(exchange.SetContractType("this_week")) 
    Log(exchange.GetContractType())
}
def main():
    Log(exchange.SetContractType("this_week"))
    Log(exchange.GetContractType())
void main() {
    Log(exchange.SetContractType("this_week"));
    Log(exchange.GetContractType());
}

{@fun/Futures/exchange.SetContractType exchange.SetContractType}

exchange.GetFundings

Peraturanexchange.GetFundings()Fungsi ini digunakan untuk mendapatkan data tingkat pendanaan untuk periode saat ini.

Peraturanexchange.GetFundings()fungsi mengembalikan array struktur {@struct/Funding Funding} ketika permintaan data berhasil, dan mengembalikan nilai nol ketika permintaan data gagal. {@struct/Funding Funding} array, nilai nol

pertukaran.GetFundings ((() exchange.GetFundings (simbol)

Parametersymboldigunakan untuk mengaturSimbol transaksiataurentang simbol transaksiuntuk ditanyakan.symbolJika parameter tidak dilewati, data tingkat pendanaan saat ini dari semua instrumen akan diminta secara default dalam kisaran dimensi pasangan perdagangan saat ini dan kode kontrak.

lambang palsu string

/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/

function main() {
    // LPT_USDT.swap 4-hour period
    var symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
    for (var symbol of symbols) {
        exchange.GetTicker(symbol)
    }
    
    var arr = []
    var arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
    for (p of arrParams) {
        if (p == "no param") {
            arr.push(exchange.GetFundings())
        } else {
            arr.push(exchange.GetFundings(p))
        }
    }
    
    var tbls = []
    var index = 0
    for (var fundings of arr) {
        var tbl = {
            "type": "table",
            "title": arrParams[index],
            "cols": ["Symbol", "Interval", "Time", "Rate"],
            "rows": [],
        }
    
        for (var f of fundings) {
            tbl["rows"].push([f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate * 100 + " %"])
        }
        tbls.push(tbl)
        index++
    }
    
    LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + JSON.stringify(tbls) + "`")
}
'''backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
'''
    
import json
    
def main():
    # LPT_USDT.swap 4-hour period
    symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
    for symbol in symbols:
        exchange.GetTicker(symbol)
    
    arr = []
    arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
    for p in arrParams:
        if p == "no param":
            arr.append(exchange.GetFundings())
        else:
            arr.append(exchange.GetFundings(p))
    
    tbls = []
    index = 0
    for fundings in arr:
        tbl = {
            "type": "table",
            "title": arrParams[index],
            "cols": ["Symbol", "Interval", "Time", "Rate"],
            "rows": [],
        }
    
        for f in fundings:
            tbl["rows"].append([f["Symbol"], f["Interval"] / 3600000, _D(f["Time"]), str(f["Rate"] * 100) + " %"])
    
        tbls.append(tbl)
        index += 1
    
    LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + json.dumps(tbls) + "`")
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/
    
void main() {
    // LPT_USDT.swap 4-hour period
    json arrSymbol = R"([])"_json;
    std::string symbols[] = {"SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"};
    for (const std::string& symbol : symbols) {
        exchange.GetTicker(symbol);
        arrSymbol.push_back(symbol);
    }
    
    std::vector<std::vector<Funding>> arr = {};
    std::string arrParams[] = {"no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"};
    for (const std::string& p : arrParams) {
        if (p == "no param") {
            arr.push_back(exchange.GetFundings());
        } else {
            arr.push_back(exchange.GetFundings(p));
        }
    }
    
    json tbls = R"([])"_json;
    int index = 0;
    for (int i = 0; i < arr.size(); i++) {
        auto fundings = arr[i];
    
        json tbl = R"({
            "type": "table", 
            "cols": ["Symbol", "Interval", "Time", "Rate"],
            "rows": []
        })"_json;
        tbl["title"] = arrParams[index];
    
        for (int j = 0; j < fundings.size(); j++) {
            auto f = fundings[j];
            // json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), string(f.Rate * 100) + " %"};
            json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate};
            tbl["rows"].push_back(arrJson);
        }
        tbls.push_back(tbl);
        index++;
    }
    
    LogStatus(_D(), "\n Requested market types:", arrSymbol.dump(), "\n`" + tbls.dump() + "`");
}

Gunakan obyek pertukaran berjangka untuk memanggilexchange.GetFundings()fungsi dalam sistem backtesting. Sebelum memanggil fungsi pasar, GetFundings hanya mengembalikan data Pendanaan dari pasangan perdagangan default saat ini. Setelah memanggil fungsi pasar, ia mengembalikan data Pendanaan dari semua varietas yang diminta. Anda dapat merujuk pada contoh uji berikut:

Untuk bursa berjangka yang tidak mendukung batch query dari data tingkat pendanaan, jikasymbolparameter ditentukan sebagai rentang kueri, misalnya:USDT.swapatausymbolparameter tidak diteruskan, antarmuka akan melaporkan kesalahan.GetFundings()fungsi menggunakan jenis ini obyek pertukaran berjangka, Anda harus menentukansymbolparameter sebagai jenis kontrak abadi tertentu untuk menanyakan data tingkat pendanaan saat ini dari jenis tersebut. Peraturanexchange.GetFundings()fungsi mendukung sistem perdagangan dan backtesting yang nyata. Bursa yang tidak mendukung akuisisi batch data tingkat pendanaan: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbolparameter dengan kode simbol khusus, misalnya:ETH_USDT.swap.

Bursa yang tidak mendukungexchange.GetFundings()Fungsi:

Nama Fungsi Pertukaran Spot yang tidak didukung Pertukaran Futures Tanpa Dukungan
GetFundings Futures_DigiFinex

{@struct/Pembiayaan Pendanaan}

Rekening Pengaturan Jaringan