Sumber daya yang dimuat... Pemuatan...

Inventor Quantitative Trading Platform API Upgrade: Meningkatkan Pengalaman Desain Strategi

Penulis:Penemu Kuantitas - Mimpi Kecil, Dibuat: 2024-06-28 09:08:29, Diperbarui: 2024-07-24 12:00:40

[TOC]

img

Pengantar

Penemu Quantitative Trading Platform telah melakukan beberapa perombakan setelah 9 tahun iterasi teknologi, meskipun kami sebagai pengguna mungkin tidak menyadarinya. Dalam dua tahun terakhir, platform telah melakukan banyak optimasi dan peningkatan dalam hal pengalaman pengguna, termasuk peningkatan antarmuka UI yang komprehensif, alat perdagangan kuantitatif yang banyak digunakan, dan menambahkan lebih banyak dukungan data retargeting.

Untuk membuat desain kebijakan lebih mudah, logika transaksi lebih jelas, dan lebih mudah untuk pemula, platform telah meningkatkan antarmuka API yang digunakan oleh kebijakan. Penggunaan host versi terbaru dapat mengaktifkan fitur-fitur baru ini. Platform masih sangat kompatibel dengan panggilan antarmuka lama.

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

Jadi, mari kita lihat bersama di artikel ini apa saja pembaruan upgrade antarmuka yang ada dan apa saja perubahan yang diperlukan untuk menggunakan kebijakan lama untuk kompatibel dengan API saat ini.

1 - Perangkat Lunak Baru

新增exchange.GetTickers函数

Untuk merancang strategi multi-varietas, strategi pemantauan pasar keseluruhan. Antarmuka pasar agregat ini sangat penting untuk membuat strategi lebih mudah dikembangkan dan menghindari perkalian roda. Penemu platform perdagangan kuantitatif membungkus API seperti pasar.

Jika sebuah bursa tidak memiliki antarmuka seperti itu (bursa individu), panggilanexchange.GetTickers()"Saya tidak akan mendukungnya", tulisnya.

Fungsi ini tidak memiliki parameter apa pun dan akan mengembalikan data pasar real-time dari semua varietas pasar yang terakumulasi di antarmuka pasar.

exchange.GetTickers()Fungsi ini adalahexchange.GetTicker()Versi yang diminta dari berbagai jenis fungsi (lihat dengan seksama, perbedaan antara kedua nama fungsi ini hanya merupakan bilangan tunggal).

Kami menggunakan OKX untuk menguji lingkungan simulasi disk langsung:

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函数

Tumbuhexchange.CreateOrder()Fungsi dapat dianggap sebagai fokus dari upgrade ini.exchange.CreateOrder()Fungsi yang paling penting adalah menentukan jenis, arah, dan lain-lain yang akan dipesan secara langsung dalam parameter fungsi. Dengan demikian, tidak ada lagi pengaturan yang bergantung pada pasangan transaksi, kode kontrak, arah transaksi, dan lain-lain yang saat ini ditetapkan oleh sistem.

Dalam skenario transaksi multi-varietas, pengurangan kompleksitas desain sangat signifikan dalam skenario simultan.exchange.CreateOrder()Jadi kita bisa melihat bahwa fungsi ini memiliki empat parameter.symbolsidepriceamount

Percobaan lingkungan 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

Jadi kita hanya menggunakan tiga kali.exchange.CreateOrder()Fungsi panggilan menghasilkan tiga jenis pesanan berjangka yang berbeda arah.

新增exchange.GetHistoryOrders函数

Tumbuhexchange.GetHistoryOrders()Fungsi ini digunakan untuk mendapatkan pesanan transaksi historis jenis tertentu, yang juga membutuhkan dukungan antarmuka bursa.

Untuk menelusuri order sejarah, antarmuka yang diimplementasikan oleh berbagai bursa sangat berbeda:

  • Beberapa mendukung, beberapa tidak.
  • Beberapa transaksi tidak dapat dihubungi selama semua periode jendela permintaan, yaitu pesanan yang berlangsung lebih dari N hari.
  • Sebagian besar bursa mendukung permintaan waktu tertentu, sementara beberapa tidak.

Untuk mengemas antarmuka jenis ini dengan tingkat kompatibilitas maksimum, dalam penggunaan praktis perlu diperhatikan apakah mereka sesuai dengan kebutuhan, harapan, dan kebijakan.

Fungsi yang lebih rinci tidak akan dijelaskan di sini, Anda dapat melihat panduan tata bahasa di dokumen API:

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

Percobaan menggunakan Binance Real-Time Display Environment:

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 dari fungsi capture hold data adalahexchange.GetPosition()◎ Upgrade ini menambahkan fungsi pemegang saham baru untuk lebih sesuai dengan semantik nama fungsi:exchange.GetPositions()│ namun tetap kompatibel/meng-upgrade fungsi GetPosition│

exchange.GetPositions()Fungsi memiliki tiga bentuk panggilan:

  • exchange.GetPositions (dalam bahasa Inggris). Ketika tidak ada parameter yang dikirim, data penyimpanan diminta sesuai dengan pengaturan kode pasangan transaksi / kontrak saat ini.
  • exchange.GetPositions (http://ETH_USDT.swap) Ketika informasi varietas tertentu (format seperti ETH_USDT.swap yang didefinisikan oleh platform FMZ) ditentukan, data penyimpanan varietas tertentu diminta.
  • exchange.GetPositions (dalam bahasa Inggris). Mintalah semua data penyimpanan dari dimensi saat ini yang dapat diakses oleh antarmuka penyimpanan bursa.

Percobaan lingkungan 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

Saat masukexchange.GetPositions()Dan parameternya adalahETH_USDT.swapPada saat yang sama, Anda dapat mendapatkan data kepemilikan kontrak permanen U-bit ETH.

img

Saat masukexchange.GetPositions()Parameter fungsi adalah string kosong.""Pada saat yang sama, Anda dapat mendapatkan data penyimpanan semua kontrak di U.S.A.

2. Perbaikan antarmuka API

升级exchange.GetTicker函数

Fungsi operasiexchange.GetTicker()Upgrade ini terutama menambahkan parameter simbol. Fungsi ini dapat lepas dari pasangan transaksi saat ini, kode kontrak langsung sesuai dengan informasi varietas yang ditentukan oleh parameter, meminta data pasar. Proses penulisan kode disederhanakan.

ParametersymbolUntuk obyek bursaexchangeIni adalah bentuk yang berbeda dari spot/futures:

  • Objek Bursa Langsung Formatnya adalah:AAA_BBB, AAA mewakili mata uang dasar, dan BBB mewakili mata uang quote. Nama mata uang dituliskan dengan huruf besar. Contoh: BTC_USDT Pasangan perdagangan langsung.
  • Objek Bursa Berjangka Formatnya adalah:AAA_BBB.XXXAAA adalah mata uang dasar, BBB adalah mata uang quote, dan XXX adalah kode kontrak, seperti swap kontrak permanen. Nama mata uang dituliskan dengan huruf besar dan kode kontrak dituliskan dengan huruf kecil. Contoh: BTC_USDT.swap, kontrak jangka panjang U-bit BTC.

Percobaan di lingkungan real-time dengan mata uang kripto:

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

Permintaan untuk desain data pasar untuk kelompok varietas tertentu menjadi lebih sederhana.

升级exchange.GetDepth函数

Sama seperti fungsi GetTickerexchange.GetDepth()Fungsi ini juga menambahkan parameter simbol. Fungsi ini memungkinkan untuk secara langsung menentukan varietas saat meminta data kedalaman.

Percobaan di lingkungan real-time dengan mata uang kripto:

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 menambahkan parameter simbol. Fungsi ini memungkinkan untuk secara langsung menentukan varietas saat meminta data transaksi pasar.

Percobaan di lingkungan real-time dengan mata uang kripto:

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

Upgrade ini juga kompatibel denganexchange.Go()Fungsi tersebut menginvokasi platform API secara bersamaan saat mengirimkan informasi varietas yang ditentukan oleh parameter simbol.

升级exchange.GetRecords函数

Fungsi GetRecords membuat perubahan besar pada saat ini, selain mendukung informasi varietas data baris K yang diminta secara langsung oleh parameter simbol. Parameter periode yang digunakan untuk menentukan periode baris K tetap dipertahankan, dan parameter limit ditambahkan untuk menentukan panjang baris K yang diinginkan untuk periode permintaan.

exchange.GetRecords()Cara memanggil fungsi:

  • exchange.GetRecords (dalam bahasa Inggris). K-line data dari varietas yang sesuai dengan pasangan transaksi/kode kontrak saat diminta tanpa menentukan parameter apa pun. Periode K-line adalah siklus K-line default yang ditetapkan pada waktu antarmuka atau real-time.
  • exchange.GetRecords ((60 * 15) Ketika parameter siklus K-line saja ditentukan, data K-line dari varietas yang sesuai dengan pasangan transaksi/kode kontrak saat ini diminta.
  • exchange.GetRecords (http://www.exchange.getRecords.com/) Ketika hanya informasi varietas yang ditentukan, data K-line yang diminta untuk menentukan varietas, siklus K-line adalah siklus K-line default yang ditetapkan pada antarmuka pencarian strategi atau real disk.
  • exchange.GetRecords ((BTC_USDT.swap, 60 * 60)) Menentukan informasi varietas, menentukan siklus garis K tertentu, meminta data garis K.
  • exchange.GetRecords (http://www.exchange.getRecords.com/) Menentukan informasi varietas, menentukan siklus garis K tertentu, menunjuk pada panjang garis K yang diharapkan untuk mendapatkan data garis K permintaan secara berkala. Perhatikan bahwa ketika parameter limit melebihi panjang maksimum permintaan satu kali oleh bursa, maka akan terjadi permintaan split page (yaitu beberapa kali panggilan ke K-line interfaces bursa).

Percobaan di lingkungan real-time dengan mata uang kripto:

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 ditambahkansymbolParameter, yang dapat secara langsung menentukan varietas yang saat ini belum selesai di-order; juga mendukung untuk mencari semua varietas yang belum selesai di-order; kompatibel dengan cara panggilan asli.

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

  • exchange.GetOrders (dalam bahasa Inggris). Cari semua pesanan yang belum selesai dengan kode pasangan transaksi/kontrak saat ini.
  • exchange.GetOrders (http://www.exchange.getorders.com/) Periksa semua pesanan yang belum selesai untuk kontrak USDT BTC.
  • exchange.GetOrders (dalam bahasa Inggris). Mencari semua pesanan yang belum selesai dengan pembagian dimensi saat ini di bursa (berdasarkan pembagian dimensi API bursa).

Percobaan lingkungan 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

Bila tidak mengirim parameter, secara default meminta pasangan transaksi BTC_USDT saat ini, semua daftar pending yang belum selesai untuk kontrak permanen swap.

img

Parameter yang ditentukanETH_USDT.swapSaat parameter diminta, semua kontrak permanen yang belum selesai diunggah untuk pasangan perdagangan ETH_USDT.

img

Mengirim string kosong""Pada saat itu, semua kontrak USDT yang belum selesai akan diminta untuk diunggah.

升级exchange.GetPosition函数

Masih kompatibel dengan nama fungsi pengambilan penyimpanan lama, juga menambahkan parameter simbol, yang dapat menentukan informasi varietas data penyimpanan yang diminta secara khusus. Fungsi penggunaan danexchange.GetPositions()Saya tidak tahu apa yang terjadi.

升级exchange.IO函数

Untukexchange.IO("api", ...)Cara panggilan fungsi, yang ditingkatkan untuk semua objek bursa yang mendukung fungsi alamat permintaan lengkap yang langsung ditransfer. Misalnya, jika Anda ingin memanggil OKX:

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

Dukungan untuk menulis alamat database langsunghttps://www.okx.com, Anda tidak perlu mengganti alamat basis untuk memanggil fungsi IO.

Percobaan lingkungan 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

Efek dari API

影响exchange.GetOrder函数

Ini adalah peningkatan yang sangat mempengaruhi.exchange.GetOrder(id)Parameter fungsiidParameter id diubah dari original order id untuk menjadi format string yang berisi varietas transaksi. Semua order ID yang dikemas di platform FMZ menggunakan format ini.

Misalnya:

  • ID pesanan asli dari bursa yang didefinisikan dalam order bursa adalah:123456Sebelum upgrade ini, untuk memanggil fungsi GetOrder, order id yang dikirim adalah123456
  • Kode produk dengan nama bursa yang didefinisikan dalam pesanan bursa:BTC-USDTSaya tidak tahu. Perhatikan bahwa ini adalah jenis kode perdagangan yang dinamakan oleh bursa, bukan pasangan perdagangan yang didefinisikan oleh platform FMZ.

"Saya tidak tahu apa yang terjadi", katanya.exchange.GetOrder(id)Format parameter id yang ingin ditransfer fungsi disesuaikan dengan:BTC-USDT,123456

Pertama, jelaskan mengapa desain ini dibuat: Karena ini adalah upgrade dari fungsi CreateOrder yang secara langsung menentukan jenis order (varietas order dan pasangan transaksi yang saat ini diatur, kode kontrak mungkin berbeda), jika ID order yang dikembalikan tidak berisi informasi jenis; maka ID order ini tidak akan dapat digunakan; karena tidak diketahui jenis order (kontrak) pada saat order tertentu; sebagian besar order dan invoice di bursa memerlukan parameter yang menggambarkan kode jenis.

Bagaimana cara mengombinasikan dampak ini: Jika pesanan menggunakan fungsi exchange.IO yang secara langsung memanggil antarmuka pesanan untuk melakukan pesanan, nilai yang dikembalikan biasanya memiliki simbol asli (kode varietas) dan id pesanan asli. Jika keduanya digabungkan dengan koma bahasa Inggris, maka itu sesuai dengan definisi platform FMZ. Demikian pula, jika menggunakan antarmuka pemesanan yang terbungkus pada platform FMZ, karena bagian awal OrderId adalah kode varietas transaksi, hanya perlu menghapus kode varietas dan koma jika Anda ingin menggunakan Order OriginalId.

影响exchange.CancelOrder函数

Peningkatan ini untukexchange.CancelOrder()Efek Fungsi danexchange.GetOrder()Fungsi yang sama.

影响exchange.Buy函数

Peningkatan ini untukexchange.Buy()Efek Fungsi danexchange.GetOrder()Fungsi yang sama.exchange.Buy()Id pesanan yang dikembalikan oleh fungsi untuk struktur baru, misalnya Id yang dikembalikan saat pesanan di bursa berjangka OKX:LTC-USDT-SWAP,1578360858053058560

影响exchange.Sell函数

Peningkatan ini untukexchange.Sell()Efek Fungsi danexchange.GetOrder()Fungsi yang sama.exchange.Sell()Id pesanan yang dikembalikan oleh fungsi untuk struktur baru, misalnya Id yang dikembalikan saat pesanan di bursa berjangka OKX:ETH-USDT-SWAP,1578360832820125696

4. Penyesuaian struktur

Struktur Ticker

Pembaruan ini menambahkan kolom Simbol ke struktur Ticker, yang mencatat informasi tentang jenis struktur Ticker saat ini. Format bidang ini adalahexchange.GetTicker()Format parameter simbol fungsi sangat konsisten.

Struktur Orde

Pembaharuan ini menambahkan kolom Simbol ke struktur Order, yang memiliki format yang sama denganexchange.GetTicker()Format parameter simbol fungsi sangat konsisten. Pembaruan ini juga mengubah bidang Id dari struktur Order untuk mencatat informasi varietas, informasi pesanan asli, dan referensi dengan format baru Order Id.exchange.GetOrder()Penjelasan tentang perintah Id dalam fungsi, tidak lagi dibahas di sini.

Struktur Posisi

Pembaharuan ini menambahkan kolom Simbol ke struktur Posisi, yang memiliki format yang sama dengan kolom yang ada di bagian atas.exchange.GetTicker()Format parameter simbol fungsi sangat konsisten.

Sistem pengukuran kembali

Upgrade ini untuk memenuhi kebutuhan pengguna, pertama-tama kompatibel dengan hard drive, dan sistem retesting akan selesai menyesuaikan dalam waktu satu minggu. Jika kode kebijakan individu terpengaruh, silakan lakukan perubahan sesuai dengan artikel ini.

Pembaharuan

1, Account Struktur Bidang Baru Ekuitas, UPnL

Fungsi anggota untuk obyek bursa berjangkaGetAccountKembaliAccountStruktur telah diperluas.

  • Ekuitas Saat ini, sebagian besar dari mata uang yang tidak didukung oleh bursa berjangka, sebagian besar mendukung bidang ini.

  • UPnL Semua posisi yang saat ini dipegang dalam mata uang aset berjangka mengalami kerugian yang belum terwujud, kecuali beberapa bursa berjangka yang tidak mendukung, sebagian besar mendukung segmen tersebut.

2 ̊ Dukungan parameter simbol untuk meningkatkan fungsi SetMarginLevel

Fungsi SetMarginLevel yang merupakan anggota dari obyek bursa berjangka telah ditingkatkan dengan menambahkan simbol parameter.

Contoh uji coba:

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 banyak

Wa-emmnn_Saya bertanya apa yang terjadi dengan robot baru saya, ID kembali dengan nama pasangan transaksi, saya telah meneliti untuk waktu yang lama, dan informasi log setelah pesanan tidak muncul sekarang, karena pembaruan administrator?

Yang kecil./upload/asset/2ffc0f961149326b78aed.png Apakah masalah ini disebabkan oleh pembaruan ini?

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

NanSegGaris depan

Wa-emmnn_Baiklah.

Penemu Kuantitas - Mimpi KecilBaiklah, cobalah di sini. Terima kasih atas pertanyaannya.

Wa-emmnn_Ya, extMsg1, extMsg2 tidak muncul.

Penemu Kuantitas - Mimpi KecilHalo, ID pesanan ini adalah perubahan yang harus dilakukan, karena upgrade langsung menentukan jenis order, ID pesanan harus berisi informasi jenis, jika tidak tidak dapat menentukan jenis pesanan ini, tidak dapat dipanggil saat penarikan ((karena sebagian besar bursa perlu menentukan jenis saat penarikan, dan menentukan ID)). Anda mengatakan bahwa pesan setelah pesanan tidak muncul, yaitu: exchange.Buy ((price, amount, extMsg1, extMsg2) ketika dipanggil, apakah extMsg1, extMsg2 tidak muncul di log?

Penemu Kuantitas - Mimpi KecilHalo, Anda dapat mengirim pengaturan bursa, pasangan perdagangan, dan kode kontrak saat ini.

Penemu KuantitasKirimkan detail kode dan konfigurasi uji coba ke formulir kerja, dan insinyur akan membalas Anda pada saat pertama.

Penemu Kuantitas - Mimpi KecilPerbedaan antara mekanisme persyaratan dan dukungan di bursa yang berbeda-beda, dan ini adalah penelitian untuk melihat apakah itu mungkin.

Penemu Kuantitas - Mimpi KecilTerima kasih atas dukungannya, jika ada masalah, kirimkan formulir atau komentar.