[TOC]

Platform Perdagangan Kuantitatif Inventor telah mengalami 9 tahun iterasi teknologi dan telah direkonstruksi berkali-kali, meskipun sebagai pengguna kita mungkin tidak menyadarinya. Dalam dua tahun terakhir, platform ini telah melakukan banyak pengoptimalan dan peningkatan dalam hal pengalaman pengguna, termasuk peningkatan menyeluruh pada antarmuka UI, memperkaya alat perdagangan kuantitatif yang umum digunakan, dan menambahkan lebih banyak dukungan data pengujian ulang.
Untuk membuat desain strategi lebih mudah, logika perdagangan lebih jelas, dan lebih mudah bagi pemula untuk memulai, platform meningkatkan antarmuka API yang digunakan oleh strategi. Gunakan versi terbaru host Anda untuk mengaktifkan fitur-fitur baru ini. Platform tetap kompatibel dengan panggilan ke antarmuka lama semaksimal mungkin. Informasi tentang fitur antarmuka API baru telah diperbarui ke dokumentasi API Platform Perdagangan Kuantitatif Inventor:
Jadi mari kita lihat sekilas antarmuka mana yang telah ditingkatkan dan perubahan apa yang diperlukan untuk membuat strategi lama kompatibel dengan API saat ini.
Untuk merancang strategi multi-variasi dan strategi pemantauan situasi pasar secara menyeluruh. Antarmuka pasar agregat ini penting untuk mempermudah pengembangan strategi dan menghindari penemuan kembali roda. Platform perdagangan kuantitatif milik penemu merangkum API bursa tersebut.
Jika bursa tidak memiliki antarmuka ini (bursa individual), hubungiexchange.GetTickers()Pesan kesalahan akan dilaporkan: Tidak didukung.
Fungsi ini tidak memiliki parameter apa pun dan akan mengembalikan data pasar waktu nyata dari semua jenis dalam antarmuka pasar agregat bursa. Secara sederhana, hal ini dapat dipahami sebagai:
exchange.GetTickers()Fungsinya adalahexchange.GetTicker()Versi lengkap fungsi (perbedaan antara dua nama fungsi adalah bentuk tunggal dan jamak).
Kami menggunakan lingkungan simulasi spot OKX untuk pengujian:
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 menjadi fokus peningkatan ini.exchange.CreateOrder()Fungsi yang paling penting dari fungsi tersebut adalah untuk secara langsung menentukan jenis dan arah perintah dalam parameter fungsi. Dengan cara ini, tidak lagi bergantung pada pengaturan sistem saat ini seperti pasangan perdagangan, kode kontrak, arah perdagangan, dll.
Kompleksitas desain sangat berkurang dalam skenario pesanan perdagangan multiproduk dan skenario bersamaan.exchange.CreateOrder()Empat parameter fungsi tersebut adalahsymbol、side、price、amount。
Uji coba menggunakan lingkungan simulasi berjangka 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 butuh 3 kaliexchange.CreateOrder()Pemanggilan fungsi menempatkan tiga order berjangka dengan jenis dan arah yang berbeda.
Baruexchange.GetHistoryOrders()Fungsi ini digunakan untuk memperoleh pesanan transaksi historis dari suatu produk tertentu. Fungsi ini juga memerlukan dukungan antarmuka pertukaran.
Untuk menanyakan pesanan historis, antarmuka yang diterapkan oleh berbagai bursa sangat bervariasi:
Antarmuka semacam itu dienkapsulasi dengan tingkat kompatibilitas tertinggi, dan dalam penggunaan aktual, perhatian harus diberikan pada apakah antarmuka tersebut memenuhi persyaratan dan harapan strategi.
Deskripsi fungsi terperinci tidak diulang di sini, Anda dapat merujuk ke manual sintaksis dalam dokumentasi API:
https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders
Diuji menggunakan lingkungan 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 akuisisi data posisi adalah:exchange.GetPosition(). Untuk lebih mencocokkan semantik penamaan fungsi, peningkatan ini menambahkan fungsi baru untuk memperoleh posisi:exchange.GetPositions(). Pada saat yang sama, masih kompatibel/ditingkatkan dengan fungsi GetPosition.
Perhatikan bahwa kedua nama fungsi tersebut hanya berbeda pada akhiran s. Karena GetPositions lebih tepat secara semantik, sebaiknya Anda menggunakan GetPositions di masa mendatang.
exchange.GetPositions()Ada tiga bentuk pemanggilan fungsi:
exchange.GetPositions() Ketika tidak ada parameter yang dilewatkan, arusPasangan Perdagangan / Kode KontrakMeminta data posisi semua varietas dalam dimensi saat ini.
exchange.GetPositions(“ETH_USDT.swap”)
Saat menentukan informasi produk tertentu (format ETH_USDT.swap ditentukan oleh platform FMZ), mintalah data posisi produk tertentu.
Contoh:BTC_USD.swap、ETH_USDT.swap、ETH_USDT.quarterTunggu.
BTC_USD.swap: Kontrak berjangka abadi berbasis mata uang BTC.
ETH_USDT.swap: Kontrak abadi ETH berbasis U.
ETH_USDC.swap: Kontrak perpetual dengan margin USDC untuk ETH. (Selain USDT, Anda juga dapat menentukan quoteCurrency yang berbeda, yang tidak akan diulang di sini)
ETH_USDT.quarter: Kontrak pengiriman triwulanan ETH berbasis U.
BTC_USD.BTC-USD-201226-24250-C: Kontrak opsi margin koin BTC.
exchange.GetPositions(“USDT.swap”) Meminta data posisi untuk semua simbol sesuai dengan rentang dimensi yang ditentukan. USDT.swap: Rentang kontrak abadi berbasis U. USDT.futures: Kisaran kontrak pengiriman berdenominasi U. USDC.swap: Kisaran kontrak perpetual dengan margin USDC. (Selain USDT, Anda juga dapat menentukan quoteCurrency yang berbeda, yang tidak akan diulang di sini) USDC.futures: Kisaran kontrak berjangka bermargin USDC. USD.swap: Rentang kontrak abadi berbasis mata uang. USD.futures: Kisaran kontrak berjangka berbasis mata uang. USDT.option: Rentang kontrak opsi berbasis U. USD.option: Rentang kontrak opsi berbasis mata uang.
Beberapa divisi dimensi kontrak pertukaran khusus: USDT.futures_combo:Kombinasi CFD bursa Futures_Deribit. USD.futures_ff:Kontrak pengiriman margin campuran bursa Futures_Craken. USD.swap_pf: Futures_Kontrak margin-hibrida berjangka di bursa Kraken.
Untuk dimensi yang tidak didukung oleh antarmuka API pertukaran, kesalahan akan dilaporkan dan nilai null akan dikembalikan saat pemanggilan.
Uji coba menggunakan lingkungan simulasi berjangka 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) + "`")
}

Saat masukexchange.GetPositions()Parameter fungsinya adalahETH_USDT.swapSaat Anda menggunakan kontrak perpetual berbasis ETH U, Anda bisa mendapatkan data posisi kontrak perpetual berbasis ETH U.
Saat tidak diimporexchange.GetPositions()Ketika fungsi ini digunakan sebagai parameter, data posisi semua kontrak perpetual U-margin yang terdaftar di bursa dapat diperoleh (karena pasangan perdagangan saat ini adalah BTC_USDT dan kontraknya adalah swap, permintaan didasarkan pada pasangan perdagangan saat ini dan rentang dimensi kontrak). Ini setara dengan memanggilexchange.GetPositions("USDT.swap"), tentukan cakupan permintaan.
Fungsi GetFundings yang baru ditambahkan dapat memperoleh tingkat pendanaan kontrak abadi di bursa berjangka. Fungsi tersebut mengambil satu simbol parameter. Fungsi ini mengembalikan serangkaian struktur Pendanaan.
BTC_USDT.swap. Jika tidak ada parameter yang dilewatkan atau suatu rentang dilewatkan ke dalam fungsi, pesan kesalahan akan ditampilkan yang menyatakan bahwa parameter simbol tidak didukung.Fungsi pasarexchange.GetTicker()Peningkatan ini terutama menambahkan parameter simbol. Fungsi ini dapat digunakan untuk meminta data pasar secara langsung sesuai dengan informasi produk yang ditentukan oleh parameter, terlepas dari pasangan perdagangan dan kode kontrak saat ini. Menyederhanakan proses penulisan kode. Pada saat yang sama, ia masih kompatibel dengan metode pemanggilan tanpa meneruskan parameter, dan kompatibel dengan strategi platform lama secara maksimal.
parametersymbolUntuk objek pertukaranexchangeAda beberapa format untuk spot/future:
AAA_BBBAAA melambangkan baseCurrency, yakni mata uang transaksi, dan BBB melambangkan quoteCurrency, yakni mata uang penetapan harga. Nama mata uang semuanya ditulis dengan huruf kapital.
Misalnya: pasangan perdagangan spot BTC_USDT.AAA_BBB.XXX, AAA melambangkan baseCurrency, yakni mata uang transaksi, BBB melambangkan quoteCurrency, yakni mata uang penetapan harga, dan XXX melambangkan kode kontrak, seperti swap kontrak abadi. Nama mata uang semuanya ditulis dengan huruf besar, sedangkan kode kontrak ditulis dengan huruf kecil.
Misalnya: BTC_USDT.swap, kontrak abadi BTC berbasis U.Diuji menggunakan lingkungan 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 sejumlah data pasar untuk simbol tertentu menjadi jauh lebih mudah.
Sama seperti fungsi GetTickerexchange.GetDepth()Fungsi ini juga menambahkan parameter simbol kali ini. Dimungkinkan untuk menentukan jenis secara langsung saat meminta data kedalaman.
Diuji menggunakan lingkungan 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 menambahkan parameter simbol kali ini. Dimungkinkan untuk langsung menentukan produk saat meminta data transaksi pasar.
Diuji menggunakan lingkungan 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 kompatibel denganexchange.Go()Ketika fungsi tersebut memanggil antarmuka API platform secara bersamaan, parameter simbol diteruskan untuk menentukan informasi produk.
Fungsi GetRecords telah disesuaikan secara signifikan kali ini, selain mendukung parameter simbol untuk secara langsung menentukan informasi jenis data K-line yang diminta. Parameter periode asli dipertahankan untuk menentukan periode K-line, dan parameter batas ditambahkan untuk menentukan panjang K-line yang diharapkan saat meminta. Ini juga kompatibel dengan fungsi GetRecords versi lama yang hanya memasukkan parameter periode.
exchange.GetRecords()Cara memanggil fungsi:
Diuji menggunakan lingkungan 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 menambahkansymbolParameter, Anda dapat menentukan produk tertentu dan menanyakan pesanan yang belum selesai (pesanan tertunda) dari produk tersebut; Anda juga dapat menanyakan pesanan yang belum selesai (pesanan tertunda) dari semua produk dalam rentang dimensi yang ditentukan.
exchange.GetOrders()Fungsi ini dapat dipanggil dengan cara berikut:
Uji coba menggunakan lingkungan simulasi berjangka 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, meminta pesanan yang belum terpenuhi (pending order) dari kontrak perpetual bermargin USDT ETH."USDT.swap"Minta semua pesanan yang belum diselesaikan (pesanan tertunda) untuk kontrak perpetual bermargin USDT.Masih kompatibel dengan penamaan fungsi akuisisi posisi lama, dan juga menambahkan parameter simbol, yang dapat menentukan informasi jenis data posisi spesifik yang diminta. Penggunaan fungsi danexchange.GetPositions()Benar-benar konsisten.
untukexchange.IO("api", ...)Metode pemanggilan fungsi telah ditingkatkan untuk mendukung penyampaian langsung alamat permintaan lengkap untuk semua objek pertukaran.
Misalnya, jika Anda ingin memanggil antarmuka OKX:
GET https://www.okx.com /api/v5/account/max-withdrawal ccy: BTC
Mendukung penulisan langsung ke alamat dasarhttps://www.okx.com, tidak perlu mengganti alamat dasar sebelum memanggil fungsi IO.
Uji coba menggunakan lingkungan simulasi berjangka 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 terutama mempengaruhiexchange.GetOrder(id)Parameter FungsiidParameter id diubah dari id order pertukaran asli ke format string yang berisi jenis perdagangan. Semua ID pesanan yang dikemas pada platform FMZ berada dalam format ini.
Misalnya:
123456
Sebelum peningkatan ini, jika Anda ingin memanggil fungsi GetOrder, ID pesanan yang diteruskan adalah123456。BTC-USDT。
Harap dicatat bahwa yang disebutkan di sini adalah kode produk perdagangan yang ditetapkan oleh bursa, bukan pasangan perdagangan yang ditentukan oleh platform FMZ.Setelah peningkatan ini,exchange.GetOrder(id)Format id parameter yang perlu diteruskan oleh fungsi disesuaikan menjadi:BTC-USDT,123456。
Pertama-tama, izinkan saya menjelaskan mengapa desain ini dibuat: Karena fungsi CreateOrder telah ditingkatkan kali ini untuk secara langsung menentukan produk yang akan dipesan (produk yang dipesan mungkin berbeda dari pasangan perdagangan dan kode kontrak yang ditetapkan saat ini), jika ID pesanan yang dikembalikan tidak berisi informasi produk. Maka ID pesanan ini tidak dapat digunakan. Karena ketika Anda memeriksa pesanan, Anda tidak tahu jenis (kontrak) pesanan tersebut. Sebagian besar bursa mengharuskan penentuan parameter yang menjelaskan kode produk saat memeriksa dan membatalkan pesanan.
Cara mengakomodasi efek ini: Jika Anda menggunakan fungsi exchange.IO untuk langsung memanggil antarmuka pesanan bursa untuk melakukan pemesanan, nilai yang dikembalikan umumnya berisi simbol asli bursa (kode produk) dan ID pesanan asli. Kemudian menggabungkan keduanya dengan koma bahasa Inggris akan memberi Anda ID pesanan yang ditentukan oleh platform FMZ. Demikian pula, jika Anda menggunakan antarmuka pesanan yang dienkapsulasi oleh platform FMZ untuk melakukan pemesanan, karena awal ID pesanan adalah kode produk perdagangan, jika Anda perlu menggunakan ID pesanan asli, Anda hanya perlu menghapus kode produk dan koma.
Peningkatan ini untukexchange.CancelOrder()Dampak fungsi danexchange.GetOrder()Fungsinya sama.
Peningkatan ini untukexchange.Buy()Dampak fungsi danexchange.GetOrder()Fungsinya sama.exchange.Buy()ID pesanan yang dikembalikan oleh fungsi tersebut adalah struktur baru, misalnya, ID yang dikembalikan saat menempatkan pesanan berjangka di bursa OKX:LTC-USDT-SWAP,1578360858053058560。
Peningkatan ini untukexchange.Sell()Dampak fungsi danexchange.GetOrder()Fungsinya sama.exchange.Sell()ID pesanan yang dikembalikan oleh fungsi tersebut adalah struktur baru, misalnya, ID yang dikembalikan saat menempatkan pesanan berjangka di bursa OKX:ETH-USDT-SWAP,1578360832820125696。
Hanya objek bursa berjangka yang mendukung fungsi ini. Untuk fungsi exchange.GetPosition() guna memperoleh data posisi, nama baru exchange.GetPositions() ditambahkan, dan perilakunya sama persis.
Definisi lama: fungsi exchange.GetPosition(). Ketika dipanggil tanpa menentukan parameter apa pun, fungsi ini memperoleh data posisi kontrak tertentu yang ditetapkan oleh pasangan perdagangan dan kode kontrak saat ini.
Setelah penyesuaian dan modifikasi, definisi baru adalah: fungsi exchange.GetPosition(). Ketika dipanggil tanpa menentukan parameter apa pun, fungsi ini memperoleh posisi semua varietas dalam rentang dimensi yang ditentukan oleh pasangan perdagangan dan kode kontrak yang ditetapkan saat ini.
Misalnya, pasangan perdagangan saat ini adalah BTC_USDT dan kode kontraknya adalah swap. Pada saat ini hubungi:
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
Fungsi ini akan meminta data posisi kontrak perpetual U-margin semua mata uang.
Definisi lama: fungsi exchange.GetOrders(). Bila dipanggil tanpa menentukan parameter apa pun, fungsi ini akan mengambil semua pesanan yang belum diselesaikan untuk pasangan perdagangan saat ini.
Setelah penyesuaian dan modifikasi, definisi baru adalah: fungsi exchange.GetOrders(). Ketika dipanggil tanpa menentukan parameter apa pun, fungsi ini memperoleh order yang belum diselesaikan dari semua pasangan perdagangan spot.
Definisi lama: fungsi exchange.GetOrders(). Bila dipanggil tanpa menentukan parameter apa pun, fungsi ini akan mengambil semua pesanan yang belum diselesaikan dari kontrak tertentu yang ditetapkan oleh pasangan perdagangan dan kode kontrak saat ini.
Setelah penyesuaian dan modifikasi, definisi baru adalah: fungsi exchange.GetOrders(). Ketika dipanggil tanpa menentukan parameter apa pun, fungsi ini akan memperoleh semua pesanan yang belum selesai dalam rentang dimensi yang ditentukan oleh pasangan perdagangan dan kode kontrak yang ditetapkan saat ini.
Misalnya, pasangan perdagangan saat ini adalah BTC_USD dan kode kontraknya adalah kuartal. Pada saat ini hubungi:
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
Fungsi ini akan meminta data pesanan terutang dari semua kontrak berjangka margin koin.
Pembaruan ini menambahkan bidang Simbol ke struktur Ticker, yang mencatat informasi pasar produk dari struktur Ticker saat ini. Format bidang ini adalahexchange.GetTicker()Format parameter simbol fungsinya sama persis.
Pembaruan ini menambahkan bidang Simbol ke struktur Pesanan. Format bidang ini sama denganexchange.GetTicker()Format parameter simbol fungsinya sama persis. Pembaruan ini juga mengubah bidang Id dari struktur Pesanan untuk mencatat informasi produk dan informasi pesanan asli dalam format ID pesanan baru. merujuk keexchange.GetOrder()Deskripsi ID pesanan dalam fungsi tidak akan diulang di sini.
Pembaruan ini menambahkan bidang Simbol ke struktur Posisi. Format bidang ini sama denganexchange.GetTicker()Format parameter simbol fungsinya sama persis.
Fungsi GetFundings mengembalikan serangkaian struktur Pendanaan.
{
"Info": {...}, // 交易所资金费率接口原始应答数据
"Symbol": "BTC_USDT.swap", // FMZ平台定义的品种名称
"Interval": 28800000, // 8小时间隔,单位毫秒
"Time": 1729728000000, // 本期资金费率收取时间
"Rate": 0.0001, // 资金费率,即 0.01 %
}
Untuk memenuhi kebutuhan pengguna, peningkatan ini akan terlebih dahulu disesuaikan dengan pasar riil, dan sistem pengujian ulang akan disesuaikan dalam waktu seminggu. Jika kode strategi individual terpengaruh, harap ikuti petunjuk dalam artikel ini untuk membuat perubahan dan penyesuaian
Sesuai dengan peningkatan antarmuka API strategi platform, antarmuka API dalam sistem pengujian ulang platform telah diperbarui secara sinkron; selain itu, sistem pengujian ulang telah menambahkan dukungan untuk:
Fungsi anggota untuk objek pertukaran berjangkaGetAccountKembaliAccountStrukturnya telah diperluas dengan bidang.
Fungsi anggota SetMarginLevel dari objek bursa berjangka telah ditingkatkan untuk menambahkan simbol parameter.
Contoh pengujian:
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)
}
CtValCcyCatat unit nilai suatu kontrak. Unit nilai suatu kontrak dapat berupa: BTC, USD, ETH, dll.CtValCatat nilai satu kontrak produk perdagangan ini di bursa, dalam satuanCtValCcyMata uang catatan lapangan. Misalnya:CtValadalah 0,01,CtValCcy“BTC” berarti satu kontrak bernilai 0,01 BTC.