[TOC]

Platform Dagangan Kuantitatif Pencipta telah melalui 9 tahun lelaran teknologi dan telah dibina semula berkali-kali, walaupun sebagai pengguna kami mungkin tidak menyedarinya. Dalam dua tahun yang lalu, platform ini telah membuat banyak pengoptimuman dan peningkatan dari segi pengalaman pengguna, termasuk peningkatan komprehensif antara muka UI, memperkayakan alatan dagangan kuantitatif yang biasa digunakan, dan menambah lebih banyak sokongan data ujian belakang.
Untuk menjadikan reka bentuk strategi lebih mudah, logik perdagangan lebih jelas dan lebih mudah untuk pemula untuk bermula, platform ini menaik taraf antara muka API yang digunakan oleh strategi. Gunakan versi terbaharu hos anda untuk mendayakan ciri baharu ini. Platform ini kekal serasi dengan panggilan ke antara muka lama setakat yang mungkin. Maklumat tentang ciri antara muka API baharu telah dikemas kini kepada dokumentasi API Platform Dagangan Kuantitatif Pencipta:
Jadi mari kita lihat dengan cepat antara muka yang telah dinaik taraf dan perubahan yang diperlukan untuk menjadikan strategi lama serasi dengan API semasa.
Untuk mereka bentuk strategi pelbagai kepelbagaian dan strategi pemantauan situasi pasaran penuh. Antara muka pasaran terkumpul ini penting untuk menjadikan strategi lebih mudah dibangunkan dan mengelakkan mencipta semula roda. Platform dagangan kuantitatif pencipta merangkumi API pertukaran tersebut.
Jika pertukaran tidak mempunyai antara muka ini (pertukaran individu), hubungiexchange.GetTickers()Mesej ralat akan dilaporkan: Tidak disokong.
Fungsi ini tidak mempunyai sebarang parameter dan akan mengembalikan data pasaran masa nyata semua jenis dalam antara muka pasaran agregat bursa. Ia boleh difahami secara ringkas sebagai:
exchange.GetTickers()Fungsinya ialahexchange.GetTicker()Versi penuh fungsi (perbezaan antara dua nama fungsi ialah tunggal dan jamak).
Kami menggunakan persekitaran simulasi tempat 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
}

baruexchange.CreateOrder()Fungsi adalah tumpuan peningkatan ini.exchange.CreateOrder()Fungsi yang paling penting bagi fungsi adalah untuk menentukan secara langsung jenis dan arah susunan dalam parameter fungsi. Dengan cara ini, ia tidak lagi bergantung pada tetapan sistem semasa seperti pasangan dagangan, kod kontrak, arahan perdagangan, dsb.
Kerumitan reka bentuk dikurangkan dengan banyak dalam senario pesanan dagangan berbilang produk dan senario serentak.exchange.CreateOrder()Empat parameter fungsi tersebut ialahsymbol、side、price、amount。
Uji 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)
}

Ini hanya mengambil masa 3 kaliexchange.CreateOrder()Panggilan fungsi meletakkan tiga pesanan hadapan pelbagai jenis dan arah.
baruexchange.GetHistoryOrders()Fungsi ini digunakan untuk mendapatkan pesanan transaksi sejarah produk tertentu Fungsi ini juga memerlukan sokongan antara muka pertukaran.
Untuk menanyakan pesanan sejarah, antara muka yang dilaksanakan oleh pelbagai pertukaran sangat berbeza:
Antara muka sedemikian dirangkumkan dengan tahap keserasian tertinggi, dan dalam penggunaan sebenar, perhatian harus diberikan sama ada ia memenuhi keperluan dan jangkaan strategi.
Penerangan fungsi terperinci tidak diulang di sini, anda boleh merujuk kepada manual sintaks dalam dokumentasi API:
https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders
Diuji menggunakan persekitaran perdagangan spot 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) + "`")
}

Versi lama fungsi pemerolehan data kedudukan ialah:exchange.GetPosition(). Untuk memadankan semantik penamaan fungsi dengan lebih baik, peningkatan ini menambah fungsi baharu untuk mendapatkan kedudukan:exchange.GetPositions(). Pada masa yang sama, ia masih serasi/dinaik taraf dengan fungsi GetPosition.
Ambil perhatian bahawa kedua-dua nama fungsi hanya berbeza mengikut s di belakang Kerana GetPositions lebih tepat dari segi semantik, anda disyorkan untuk menggunakan GetPositions pada masa hadapan.
exchange.GetPositions()Terdapat tiga bentuk panggilan fungsi:
exchange.GetPositions() Apabila tiada parameter diluluskan, arusPasangan Dagangan / Kod KontrakMinta data kedudukan semua jenis dalam dimensi semasa.
exchange.GetPositions(“ETH_USDT.swap”)
Apabila menentukan maklumat produk tertentu (format ETH_USDT.swap ditakrifkan oleh platform FMZ), minta data kedudukan produk tertentu.
Contoh:BTC_USD.swap、ETH_USDT.swap、ETH_USDT.quartertunggu.
BTC_USD.swap: Kontrak kekal berasaskan mata wang BTC.
ETH_USDT.swap: Kontrak kekal berasaskan U ETH.
ETH_USDC.swap: Kontrak kekal terpinggir USDC untuk ETH. (Selain USDT, anda juga boleh menentukan sebut harga yang berbeza, yang tidak akan diulang di sini)
ETH_USDT.suku: Kontrak penghantaran suku tahunan ETH berasaskan U.
BTC_USD.BTC-USD-201226-24250-C: Kontrak opsyen terpinggir syiling BTC.
exchange.GetPositions(“USDT.swap”) Minta data kedudukan untuk semua simbol mengikut julat dimensi yang ditentukan. USDT.swap: Julat kontrak kekal berasaskan U. USDT.futures: Julat kontrak penghantaran berasaskan U. USDC.swap: Julat kontrak kekal terpinggir USDC. (Selain USDT, anda juga boleh menentukan sebut harga yang berbeza, yang tidak akan diulang di sini) USDC.futures: Julat kontrak niaga hadapan terpinggir USDC. USD.swap: Julat kontrak kekal berasaskan mata wang. USD.futures: Julat kontrak niaga hadapan berasaskan mata wang. USDT.option: Julat kontrak opsyen berasaskan U. USD.option: Julat kontrak opsyen berasaskan mata wang.
Beberapa bahagian dimensi kontrak pertukaran khas: USDT.futures_combo:Gabungan CFD bursa Futures_Deribit. USD.futures_ff:Kontrak penghantaran margin bercampur bursa Futures_Craken. USD.swap_pf: Futures_Kontrak kekal margin hibrid di bursa Kraken.
Untuk dimensi yang tidak disokong oleh antara muka API pertukaran, ralat akan dilaporkan dan nilai nol akan dikembalikan semasa membuat panggilan.
Uji 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("BTC_USDT.swap")
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) + "`")
}

Apabila masukexchange.GetPositions()Parameter fungsi adalahETH_USDT.swapApabila anda menggunakan kontrak kekal berasaskan ETH U, anda boleh mendapatkan data kedudukan kontrak kekal berasaskan ETH U.
Apabila tidak diimportexchange.GetPositions()Apabila fungsi digunakan sebagai parameter, data kedudukan semua kontrak kekal U-margin yang disenaraikan di bursa boleh diperolehi (kerana pasangan dagangan semasa ialah BTC_USDT dan kontrak adalah swap, permintaan adalah berdasarkan pasangan dagangan semasa dan julat dimensi kontrak). Ini bersamaan dengan panggilanexchange.GetPositions("USDT.swap"), nyatakan skop permintaan.
Fungsi GetFundings yang baru ditambah boleh mendapatkan kadar pembiayaan kontrak kekal di bursa niaga hadapan. Fungsi ini mengambil satu simbol parameter. Fungsi ini mengembalikan pelbagai struktur Pembiayaan.
BTC_USDT.swap. Jika tiada parameter diluluskan atau julat dihantar ke dalam fungsi, mesej ralat akan dipaparkan mengatakan bahawa parameter simbol tidak disokong.Fungsi pasaranexchange.GetTicker()Peningkatan ini terutamanya menambah parameter simbol. Fungsi ini boleh digunakan untuk meminta data pasaran secara langsung mengikut maklumat produk yang ditentukan oleh parameter, tanpa mengira pasangan dagangan semasa dan kod kontrak. Memudahkan proses menulis kod. Pada masa yang sama, ia masih serasi dengan kaedah panggilan tanpa lulus parameter, dan serasi dengan strategi platform lama ke tahap yang terbaik.
parametersymbolUntuk pertukaran objekexchangeTerdapat pelbagai format untuk spot/futures:
AAA_BBBAAA mewakili baseCurrency, iaitu, mata wang urus niaga, dan BBB mewakili quoteCurrency, iaitu mata wang harga. Nama mata wang semuanya dalam huruf besar.
Contohnya: BTC_USDT pasangan dagangan spot.AAA_BBB.XXX, AAA mewakili baseCurrency, iaitu, mata wang urus niaga, BBB mewakili quoteCurrency, iaitu, mata wang harga dan XXX mewakili kod kontrak, seperti swap kontrak kekal. Nama mata wang semuanya dalam huruf besar dan kod kontrak dalam huruf kecil.
Contohnya: 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
}

Meminta sekumpulan data pasaran untuk simbol tertentu telah menjadi lebih mudah.
Sama seperti fungsi GetTickerexchange.GetDepth()Fungsi ini juga menambah parameter simbol kali ini. Adalah mungkin untuk menentukan jenis 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"))
}

Sama seperti fungsi GetTickerexchange.GetTrades()Fungsi ini juga menambah parameter simbol kali ini. Adalah mungkin untuk menentukan produk 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) + "`")
}

Peningkatan ini juga serasi denganexchange.Go()Apabila fungsi secara serentak memanggil antara muka API platform, parameter simbol dihantar masuk untuk menentukan maklumat produk.
Fungsi GetRecords telah dilaraskan dengan ketara kali ini, di samping menyokong parameter simbol untuk menentukan secara langsung maklumat jenis data K-line yang diminta. Parameter tempoh asal dikekalkan untuk menentukan tempoh garis K dan parameter had ditambahkan untuk menentukan panjang garisan K yang dijangkakan apabila meminta. Ia juga serasi dengan versi lama fungsi GetRecords yang hanya lulus dalam parameter tempoh.
exchange.GetRecords()Cara memanggil fungsi:
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相邻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)
}

Fungsi GetOrders juga menambahsymbolParameter, anda boleh menentukan produk tertentu dan menanyakan pesanan yang belum selesai (pesanan belum selesai) produk anda juga boleh menanyakan pesanan yang belum selesai (pesanan belum selesai) bagi semua produk dalam julat dimensi yang ditentukan.
exchange.GetOrders()Fungsi ini boleh dipanggil dengan cara berikut:
Uji menggunakan persekitaran simulasi niaga hadapan OKX:
function main() {
exchange.IO("simulate", true)
exchange.SetCurrency("BTC_USDT")
exchange.SetContractType("swap")
// 写入图表
var tbls = []
for (var symbol of ["null", "ETH_USDT.swap", "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) + "`")
}
ETH_USDT.swapParameter, minta pesanan yang belum diisi (pesanan belum selesai) kontrak kekal terpinggir USDT ETH."USDT.swap"Minta semua pesanan tertunggak (pesanan belum selesai) kontrak kekal terpinggir USDT.Ia masih serasi dengan penamaan fungsi pemerolehan kedudukan lama, dan juga menambah parameter simbol, yang boleh menentukan maklumat jenis data kedudukan yang diminta khusus. Penggunaan fungsi danexchange.GetPositions()Benar-benar konsisten.
untukexchange.IO("api", ...)Kaedah panggilan fungsi telah dinaik taraf untuk menyokong penghantaran terus alamat permintaan lengkap untuk semua objek pertukaran.
Sebagai contoh, jika anda ingin memanggil antara muka OKX:
GET https://www.okx.com /api/v5/account/max-withdrawal ccy: BTC
Sokong penulisan terus ke alamat asashttps://www.okx.com, tidak perlu menukar alamat asas sebelum memanggil fungsi IO.
Uji 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")
}

Peningkatan ini terutamanya memberi kesanexchange.GetOrder(id)Parameter FungsiidParameter id ditukar daripada id pesanan pertukaran asal kepada format rentetan yang mengandungi pelbagai dagangan. Semua ID pesanan yang dibungkus pada platform FMZ adalah dalam format ini.
Contohnya:
123456
Sebelum naik taraf ini, jika anda ingin memanggil fungsi GetOrder, ID pesanan yang dihantar ialah123456。BTC-USDT。
Sila ambil perhatian bahawa apa yang dinyatakan di sini ialah kod produk dagangan yang dinamakan oleh bursa, bukan pasangan dagangan yang ditakrifkan oleh platform FMZ.Selepas naik taraf ini,exchange.GetOrder(id)Format id parameter yang perlu dimasukkan oleh fungsi diselaraskan kepada:BTC-USDT,123456。
Biar saya jelaskan dahulu mengapa reka bentuk ini dilakukan: Oleh kerana fungsi CreateOrder telah dinaik taraf kali ini untuk menentukan secara langsung produk untuk membuat pesanan (produk yang dipesan mungkin berbeza daripada pasangan dagangan dan kod kontrak yang ditetapkan pada masa ini), jika ID pesanan yang dikembalikan tidak mengandungi maklumat produk. Kemudian ID pesanan ini tidak akan dapat digunakan. Kerana apabila anda menyemak pesanan, anda tidak tahu jenis (kontrak) pesanan itu. Kebanyakan pertukaran memerlukan menentukan parameter yang menerangkan kod produk semasa menyemak dan membatalkan pesanan.
Bagaimana untuk menampung kesan ini: Jika anda menggunakan fungsi exchange.IO untuk memanggil terus antara muka pesanan bursa untuk membuat pesanan, nilai pulangan biasanya mengandungi simbol asal bursa (kod produk) dan id pesanan asal. Kemudian menggabungkan kedua-duanya dengan koma Inggeris akan memberikan anda ID pesanan yang ditakrifkan oleh platform FMZ. Begitu juga, jika anda menggunakan antara muka pesanan yang dirangkumkan oleh platform FMZ untuk membuat pesanan, memandangkan permulaan ID pesanan ialah kod produk dagangan, jika anda perlu menggunakan ID pesanan asal, anda hanya perlu memadamkan kod produk dan koma.
Peningkatan ini adalah untukexchange.CancelOrder()Kesan fungsi danexchange.GetOrder()Fungsi adalah sama.
Peningkatan ini adalah untukexchange.Buy()Kesan fungsi danexchange.GetOrder()Fungsi adalah sama.exchange.Buy()ID pesanan yang dikembalikan oleh fungsi adalah struktur baharu, contohnya, ID dikembalikan apabila membuat pesanan niaga hadapan di bursa OKX:LTC-USDT-SWAP,1578360858053058560。
Peningkatan ini adalah untukexchange.Sell()Kesan fungsi danexchange.GetOrder()Fungsi adalah sama.exchange.Sell()ID pesanan yang dikembalikan oleh fungsi adalah struktur baharu, contohnya, ID dikembalikan apabila membuat pesanan niaga hadapan di bursa OKX:ETH-USDT-SWAP,1578360832820125696。
Hanya objek pertukaran niaga hadapan menyokong fungsi ini Untuk pertukaran fungsi.GetPosition() untuk mendapatkan data kedudukan, pertukaran nama baharu.GetPositions() ditambah dan gelagatnya adalah sama.
Takrif lama: fungsi pertukaran.GetPosition() Apabila dipanggil tanpa menyatakan sebarang parameter, ia memperoleh data kedudukan kontrak khusus yang ditetapkan oleh pasangan dagangan dan kod kontrak semasa.
Selepas pelarasan dan pengubahsuaian, definisi baharu ialah: fungsi pertukaran.GetPosition() Apabila dipanggil tanpa menyatakan sebarang parameter, ia memperoleh kedudukan semua jenis dalam julat dimensi yang ditentukan oleh pasangan dagangan dan kod kontrak yang ditetapkan.
Contohnya, pasangan dagangan semasa ialah BTC_USDT dan kod kontrak ialah swap. Pada masa ini hubungi:
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
Fungsi ini akan meminta data kedudukan kontrak kekal margin U bagi semua mata wang.
Takrif lama: fungsi exchange.GetOrders() Apabila dipanggil tanpa menyatakan sebarang parameter, ia mendapatkan semula semua pesanan tertunggak untuk pasangan dagangan semasa.
Selepas pelarasan dan pengubahsuaian, takrifan baharu ialah: fungsi pertukaran.GetOrders() Apabila dipanggil tanpa menyatakan sebarang parameter, ia memperoleh pesanan yang belum selesai bagi semua pasangan dagangan spot.
Takrif lama: fungsi pertukaran.GetOrders() Apabila dipanggil tanpa menyatakan sebarang parameter, ia mendapatkan semula semua pesanan kontrak khusus yang belum selesai yang ditetapkan oleh pasangan dagangan dan kod kontrak semasa.
Selepas pelarasan dan pengubahsuaian, definisi baharu ialah: fungsi pertukaran.GetOrders() Apabila dipanggil tanpa menyatakan sebarang parameter, ia memperoleh semua pesanan yang belum selesai dalam julat dimensi yang ditentukan oleh pasangan dagangan dan kod kontrak yang ditetapkan pada masa ini.
Contohnya, pasangan dagangan semasa ialah BTC_USD dan kod kontrak ialah suku. Pada masa ini hubungi:
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
Fungsi ini akan meminta data pesanan tertunggak bagi semua kontrak niaga hadapan terpinggir syiling.
Kemas kini ini menambah medan Simbol pada struktur Ticker, yang merekodkan maklumat pasaran produk struktur Ticker semasa. Format medan ini ialahexchange.GetTicker()Format parameter simbol fungsi adalah sama.
Kemas kini ini menambah medan Simbol pada struktur Pesanan Format medan ini adalah sama denganexchange.GetTicker()Format parameter simbol fungsi adalah sama. Kemas kini ini juga mengubah suai medan Id struktur Pesanan untuk merekodkan maklumat produk dan maklumat pesanan asal dalam format ID pesanan baharu. merujuk kepadaexchange.GetOrder()Perihalan ID pesanan dalam fungsi tidak akan diulang di sini.
Kemas kini ini menambah medan Simbol pada struktur Kedudukan Format medan ini adalah sama denganexchange.GetTicker()Format parameter simbol fungsi adalah sama.
Fungsi GetFundings mengembalikan pelbagai struktur Pembiayaan.
{
"Info": {...}, // 交易所资金费率接口原始应答数据
"Symbol": "BTC_USDT.swap", // FMZ平台定义的品种名称
"Interval": 28800000, // 8小时间隔,单位毫秒
"Time": 1729728000000, // 本期资金费率收取时间
"Rate": 0.0001, // 资金费率,即 0.01 %
}
Untuk memenuhi keperluan pengguna, peningkatan ini mula-mula akan serasi dengan pasaran sebenar, dan sistem ujian belakang akan disesuaikan dalam masa seminggu Jika kod strategi individu terjejas, sila ikut arahan dalam artikel ini untuk membuat perubahan dan penyesuaian
Menurut peningkatan antara muka API strategi platform, antara muka API dalam sistem ujian belakang platform telah dikemas kini secara serentak di samping itu, sistem ujian belakang telah menambah sokongan untuk:
Fungsi ahli untuk objek pertukaran niaga hadapanGetAccountKembaliAccountStruktur telah diperluaskan dengan bidang.
Fungsi ahli SetMarginLevel bagi objek pertukaran niaga hadapan telah dinaik taraf untuk 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)
}
CtValCcyCatatkan unit nilai kontrak Unit nilai kontrak mungkin: BTC, USD, ETH, dsb.CtValCatatkan nilai satu kontrak produk dagangan ini di bursa, dalam unitCtValCcyMata wang rekod medan. Contohnya:CtValialah 0.01,CtValCcy“BTC” bermaksud satu kontrak bernilai 0.01 BTC.