Sumber dimuat naik... memuat...

Penerbit menerangkan peningkatan API platform dagangan kuantitatif: meningkatkan pengalaman reka bentuk strategi

Penulis:Pencipta Kuantiti - Impian Kecil, Dicipta: 2024-06-28 09:08:29, Dikemas kini: 2024-07-24 12:00:40

[TOC]

img

Pengantar

Pencipta platform dagangan kuantitatif telah melakukan beberapa pengubahsuaian selepas 9 tahun teknologi, walaupun kita sebagai pengguna mungkin tidak menyedarinya. Dalam tempoh dua tahun yang lalu, platform telah melakukan banyak pengoptimuman dan peningkatan dalam pengalaman pengguna, termasuk peningkatan antarmuka UI secara menyeluruh, alat dagangan kuantitatif yang banyak digunakan, dan menambah lebih banyak sokongan data retargeting.

Untuk membuat reka bentuk dasar lebih mudah, logik dagangan lebih jelas, dan lebih mudah digunakan oleh pemula, platform ini telah menaik taraf antara muka API yang digunakan oleh dasar. Penggunaan pelayan versi terkini membolehkan ciri-ciri baru ini. Platform ini masih serasi sepenuhnya dengan panggilan antara muka lama. Maklumat mengenai ciri-ciri baru antara muka API telah dikemas kini secara serentak ke dalam dokumentasi API platform dagangan pencipta:

Buku tatabahasa:https://www.fmz.com/syntax-guidePanduan pengguna:https://www.fmz.com/user-guide

Oleh itu, melalui artikel ini, mari kita lihat dengan mata kepala apa yang telah ditingkatkan dan apa yang perlu diubah untuk membetulkan API semasa menggunakan dasar lama.

1. Antara muka API baru

新增exchange.GetTickers函数

Ini sangat penting untuk merancang strategi pelbagai jenis, strategi pemantauan pasaran keseluruhan. Antara muka pasaran agregat ini adalah penting untuk menjadikan strategi lebih mudah untuk dibangunkan dan mengelakkan roda berulang. Pencipta platform perdagangan kuantitatif membungkus API seperti bursa.

Jika bursa tidak mempunyai antara muka seperti ini (bursa individu), panggilexchange.GetTickers()Apabila anda membuat laporan yang salah: Tidak menyokong.

Fungsi ini tidak mempunyai sebarang parameter dan akan mengembalikan data pasaran masa nyata dari semua jenis yang dikumpulkan dalam antara muka pasaran untuk bursa.

exchange.GetTickers()Fungsi ini ialahexchange.GetTicker()Versi permintaan pelbagai fungsi (lihat dengan teliti, perbezaan antara kedua-dua nama fungsi adalah hanya bilangan tunggal).

Kami menggunakan OKX untuk menguji persekitaran simulasi tempat tinggal:

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

新增exchange.CreateOrder函数

Tambahexchange.CreateOrder()Fungsi boleh dikatakan sebagai tumpuan dalam peningkatan ini.exchange.CreateOrder()Fungsi terbesar adalah untuk menentukan jenis, arah, dan lain-lain yang akan dipesan secara langsung dalam parameter fungsi tersebut. Dengan itu, tidak lagi bergantung kepada seting pasangan, kod kontrak, arah, dan lain-lain yang ditetapkan oleh sistem semasa.

Dalam kes-kes yang berlainan, kesimpulannya dikurangkan dengan ketara.exchange.CreateOrder()Dan empat parameter fungsi ialahsymbolsidepriceamount

Ujian persekitaran menggunakan OKX Futures Simulator:

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

Dan ia hanya digunakan sebanyak tiga kali.exchange.CreateOrder()Fungsi panggilan membawa kepada tiga jenis pesanan niaga hadapan yang berbeza, dengan arah yang berbeza.

新增exchange.GetHistoryOrders函数

Tambahexchange.GetHistoryOrders()Fungsi ini digunakan untuk mendapatkan pesanan dagangan bersejarah jenis tertentu, yang juga memerlukan sokongan antara muka bursa.

Untuk mendapatkan maklumat mengenai pesanan sejarah, antara muka yang dilaksanakan oleh setiap bursa sangat berbeza:

  • Sesetengah menyokong query split page, ada yang tidak.
  • Sesetengah transaksi tidak dapat mencari semua tempoh tetingkap pertanyaan, iaitu pesanan yang melebihi N hari;
  • Kebanyakan bursa menyokong pertanyaan masa tertentu, ada yang tidak.

Untuk membungkus antara muka jenis ini dengan tahap keserasian maksimum, penggunaan sebenar memerlukan perhatian sama ada ia memenuhi keperluan, jangkaan dan strategi.

Untuk maklumat lanjut mengenai fungsi, lihat manual tatabahasa dalam dokumen API:

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

Percubaan dalam persekitaran real-time Binance:

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

    // 写入图表
    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

新增exchange.GetPositions函数

Versi lama fungsi mendapatkan data simpanan adalahexchange.GetPosition()◎ Peningkatan ini menambah fungsi pemegang saham baru untuk lebih sesuai dengan makna nama fungsi:exchange.GetPositions().. dan masih serasi / menaik taraf fungsi GetPosition..

exchange.GetPositions()Fungsi mempunyai tiga bentuk panggilan:

  • exchange.GetPositions (dalam bahasa Inggeris) Apabila tiada parameter yang dihantar, data simpanan diminta mengikut tetapan kod pasangan/kontrak semasa.
  • exchange.GetPositions ((ETH_USDT.swap) Apabila menentukan maklumat jenis tertentu (format seperti ETH_USDT.swap yang ditakrifkan oleh platform FMZ), data simpanan jenis tertentu diminta.
  • exchange.GetPositions (dalam bahasa Inggeris) Minta semua data simpanan untuk dimensi semasa yang boleh diakses oleh antara muka simpanan bursa.

Ujian persekitaran menggunakan OKX Futures Simulator:

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 masukexchange.GetPositions()Parameter fungsi ialahETH_USDT.swapPada masa yang sama, anda boleh mendapatkan data pegangan kontrak kekal U-bit ETH.

img

Apabila masukexchange.GetPositions()Parameter fungsi adalah rentetan kosong.""Jika anda ingin mendapatkan data simpanan semua kontrak di U.S.A., anda boleh mendapatkan data simpanan semua kontrak di U.S.A.

2. Peningkatan antara muka API

升级exchange.GetTicker函数

Fungsi operasiexchange.GetTicker()Peningkatan ini terutamanya menambah parameter simbol. Ia membolehkan fungsi ini melepaskan pasangan dagangan semasa, maklumat jenis kontrak secara langsung mengikut kod parameter yang ditetapkan, meminta data pasaran. Proses penulisan kod disederhanakan.

ParametersymbolUntuk objek bursaexchangeIni adalah wang tunai / niaga hadapan dengan format yang berbeza:

  • Objek Bursa Tangan Formatnya ialah:AAA_BBB, AAA menunjukkan sebagai mata wang dasar atau mata wang dagangan, BBB menunjukkan sebagai quote Currency atau mata wang harga. Nama mata wang semuanya ditulis dengan huruf besar. Contohnya: BTC_USDT pasangan dagangan segera.
  • Objek bursa niaga hadapan Formatnya ialah:AAA_BBB.XXX, AAA menunjukkan mata wang dasar yang merupakan mata wang dagangan, BBB menunjukkan mata wang kutip yang merupakan mata wang harga, dan XXX menunjukkan kod kontrak, seperti pertukaran kontrak kekal. Nama mata wang adalah huruf besar, kod kontrak adalah huruf kecil. Contohnya: BTC_USDT.swap, kontrak kekal U-bit BTC.

Percubaan dalam persekitaran sebenar dengan mata wang tinjauan masa hadapan:

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 jenis tertentu menjadi lebih mudah.

升级exchange.GetDepth函数

Sama seperti fungsi GetTickerexchange.GetDepth()Fungsi ini juga menambah parameter simbol. Ia membolehkan untuk menentukan jenis secara langsung apabila meminta data kedalaman.

Percubaan dalam persekitaran sebenar dengan mata wang tinjauan masa hadapan:

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

升级exchange.GetTrades函数

Sama seperti fungsi GetTickerexchange.GetTrades()Fungsi ini juga menambah parameter simbol. Ia membolehkan untuk menentukan jenis secara langsung semasa meminta data transaksi pasaran.

Percubaan dalam persekitaran sebenar dengan mata wang tinjauan masa hadapan:

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 disokong olehexchange.Go()Fungsi serentak memanggil API platform untuk menyampaikan maklumat jenis yang ditetapkan oleh parameter simbol.

升级exchange.GetRecords函数

Fungsi GetRecords membuat perubahan besar pada kali ini, selain menyokong maklumat jenis data baris K yang diminta secara langsung oleh parameter simbol. Ia mengekalkan parameter period asal untuk menentukan kitaran K baris, dan menambah parameter limit untuk menentukan panjang baris K yang dikehendaki untuk tempoh permintaan. Ia juga serasi dengan fungsi GetRecords versi lama yang hanya menghantar panggilan parameter kitaran period.

exchange.GetRecords()Cara memanggil fungsi:

  • exchange.GetRecords (dalam bahasa Inggeris) Tanpa menetapkan sebarang parameter, apabila meminta data K-line dari varieti pasangan transaksi/kode kontrak semasa, kitaran K-line adalah kitaran K-line lalai yang ditetapkan pada waktu antara muka atau masa nyata.
  • exchange.GetRecords ((60 * 15) Apabila hanya parameter kitaran K baris ditentukan, data K baris yang sesuai dengan jenis pasangan transaksi / kod kontrak semasa diminta.
  • exchange.GetRecords ((( BTC_USDT.swap) Apabila hanya maklumat jenis tertentu, data baris K untuk jenis tertentu diminta, dan kitaran baris K adalah kitaran baris K lalai yang ditetapkan pada antara muka penyesuaian strategi atau piringan sebenar.
  • exchange.GetRecords (( BTC_USDT.swap, 60 * 60)) Menentukan maklumat jenis, menentukan kitaran garis K tertentu untuk meminta data garis K.
  • exchange.GetRecords (( BTC_USDT.swap, 60, 1000) Menentukan maklumat jenis, menentukan kitaran K-line tertentu, merujuk kepada panjang K-line yang diharapkan untuk mendapatkan data K-line permintaan secara berkala. Perhatikan apabila parameter limit melebihi panjang maksimum permintaan pertukaran sekali, permintaan pembahagian halaman akan dihasilkan (iaitu, banyak panggilan ke antara muka K pertukaran).

Percubaan dalam persekitaran sebenar dengan mata wang tinjauan masa hadapan:

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相邻Bar时间差值:", r1[1].Time - r1[0].Time, "毫秒, Bar长度:", r1.length)
    Log("r2相邻Bar时间差值:", r2[1].Time - r2[0].Time, "毫秒, Bar长度:", r2.length)
    Log("r3相邻Bar时间差值:", r3[1].Time - r3[0].Time, "毫秒, Bar长度:", r3.length)
    Log("r4相邻Bar时间差值:", r4[1].Time - r4[0].Time, "毫秒, Bar长度:", r4.length)
    Log("r5相邻Bar时间差值:", r5[1].Time - r5[0].Time, "毫秒, Bar长度:", r5.length)
}

img

升级exchange.GetOrders函数

Fungsi GetOrders juga ditambahsymbolParameter, boleh menentukan secara langsung jenis permintaan yang tidak selesai diletakkan pada masa ini; juga menyokong untuk menanyakan semua jenis permintaan; serasi dengan cara panggilan asal.

exchange.GetOrders()Fungsi boleh dipanggil dengan cara berikut:

  • exchange.GetOrders (dalam bahasa Inggeris) Cari semua pesanan yang belum selesai dengan kod pasangan / kontrak semasa.
  • exchange.GetOrders ((( BTC_USDT.swap) Periksa semua pesanan yang belum diselesaikan untuk kontrak USDT kekal BTC.
  • Exchange.GetOrders (dalam bahasa Inggeris) Mencari semua pesanan yang belum diselesaikan di bursa dengan pembahagian dimensi semasa (mengikut pembahagian dimensi antara muka API bursa).

Ujian persekitaran menggunakan OKX Futures Simulator:

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

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

    // 写入图表
    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 menyampaikan parameter, secara lalai meminta pasangan dagangan BTC_USDT semasa, semua senarai tertutup yang belum selesai untuk kontrak kekal swap.

img

Menentukan parameterETH_USDT.swapApabila parameter, meminta semua kontrak kekal yang belum selesai untuk pasangan dagangan ETH_USDT.

img

Menghantar String Kosong""Apabila anda meminta semua kontrak USDT yang belum selesai.

升级exchange.GetPosition函数

Masih serasi dengan nama fungsi pengambilan simpanan lama, juga menambah parameter simbol untuk menentukan maklumat jenis data simpanan yang diminta secara khusus. aspek penggunaan fungsi danexchange.GetPositions()Saya tidak tahu apa yang berlaku.

升级exchange.IO函数

Untukexchange.IO("api", ...)Cara panggilan fungsi, yang ditingkatkan untuk semua objek bursa yang menyokong fungsi alamat permintaan yang lengkap untuk dihantar terus. Contohnya, jika anda ingin memanggil OKX:

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

Sokongan untuk menulis alamat pangkalan secara langsunghttps://www.okx.com, tidak perlu menukar alamat pangkalan terlebih dahulu untuk memanggil fungsi IO.

Ujian persekitaran menggunakan OKX Futures Simulator:

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

影响exchange.GetOrder函数

Peningkatan ini memberi kesan yang besar.exchange.GetOrder(id)Parameter fungsiidParameter id telah ditukar dari id pesanan bursa asal kepada format baris yang mengandungi jenis urus niaga. Semua pesanan yang dibungkus pada platform FMZ adalah dalam format ini.

Contohnya:

  • ID pesanan asal bursa yang ditakrifkan dalam pesanan bursa ialah:123456Sebelum peningkatan ini, jika anda mahu memanggil fungsi GetOrder, ID pesanan yang dihantar adalah123456
  • Kod produk yang dinamakan oleh bursa yang ditakrifkan dalam pesanan bursa:BTC-USDTSaya tidak tahu. Perhatikan bahawa ini adalah kod jenis dagangan yang dinamakan oleh bursa dan bukan pasangan dagangan yang ditakrifkan oleh platform FMZ.

Saya tidak tahu apa yang akan berlaku.exchange.GetOrder(id)Format parameter id yang perlu diteruskan oleh fungsi disesuaikan dengan:BTC-USDT,123456

Saya ingin menerangkan kepada anda mengapa saya merancangnya seperti ini: Oleh kerana ini adalah peningkatan kepada fungsi CreateOrder untuk menentukan jenis order secara langsung (jenis order dan pasangan urus niaga yang ditetapkan pada masa ini, kod kontrak mungkin berbeza), jika ID pesanan yang dikembalikan tidak mengandungi maklumat jenis; maka ID pesanan ini tidak dapat digunakan; kerana tidak diketahui jenis order (kontrak) pada masa pesanan tertentu; kebanyakan invois dan pengeluaran pertukaran memerlukan parameter yang menerangkan kod jenis.

Bagaimana untuk menyamakan kesan ini: Jika pesanan bawah menggunakan fungsi exchange.IO yang memanggil antara muka pesanan bawah pertukaran secara langsung untuk membuat pesanan, nilai yang dikembalikan biasanya mempunyai simbol asal bursa (kode jenis) dan id pesanan asal. Kemudian menggabungkan kedua-duanya dengan koma dalam bahasa Inggeris adalah sesuai dengan ID pesanan yang ditakrifkan oleh platform FMZ. Begitu juga jika menggunakan antara muka pesanan bawah yang dibungkus oleh platform FMZ, kerana bahagian awal ID pesanan adalah kod jenis urus niaga, hanya perlu menghapus kod jenis dan koma jika anda memerlukan ID asal pesanan.

影响exchange.CancelOrder函数

Peningkatan ini adalah untukexchange.CancelOrder()Kesan fungsi danexchange.GetOrder()Fungsi yang sama.

影响exchange.Buy函数

Peningkatan ini adalah untukexchange.Buy()Kesan fungsi danexchange.GetOrder()Fungsi yang sama.exchange.Buy()Id pesanan yang dikembalikan oleh fungsi adalah struktur baru, seperti Id yang dikembalikan semasa pesanan di bursa hadapan OKX:LTC-USDT-SWAP,1578360858053058560

影响exchange.Sell函数

Peningkatan ini adalah untukexchange.Sell()Kesan fungsi danexchange.GetOrder()Fungsi yang sama.exchange.Sell()Id pesanan yang dikembalikan oleh fungsi adalah struktur baru, seperti Id yang dikembalikan semasa pesanan di bursa hadapan OKX:ETH-USDT-SWAP,1578360832820125696

4. Penyesuaian struktur

Struktur Ticker

Kemas kini ini menambah medan Simbol kepada struktur Ticker, yang merakam maklumat mengenai jenis struktur Ticker semasa. Format bidang ini adalahexchange.GetTicker()Format parameter simbol fungsi adalah sama.

Struktur Order

Pembaharuan ini menambah bidang Simbol kepada struktur Order, yang formatnya sama denganexchange.GetTicker()Format parameter simbol fungsi adalah sama. Kemas kini ini juga mengubah medan Id dalam struktur Order untuk merakam maklumat jenis, maklumat pesanan asal, dan rujukan dalam format baru Order Id.exchange.GetOrder()Perincian ID pesanan dalam fungsi, tidak lagi dibincangkan di sini.

Struktur kedudukan

Pembaharuan ini menambah bidang Simbol kepada struktur Posisi, yang formatnya sama denganexchange.GetTicker()Format parameter simbol fungsi adalah sama.

5. Sistem pengukuran semula

Peningkatan ini untuk memenuhi keperluan pengguna, diska sebenar akan disesuaikan terlebih dahulu, dan sistem retargeting akan selesai disesuaikan dalam seminggu. Jika kod dasar individu terjejas, sila buat perubahan yang disesuaikan seperti yang dinyatakan dalam artikel ini.

Pembaharuan tambahan

1, Akuntansi Struktur Bidang Baru Ekuiti, UPnL

Fungsi ahli untuk objek bursa niaga hadapanGetAccountKembaliAccountStruktur telah diperluaskan.

  • Ekuiti Jumlah hak milik mata wang simpanan yang kini tidak disokong oleh bursa niaga hadapan yang sangat tertentu, kebanyakan menyokong bidang ini. Ia digunakan untuk mengira keuntungan dan kerugian mata wang simpanan akaun masa nyata.

  • UPnL Keuntungan yang tidak diwujudkan dari semua kedudukan yang dipegang oleh mata wang aset yang dijamin pada masa ini, kecuali pertukaran niaga hadapan yang sangat tertentu tidak menyokong, sebahagian besarnya menyokong bidang ini.

2, Sokongan parameter simbol untuk meningkatkan fungsi SetMarginLevel

Fungsi SetMarginLevel untuk objek bursa niaga hadapan telah dinaik taraf dengan menambah simbol parameter.

Contoh ujian:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    // 当前交易对为ETH_USDT,合约代码为swap,设置杠杆值为10
    exchange.SetMarginLevel(10)
    
    // 直接指定交易对BTC_USDT,合约代码swap,设置杠杆值20
    exchange.SetMarginLevel("BTC_USDT.swap", 20)
}

Lebih lanjut

Wa-emmnn_Saya bertanya apa yang berlaku dengan bot baru saya, ID pulangan juga membawa nama transaksi, saya telah mengkaji untuk masa yang lama, dan maklumat log selepas membuat pesanan tidak muncul sekarang, kerana pembaruan hos?

Zhang Baole/upload/asset/2ffc0f961149326b78aed.png Adakah masalah ini disebabkan oleh kemas kini antarmuka ini?

eknemuse 希望exchange.Buy函数能增加开止损单的功能。。

NanSegGaris depan

Wa-emmnn_Baiklah.

Pencipta Kuantiti - Impian KecilBaiklah, cubalah di sini. Terima kasih kerana bertanya. Kami akan mengatasinya secepat mungkin.

Wa-emmnn_Ya, extMsg1, extMsg2 tidak muncul.

Pencipta Kuantiti - Impian KecilHalo, ID pesanan ini adalah perubahan yang tidak dapat dielakkan, kerana menaik taraf pesanan dengan menentukan jenis secara langsung, ID pesanan mesti mengandungi maklumat jenis, jika tidak, tidak dapat menentukan jenis pesanan ini, dan tidak dapat dipanggil pada masa penarikan ((kerana kebanyakan bursa memerlukan penarikan jenis dan penarikan ID) pada masa penarikan). Maklumat yang anda katakan selepas pesanan tidak muncul, iaitu: exchange.Buy ((price, amount, extMsg1, extMsg2) apabila dipanggil, extMsg1, extMsg2 tidak muncul di log?

Pencipta Kuantiti - Impian KecilSelamat datang, anda menghantar tetapan pertukaran, pasangan dagangan, kod kontrak semasa.

Pencipta KuantitiSila hantar butiran kod ujian dan konfigurasi ke borang kerja, jurutera akan membalas anda pada masa pertama.

Pencipta Kuantiti - Impian KecilPerbezaan yang besar dan tahap sokongan yang berbeza di antara bursa adalah sama ada ia boleh dilakukan atau tidak.

Pencipta Kuantiti - Impian KecilTerima kasih atas sokongan anda, jika ada masalah, anda boleh menghantar borang kerja atau mesej.