Sumber dimuat naik... memuat...

Penjelasan terperinci FMZ Quant API Peningkatan: Meningkatkan Pengalaman Reka Bentuk Strategi

Penulis:FMZ~Lydia, Dicipta: 2024-07-05 09:44:08, Dikemas kini: 2024-07-25 15:15:03

[TOC]

img

Penjelasan terperinci FMZ Quant API Peningkatan: Meningkatkan Pengalaman Reka Bentuk Strategi

Pengantar

Selepas 9 tahun pengulangan teknikal, Platform Perdagangan Kuantiti FMZ telah dibina semula berkali-kali, walaupun sebagai pengguna kita mungkin tidak menyedarinya. Dalam dua tahun yang lalu, platform ini telah membuat banyak pengoptimuman dan peningkatan dari segi pengalaman pengguna, termasuk peningkatan yang komprehensif antara muka UI, pengayaan alat perdagangan kuantitatif yang biasa digunakan, dan penambahan lebih banyak sokongan data backtesting.

Untuk membuat reka bentuk strategi lebih mudah, logik perdagangan lebih jelas, dan lebih mudah untuk pemula untuk memulakan, platform ini telah menaik taraf antara muka API yang digunakan oleh strategi. Docker yang menggunakan versi terbaru dapat mengaktifkan ciri-ciri baru ini. Platform ini masih serasi dengan panggilan antara muka lama sejauh mungkin. Maklumat mengenai ciri-ciri baru antara muka API telah dikemas kini ke dokumentasi API Platform Dagangan Kuantum FMZ:

Panduan sintaks:https://www.fmz.com/syntax-guidePanduan Pengguna:https://www.fmz.com/user-guide

Jadi mari kita lihat dengan cepat antarmuka yang telah dinaik taraf dan apa perubahan yang diperlukan untuk menggunakan strategi lama untuk menjadikannya serasi dengan API semasa.

1. Antara muka API baru

Tambah pertukaran.GetTickers fungsi

Untuk merancang strategi pelbagai produk dan strategi pemantauan pasaran yang lengkap, antara muka pasaran agregat adalah penting. Untuk menjadikan strategi lebih mudah untuk membangunkan dan mengelakkan mencipta semula peristiwa, Platform Dagangan Kuantum FMZ merangkumi API pertukaran jenis ini.

Jika pertukaran tidak mempunyai antara muka ini (pertukaran individu), apabila memanggilexchange.GetTickers(), mesej ralat dipaparkan: Tidak disokong.

Fungsi ini tidak mempunyai sebarang parameter dan ia akan mengembalikan data pasaran masa nyata semua jenis dalam antara muka pasaran agregat bursa.

exchange.GetTickers()fungsi adalah versi permintaan penuh ciriexchange.GetTicker()fungsi (lihat dengan teliti, perbezaan antara kedua-dua nama fungsi ini hanya tunggal dan jamak).

Kami menggunakan persekitaran simulasi titik OKX untuk ujian:

function main() {
    exchange.IO("simulate", true)

    var tickers = exchange.GetTickers()
    if (!tickers) {
        throw "tickers error"
    }

    var tbl = {type: "table", title: "test tickers", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var i in tickers) {
        var ticker = tickers[i]
        tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return tickers.length
}

img

Tambah pertukaran.CreateOrder fungsi

Yang baru ditambahkanexchange.CreateOrder()fungsi adalah tumpuan peningkatan ini.exchange.CreateOrder()adalah untuk menentukan jenis dan arah pesanan dalam parameter fungsi secara langsung. Dengan cara ini, ia tidak lagi bergantung kepada pasangan dagangan semasa, kod kontrak, arah dagangan dan tetapan lain sistem.

Dalam senario penempatan pesanan perdagangan pelbagai spesies dan senario serentak, kerumitan reka bentuk sangat dikurangkan.exchange.CreateOrder()fungsi adalahsymbol, side, price, amount.

Ujian menggunakan persekitaran simulasi niaga hadapan OKX:

function main() {
    exchange.IO("simulate", true)

    var id1 = exchange.CreateOrder("ETH_USDT.swap", "buy", 3300, 1)
    var id2 = exchange.CreateOrder("BTC_USDC.swap", "closebuy", 70000, 1)
    var id3 = exchange.CreateOrder("LTC_USDT.swap", "sell", 110, 1)

    Log("id1:", id1, ", id2:", id2, ", id3:", id3)
}

img

Dengan cara ini, hanya tigaexchange.CreateOrder()panggilan fungsi digunakan untuk meletakkan tiga pesanan niaga hadapan pelbagai jenis dan arah.

Tambah pertukaran.GetHistoryOrders fungsi

Yang baru ditambahkanexchange.GetHistoryOrders()Fungsi ini juga memerlukan sokongan antara muka pertukaran.

Untuk menanyakan pesanan sejarah, antara muka yang dilaksanakan oleh pelbagai pertukaran sangat berbeza:

  • Sesetengah menyokong pertanyaan bertaburan, sementara yang lain tidak;
  • Sesetengah bursa mempunyai tempoh tetingkap pertanyaan, iaitu pesanan yang lebih tua daripada N hari tidak boleh ditanyakan;
  • Kebanyakan pertukaran menyokong pertanyaan pada masa yang ditentukan, tetapi ada yang tidak; Antara muka sedemikian disusun dengan tahap keserasian yang tertinggi, dan dalam penggunaan sebenar, perhatian harus diberikan kepada sama ada mereka memenuhi keperluan dan jangkaan strategi.

Penerangan fungsi terperinci tidak diulangi di sini, anda boleh merujuk manual sintaks dalam dokumentasi API:

https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders

Diuji menggunakan persekitaran dagangan Binance:

function main() {
    var orders = exchange.GetHistoryOrders("ETH_USDT")

    // Write to chart
    var tbl = {type: "table", title: "test GetHistoryOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
    for (var order of orders) {
        tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
    }
    
    LogStatus("orders.length:", orders.length, "\n", "`" + JSON.stringify(tbl) +  "`")
}

img

Tambah pertukaran.GetPositions fungsi

Versi lama fungsi pemerolehan data kedudukan adalahexchange.GetPosition(). Kemas kini ini menambah fungsi pemerolehan kedudukan baru untuk lebih sesuai dengan semantik penamaan fungsi:exchange.GetPositions(). Pada masa yang sama, ia masih serasi / dinaik taraf dengan fungsi GetPosition.

Peraturanexchange.GetPositions()Fungsi mempunyai tiga bentuk panggilan:

  • pertukaran.GetPositions ((() Apabila tiada parameter yang dihantar, data kedudukan diminta berdasarkan tetapan pasangan dagangan/kod kontrak semasa.
  • pertukaran.GetPositions ((ETH_USDT.swap) Apabila menentukan maklumat produk tertentu (format ETH_USDT.swap ditakrifkan oleh platform FMZ), minta data kedudukan produk tertentu.
  • pertukaran.GetPositions("") Minta antara muka kedudukan pertukaran untuk mendapatkan semua dimensi semasa data kedudukan. (Divided mengikut dimensi produk antara muka pertukaran) Ujian menggunakan persekitaran simulasi niaga hadapan OKX:
function main() {
    exchange.IO("simulate", true)

    exchange.SetCurrency("BTC_USDT")
    exchange.SetContractType("swap")

    var p1 = exchange.GetPositions()
    var p2 = exchange.GetPositions("")

    var tbls = []
    for (var positions of [p1, p2]) {
        var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
        for (var p of positions) {
            tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
        } 
        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

Apabila parameter yang diteruskan kepadaexchange.GetPositions()fungsi ialahETH_USDT.swap, data kedudukan kontrak kekal berasaskan U ETH boleh diperoleh.

img

Apabila parameter yang diteruskan kepadaexchange.GetPositions()fungsi adalah rentetan kosong , data kedudukan semua kontrak berasaskan U boleh diperoleh.

2. Peningkatan Antara muka API

Update pertukaran.GetTicker fungsi

Peningkatan utama fungsi pasaranexchange.GetTicker()Ini membolehkan fungsi untuk meminta data pasaran secara langsung mengikut maklumat produk yang ditentukan oleh parameter tanpa pasangan dagangan semasa dan kod kontrak. Ia memudahkan proses penulisan kod. Pada masa yang sama, ia masih serasi dengan kaedah panggilan tanpa lulus parameter, dan serasi dengan strategi platform lama sejauh mungkin.

Parametersymbolmempunyai format yang berbeza untuk spot/futures untuk objek pertukaranexchange:

  • Objek pertukaran spot Formatnya ialah:AAA_BBB, AAA mewakili baseCurrency, iaitu mata wang dagangan, dan BBB mewakili quoteCurrency, iaitu mata wang penetapan harga. Sebagai contoh: pasangan dagangan spot BTC_USDT.
  • Objek pertukaran niaga hadapan Formatnya ialah:AAA_BBB.XXX, AAA mewakili baseCurrency, iaitu mata wang dagangan, BBB mewakili quoteCurrency, iaitu mata wang penetapan harga, dan XXX mewakili kod kontrak, seperti pertukaran kontrak kekal. Sebagai contoh: BTC_USDT.swap, kontrak kekal berasaskan U BTC. Diuji menggunakan persekitaran langsung Binance Futures:
var symbols = ["BTC_USDT.swap", "BTC_USDT.quarter", "BTC_USD.swap", "BTC_USD.next_quarter", "ETH_USDT.swap"]

function main() {
    exchange.SetCurrency("ETH_USD")
    exchange.SetContractType("swap")

    var arr = []
    var t = exchange.GetTicker()
    arr.push(t)

    for (var symbol of symbols) {
        var ticker = exchange.GetTicker(symbol)
        arr.push(ticker)
    }

    var tbl = {type: "table", title: "test GetTicker", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var ticker of arr) {
        tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return arr
}

img

Meminta kumpulan data pasaran untuk simbol tertentu telah menjadi lebih mudah.

Kemas kini pertukaran.GetDepth fungsi

Sama seperti fungsi GetTicker,exchange.GetDepth()fungsi juga menambah parameter simbol. ini membolehkan kita untuk menentukan simbol secara langsung apabila meminta data kedalaman.

Diuji menggunakan persekitaran langsung Binance Futures:

function main() {
    exchange.SetCurrency("LTC_USD")
    exchange.SetContractType("swap")

    Log(exchange.GetDepth())
    Log(exchange.GetDepth("ETH_USDT.quarter"))
    Log(exchange.GetDepth("BTC_USD.swap"))
}

img

Mengemas kini fungsi pertukaran.GetTrades

Sama seperti fungsi GetTicker,exchange.GetTrades()fungsi juga menambah parameter simbol. ini membolehkan kita untuk menentukan simbol secara langsung apabila meminta data transaksi pasaran.

Diuji menggunakan persekitaran langsung Binance Futures:

function main() {
    var arr = []
    var arrR = []
    var symbols = ["LTC_USDT.swap", "ETH_USDT.quarter", "BTC_USD.swap"]    

    for (var symbol of symbols) {
        var r = exchange.Go("GetTrades", symbol)
        arrR.push(r)
    }

    for (var r of arrR) {
        arr.push(r.wait())
    }
    
    var tbls = []
    for (var i = 0; i < arr.length; i++) {
        var trades = arr[i]
        var symbol = symbols[i]

        var tbl = {type: "table", title: symbol, cols: ["Time", "Amount", "Price", "Type", "Id"], rows: []}
        for (var trade of trades) {
            tbl.rows.push([trade.Time, trade.Amount, trade.Price, trade.Type, trade.Id])
        }

        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

Peningkatan ini juga serasi dengan parameter simbol yang ditentukan olehexchange.Go()fungsi apabila memanggil antara muka API platform secara serentak.

Kemas kini pertukaran.GetRecords fungsi

Fungsi GetRecords telah disesuaikan dengan baik kali ini. Selain menyokong parameter simbol untuk menentukan maklumat jenis data K-line yang diminta secara langsung, parameter tempoh asal dikekalkan untuk menentukan tempoh K-line, dan parameter had ditambah untuk menentukan panjang K-line yang diharapkan ketika meminta. Pada masa yang sama, ia juga serasi dengan versi lama fungsi GetRecords yang hanya lulus dalam parameter tempoh.

Kaedah panggilanexchange.GetRecords()Fungsi adalah:

  • pertukaran.GetRecords() Jika tiada parameter ditentukan, data K-line produk yang sepadan dengan pasangan dagangan semasa/kod kontrak diminta.
  • pertukaran.GetRecords ((60 * 15) Apabila hanya parameter tempoh K-line ditentukan, data K-line produk yang sepadan dengan kod pasangan dagangan/kontrak semasa diminta.
  • pertukaran.GetRecords ((BTC_USDT.swap) Apabila hanya maklumat produk ditentukan, data K-line produk yang ditentukan diminta. Tempoh K-line adalah tempoh K-line lalai yang ditetapkan dalam antara muka backtesting strategi atau dalam perdagangan langsung.
  • pertukaran.GetRecords ((BTC_USDT.swap, 60 * 60) Tentukan maklumat produk dan tempoh garis K khusus untuk meminta data garis K.
  • exchange.GetRecords ((BTC_USDT.swap, 60, 1000) Tentukan maklumat produk, tentukan tempoh garis K tertentu, dan tentukan panjang garis K yang dijangkakan untuk meminta data garis K. Perhatikan bahawa apabila parameter had melebihi panjang maksimum permintaan tunggal dari pertukaran, permintaan pengejar akan dihasilkan (iaitu, beberapa panggilan ke antara muka K-line pertukaran).

Diuji menggunakan persekitaran langsung Binance Futures:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    var r1 = exchange.GetRecords()
    var r2 = exchange.GetRecords(60 * 60)
    var r3 = exchange.GetRecords("BTC_USDT.swap")
    var r4 = exchange.GetRecords("BTC_USDT.swap", 60)
    var r5 = exchange.GetRecords("LTC_USDT.swap", 60, 3000)

    Log("r1 time difference between adjacent bars:", r1[1].Time - r1[0].Time, "Milliseconds, Bar length:", r1.length)
    Log("r2 time difference between adjacent bars:", r2[1].Time - r2[0].Time, "Milliseconds, Bar length:", r2.length)
    Log("r3 time difference between adjacent bars:", r3[1].Time - r3[0].Time, "Milliseconds, Bar length:", r3.length)
    Log("r4 time difference between adjacent bars:", r4[1].Time - r4[0].Time, "Milliseconds, Bar length:", r4.length)
    Log("r5 time difference between adjacent bars:", r5[1].Time - r5[0].Time, "Milliseconds, Bar length:", r5.length)
}

img

Kemas kini fungsi Exchange.GetOrders

Fungsi GetOrders juga menambahsymbolparameter, yang boleh menentukan jenis pesanan yang tidak selesai semasa (pesanan menunggu) yang akan ditanyakan secara langsung; ia juga menyokong menanyakan semua pesanan menunggu (tidak kira jenis); dan serasi dengan kaedah panggilan asal.

Peraturanexchange.GetOrders()fungsi boleh dipanggil dengan cara berikut:

  • pertukaran.GetOrders() Mencari semua pesanan yang belum selesai untuk kod pasangan dagangan/kontrak semasa.
  • pertukaran.GetOrders ((BTC_USDT.swap) Bertanya-tanya semua pesanan yang belum selesai untuk kontrak kekal dengan margin USDT pada BTC.
  • pertukaran.GetOrders("") Mencari semua pesanan yang belum selesai dalam dimensi semasa pertukaran (dibahagi mengikut dimensi antara muka API pertukaran).

Ujian menggunakan persekitaran simulasi niaga hadapan OKX:

function main() {
    exchange.IO("simulate", true)

    exchange.SetCurrency("BTC_USDT")
    exchange.SetContractType("swap")

    // Write to chart
    var tbls = []
    for (var symbol of ["null", "ETH_USDT.swap", ""]) {
        var tbl = {type: "table", title: symbol, cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}

        var orders = null
        if (symbol == "null") {
            orders = exchange.GetOrders()
        } else {
            orders = exchange.GetOrders(symbol)
        }

        for (var order of orders) {
            tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        }

        tbls.push(tbl)
    }
    
    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

Apabila tidak ada parameter yang diteruskan, permintaan lalai adalah untuk semua pesanan yang belum selesai menunggu pasangan dagangan BTC_USDT semasa dan kontrak swap kekal.

img

ApabilaETH_USDT.swapApabila parameter ditentukan, semua pesanan yang belum selesai dari kontrak kekal pasangan dagangan ETH_USDT diminta.

img

Apabila rentetan kosong""adalah diluluskan, semua pesanan yang belum selesai dari semua kontrak margin USDT diminta.

Kemas kini fungsi pertukaran.GetPosition

Ia masih serasi dengan penamaan fungsi pemerolehan kedudukan lama, dan juga menambah parameter simbol, yang boleh menentukan maklumat jenis data kedudukan tertentu yang diminta. Penggunaan fungsi ini adalah sama sepertiexchange.GetPositions().

Kemas kiniexchange.IOfungsi

Untukexchange.IO("api", ...)panggilan fungsi, semua objek pertukaran telah dinaik taraf untuk menyokong penyampaian langsung alamat permintaan lengkap. Sebagai contoh, jika anda ingin memanggil antara muka OKX:

// Dapatkanhttps://www.okx.com/api/v5/akaun/max-withdrawal ccy: BTC

Menyokong penulisan langsung ke alamat pangkalanhttps://www.okx.comtanpa perlu menukar alamat asas terlebih dahulu dan kemudian memanggil fungsi IO.

Ujian menggunakan persekitaran simulasi niaga hadapan OKX:

function main() {
    exchange.IO("simulate", true)

    return exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
}

img

3. Kesan Antara muka API

Mempengaruhi pertukaran.GetOrder fungsi

Peningkatan ini terutamanya mempengaruhi parameteriddaripadaexchange.GetOrder(id)parameter id diubah dari id pesanan pertukaran asal kepada format rentetan yang mengandungi produk perdagangan. Semua ID pesanan yang dikemas dalam platform FMZ adalah dalam format ini.

Contohnya:

  • ID pesanan asal pertukaran yang ditakrifkan dalam pesanan pertukaran adalah:123456Sebelum peningkatan ini, jika anda ingin memanggil fungsi GetOrder, perintah Id yang dihantar adalah123456.
  • Kod produk yang dinamakan oleh bursa yang ditakrifkan dalam pesanan pertukaran:BTC-USDT. Perhatikan bahawa ini merujuk kepada kod produk dagangan yang dinamakan oleh bursa, bukan pasangan dagangan yang ditakrifkan oleh platform FMZ.

Selepas peningkatan ini, format id parameter yang perlu diteruskan ke dalamexchange.GetOrder(id)Fungsi disesuaikan dengan:BTC-USDT,123456.

Pertama, izinkan saya menerangkan mengapa reka bentuk ini dibuat: Kerana fungsi CreateOrder telah dinaik taraf untuk menentukan jenis pesanan secara langsung (jenis pesanan yang diletakkan mungkin berbeza dengan pasangan dagangan dan kod kontrak yang ditetapkan pada masa ini). Jika ID pesanan yang dikembalikan tidak mengandungi maklumat jenis, maka ID pesanan ini tidak dapat digunakan. Kerana ketika memeriksa pesanan, kita tidak tahu jenis (kontrak) pesanan itu. Kebanyakan pertukaran memerlukan spesifikasi parameter yang menerangkan kod jenis ketika memeriksa dan membatalkan pesanan.

Bagaimana untuk menjadi serasi dengan kesan ini: Jika anda menggunakanexchange.IOfungsi untuk memanggil antara muka pesanan pertukaran secara langsung untuk meletakkan pesanan, nilai yang dikembalikan biasanya mengandungi simbol asal pertukaran (kod produk) dan id pesanan asal. Kemudian menggabungkan kedua-duanya dengan koma bahasa Inggeris akan menjadi ID pesanan yang mematuhi definisi platform FMZ. Begitu juga, jika anda menggunakan antarmuka pesanan yang dikapsulkan platform FMZ untuk membuat pesanan, kerana permulaan ID pesanan adalah kod produk perdagangan, jika anda perlu menggunakan ID pesanan asal, hanya hapus kod produk dan koma.

Mempengaruhi fungsi pertukaran.BatalOrder

Kesan peningkatan ini padaexchange.CancelOrder()fungsi adalah sama denganexchange.GetOrder() function.

Mempengaruhi fungsi pertukaran.Beli

Kesan peningkatan ini padaexchange.Buy()fungsi adalah sama denganexchange.GetOrder()fungsi. ID pesanan yang dikembalikan olehexchange.Buy()fungsi adalah struktur baru, contohnya, ID yang dikembalikan apabila meletakkan pesanan niaga hadapan di bursa OKX adalah:LTC-USDT-SWAP,1578360858053058560.

Mempengaruhi fungsi pertukaran.

Kesan peningkatan ini padaexchange.Sell()fungsi adalah sama denganexchange.GetOrder()fungsi. ID pesanan yang dikembalikan olehexchange.Sell()fungsi adalah struktur baru, contohnya, ID yang dikembalikan apabila meletakkan pesanan niaga hadapan di bursa OKX adalah:ETH-USDT-SWAP,1578360832820125696.

4. Penyesuaian Struktur

Struktur Ticker

Kemas kini ini menambah medan Simbol ke struktur Ticker, yang merakam maklumat pasaran struktur Ticker semasa. Format medan ini adalah sama dengan format parameter simbolexchange.GetTicker() function.

Struktur Perintah

Kemas kini ini menambah medan Simbol untuk struktur Perintah, dan format medan ini adalah sama dengan format parameter simbolexchange.GetTicker()fungsi. Kemas kini ini juga mengubah suai medan ID struktur pesanan, merakam maklumat produk dan maklumat pesanan asal dalam format ID pesanan baru.exchange.GetOrder()fungsi, yang tidak akan diulangi di sini.

Struktur Kedudukan

Kemas kini ini menambah medan Simbol ke struktur Kedudukan. Format medan ini adalah sama dengan format parameter simbolexchange.GetTicker() function.

5. Sistem Ujian Kembali

Untuk memenuhi keperluan pengguna, peningkatan ini pertama akan serasi dengan perdagangan langsung, dan sistem backtesting akan disesuaikan dalam masa seminggu.

Pembaruan Tambahan

1. Bidang baru Ekuiti dan UPnL dalam struktur Akaun

Tanah-tanahAccountstruktur dikembalikan olehGetAccountfungsi ahli objek pertukaran niaga hadapan telah diperluaskan.

  • Ekuiti Jumlah ekuiti mata wang aset margin semasa. Kecuali beberapa bursa niaga hadapan yang tidak menyokong medan ini, kebanyakan bursa menyokong medan ini. Ia digunakan terutamanya untuk mengira keuntungan dan kerugian margin akaun masa nyata.

  • UPnL Keuntungan dan kerugian yang belum direalisasikan dari semua kedudukan yang dipegang dalam mata wang aset margin semasa.

2. fungsi SetMarginLevel dinaik taraf untuk menyokong parameter simbol

Fungsi ahli SetMarginLevel objek pertukaran niaga hadapan telah dinaik taraf dan simbol parameter telah ditambah.

Contoh ujian:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    // The current trading pair is ETH_USDT, the contract code is swap, and the leverage value is set to 10
    exchange.SetMarginLevel(10)
    
    // Directly specify the trading pair BTC_USDT, contract code swap, and set the leverage value to 20
    exchange.SetMarginLevel("BTC_USDT.swap", 20)
}

Lebih lanjut