[TOC]
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:
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.
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
}
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 ialahsymbol
、side
、price
、amount
。
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)
}
Dan ia hanya digunakan sebanyak tiga kali.exchange.CreateOrder()
Fungsi panggilan membawa kepada tiga jenis pesanan niaga hadapan yang berbeza, dengan arah yang berbeza.
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:
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) + "`")
}
Versi lama fungsi mendapatkan data simpanan adalahexchange.GetPosition()
◎ Untuk meningkatkan fungsi yang lebih sesuai dengan nama semantik, fungsi baru untuk mendapatkan simpanan ditambahkan:exchange.GetPositions()
.. dan masih serasi / menaik taraf fungsi GetPosition..
Perhatikan bahawa kedua-dua nama fungsi hanya berbeza dengan akhir s, kerana GetPositions lebih sesuai dengan semantik, maka kedua-dua fungsi berikutnya disyorkan menggunakan GetPositions.
exchange.GetPositions()
Fungsi mempunyai tiga bentuk panggilan:
exchange.GetPositions (dalam bahasa Inggeris) Apabila tiada parameter yang dihantar,Perdagangan / Kod kontrakTetapan untuk meminta data simpanan untuk semua varieti pada dimensi semasa.
exchange.GetPositions ((BTC_USD.swap
、ETH_USDT.swap
、ETH_USDT.quarter
Seperti itu.
BTC_USD.swap: Kontrak kekal pada mata wang BTC.
ETH_USDT.swap: Kontrak kekal U-bit ETH.
ETH_USDC.swap: Kontrak kekal di tempat USDC ETH. (Selain USDT, anda boleh menentukan mata wang kutipan yang berbeza, tidak akan dijelaskan lagi)
ETH_USDT.quarter: Peratusan pertukaran U-bit ETH setiap suku.
BTC_USD. BTC-USD-201226-24250-C: Kontrak pilihan mata wang BTC.
exchange.GetPositions ((
Di bawah ini adalah beberapa ciri-ciri yang boleh digunakan untuk membezakan antara satu pasaran dengan yang lain: USDT.futures_combo:Futures_Deribit: Kontrak portfolio perbezaan USD.futures_ff:Rata pertukaran mata wang simpanan campuran pertukaran Futures_Kraken USD.swap_pf:Futures_Kraken adalah kontrak jangka panjang sekuriti campuran.
Untuk dimensi yang tidak disokong oleh antara muka API pertukaran, panggilan akan memberikan kesalahan dan mengembalikan nilai kosong.
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("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 ialahETH_USDT.swap
Pada masa yang sama, anda boleh mendapatkan data pegangan kontrak kekal U-bit ETH.
Apabila tidak disebarkanexchange.GetPositions()
Apabila parameter fungsi, anda boleh mendapatkan data pegangan semua kontrak kekal U-bit yang dipaparkan di bursa (kerana pasangan dagangan semasa adalah BTC_USDT, kontrak adalah swap, mengikut pasangan dagangan semasa, permintaan jangkauan kontrak), pada masa ini sama dengan panggilanexchange.GetPositions("USDT.swap")
, tentukan jangkauan permintaan.
Fungsi baru GetFundings boleh mendapatkan kadar dana untuk kontrak jangka panjang bursa niaga hadapan. Fungsi ini mempunyai simbol parameter. Fungsi ini mengembalikan susunan struktur Funding.
BTC_USDT.swap
│ Tidak menghantar parameter atau fungsi jangkauan yang dihantar akan memberikan error symbol parameter tidak disokong │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.
Parametersymbol
Untuk objek bursaexchange
Ini adalah wang tunai / niaga hadapan dengan format yang berbeza:
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.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
}
Meminta kumpulan data pasaran untuk jenis tertentu menjadi lebih mudah.
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"))
}
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) + "`")
}
Peningkatan ini juga disokong olehexchange.Go()
Fungsi serentak memanggil API platform untuk menyampaikan maklumat jenis yang ditetapkan oleh parameter simbol.
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:
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)
}
Fungsi GetOrders juga ditambahsymbol
Parameter, yang boleh menentukan jenis tertentu, untuk mendapatkan pesanan yang belum selesai untuk jenis itu; juga menyokong untuk mendapatkan pesanan yang belum selesai untuk semua jenis dalam julat dimensi yang ditentukan.
exchange.GetOrders()
Fungsi boleh dipanggil dengan cara berikut:
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", "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.swap
Apabila parameter, permintaan ETH untuk USDT di tempat kontrak kekal yang belum selesai ("pending order")."USDT.swap"
Apabila anda meminta semua pesanan yang belum selesai untuk kontrak kekal USDT, anda boleh meminta pesanan yang belum selesai untuk USDT.Masih serasi dengan nama fungsi pengambilan simpanan lama, juga menambah parameter simbol untuk menentukan maklumat jenis data simpanan yang diminta secara khusus.exchange.GetPositions()
Saya tidak tahu apa yang berlaku.
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:
GEThttps://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")
}
Peningkatan ini memberi kesan yang besar.exchange.GetOrder(id)
Parameter fungsiid
,id parameter telah diubah dari id pesanan bursa asal kepada format senar yang mengandungi jenis urus niaga. Semua pesanan yang dibungkus pada platform FMZ mempunyai id ini.
Contohnya:
123456
Sebelum peningkatan ini, jika anda mahu memanggil fungsi GetOrder, ID pesanan yang dihantar adalah123456
。BTC-USDT
Saya 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.
Peningkatan ini adalah untukexchange.CancelOrder()
Kesan fungsi danexchange.GetOrder()
Fungsi yang sama.
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
。
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
。
Hanya objek bursa niaga hadapan yang menyokong fungsi ini, dan kedua-duanya bertindak dengan sama untuk mendapatkan fungsi data simpanan yang dinamakan exchange.GetPosition (), ditambah dengan exchange.GetPositions ().
Definisi lama: fungsi exchange.GetPosition ((), tanpa menentukan sebarang parameter yang dipanggil, mendapatkan data pegangan untuk pasangan dagangan semasa, yang ditetapkan oleh kod kontrak.
Pengubahsuaian, penyesuaian, definisi baru: exchange.GetPosition () Fungsi, tanpa menentukan sebarang parameter panggilan, mendapatkan semua jenis pegangan pasangan urus niaga yang ditetapkan pada masa ini, dalam julat dimensi yang ditetapkan oleh kod kontrak.
Sebagai contoh, pasangan dagangan semasa adalah BTC_USDT, kod kontrak adalah swap.
exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")
Fungsi ini akan meminta data simpanan kontrak kekal U-bit untuk semua mata wang.
1. Bagi bursa tunai:
Definisi lama: fungsi exchange.GetOrders ((), apabila tidak menetapkan sebarang parameter yang dipanggil, mengambil semua pesanan yang belum selesai pada pasangan urus niaga semasa.
Pengubahsuaian, penyesuaian, definisi baru: exchange.GetOrders () fungsi, apabila tidak menetapkan sebarang parameter dipanggil, yang diperoleh adalah semua pesanan yang belum selesai untuk jenis transaksi segera.
2. Bagi bursa niaga hadapan:
Definisi lama: fungsi exchange.GetOrders ((), apabila tidak menentukan sebarang parameter panggilan, mengambil semua pesanan yang belum selesai untuk pasangan urus niaga semasa, kontrak kod tertentu yang ditetapkan.
Pembaharuan, penyesuaian, definisi baru: exchange.GetOrders () fungsi, tanpa menentukan sebarang parameter panggilan, mendapatkan semua pesanan yang belum selesai dalam jangkauan dimensi yang ditetapkan oleh kod kontrak.
Sebagai contoh, pasangan dagangan semasa adalah BTC_USD, kod kontrak adalah quarter.
exchange.GetOrders() // 等价于调用 exchange.GetOrders("USD.futures")
Fungsi ini akan meminta data pesanan belum selesai mengenai kadar pertukaran mata wang untuk semua mata wang.
Kemas kini ini menambah medan Simbol kepada struktur Ticker, yang merakam maklumat mengenai jenis struktur Ticker semasa. Format medan ini adalah sama denganexchange.GetTicker()
Format parameter simbol fungsi adalah sama.
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 maklumat pesanan dalam format baru.exchange.GetOrder()
Perincian ID pesanan dalam fungsi, tidak lagi dibincangkan di sini.
Pembaharuan ini menambah bidang Simbol kepada struktur Posisi, yang formatnya sama denganexchange.GetTicker()
Format parameter simbol fungsi adalah sama.
Fungsi GetFundings mengembalikan satu susunan struktur Funding.
{
"Info": {...}, // 交易所资金费率接口原始应答数据
"Symbol": "BTC_USDT.swap", // FMZ平台定义的品种名称
"Interval": 28800000, // 8小时间隔,单位毫秒
"Time": 1729728000000, // 本期资金费率收取时间
"Rate": 0.0001, // 资金费率,即 0.01 %
}
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.
Menurut peningkatan API strategi platform ini, setiap antara muka API dalam sistem balas platform telah disinkronkan dan disempurnakan; selain itu, sokongan sistem balas baru:
Fungsi ahli untuk objek bursa niaga hadapanGetAccount
KembaliAccount
Struktur telah diperluaskan.
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)
}
CtValCcy
Satu unit nilai kontrak yang boleh menjadi: BTC, USD, ETH, dan lain-lain.CtVal
Mencatatkan nilai yang sepadan dengan satu kontrak di bursa jenis urus niaga, satu unitCtValCcy
Mata wang yang dicatatkan dalam bidang tersebut.CtVal
Peringkat 0.01,CtValCcy
Untuk "BTC", satu kontrak bernilai 0.01 BTC.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.