Untuk kebijakan debugging dalam sistem retesting, biasanya hanya digunakanLog()
Fungsi tersebut. DEBUG ini sangat tidak efisien dan sulit bagi pemula yang tidak memiliki banyak pengalaman dalam pengujian program.JavaScript
Dalam bahasa Indonesia, bahasa yang digunakan adalah bahasa Indonesia.Chrome
Browser memiliki dukungan yang lebih baik. Anda dapat melakukan debugging titik putus, debugging langkah tunggal, pemantauan nilai variabel, pemantauan ekspresi, dll.Javascript
DEBUG pada saat kebijakan bahasa ditelusuri kembali. Perhatikan, pada FMZ hanyaJavascript
Strategi bahasa mendukung metode debugging ini.
debugger
PerintahMasukkan kode kebijakan bahasa JavaScript di FMZdebugger
Instruksi yang memungkinkan program untuk dihentikan saat diulang.
Kami menggunakan kode strategi pengujian berikut:
/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
function main() {
var n = 1
while (true) {
var t = exchange.GetTicker()
debugger
var r = exchange.GetRecords()
if (n == 1) {
// 下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性,属性名区分大小写
var id = exchange.Buy(t.buy, 0.1)
var orderBuy = exchange.GetOrder(id)
}
Sleep(500)
}
}
Kode konfigurasi dari retest
/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
Anda dapat melihat bahwa pertukaran yang kami tambahkan saat review adalah Binance (Binance) dengan konfigurasi seperti gambar:
Jika kita terus melihat kode strategi, kita bisa melihat bahwavar t = exchange.GetTicker()
Dan di bawah kalimat ini, kita menulis:debugger
Perintah, sama dengan menekan titik putus di sini, dan program akan berhenti sampai ke titik ini.debugger
Untuk melakukan hal ini, tidak dianjurkan, hanya dengan mengetik satu titik di suatu lokasi, dan titik berikutnya dapat diatur di fungsi debugging DevTools browser Anda.
Anda harus membuka browser Chrome terlebih dahulu.DevTools
Periksa ulang, yang diatur dalam kode kebijakandebugger
Jika tidak, mereka tidak akan bisa bekerja.debugger
Kebijakan ini tidak dapat dihentikan dan tidak dapat dihentikan pada titik putus.DevTools
Setelah mengulangi kebijakan, program kebijakan akan dihentikan pada pengaturan pertama.debugger
Tempatnya,debugger
Anda juga dapat mengatur kode strategi dalam ruang lingkup global.
Kita buka, browser ChromeDevTools
Ada dua cara untuk menggunakan alat ini:
Pertama, kita mengklik kanan untuk membuka menu pop-up.
Jika kita mengklik "Check" maka akan muncul antarmuka DevTools.
2. Gunakan tombol jalan pintas
Anda juga bisa membuka dengan menekan tombol tombol cepat.Command+Option+I (Mac)
atauControl+Shift+I(Windows、Linux)
Buka.DevTools
。
Buka.DevTools
Setelah itu, berikut ini:
Kemudian dalam tes di atas, ketika kita mengklik tombol "Start Retest", kebijakan retest akan muncul karena telah diatur dalam kode.debugger
Perintah, kebijakan di posisi yang sesuai untuk berhenti dan menunggu. Pemutaran kembali seperti terjebak mati, seperti gambar di bawah:
Anda bisa lihat di strategi.debugger
Tanda lokasi pemutusan, seluruh program hanya melakukan n assignment sebagai 1, t assignment sebagaiGetTicker
Data yang dikembalikan oleh fungsi. Pada gambar di atas, Anda dapat melihat nilai variabel tertentu dalam kotak merah, sehingga mudah untuk melihat nilai variabel saat kebijakan berjalan.
Kita bisa mengklik baris di sebelah kiri kode untuk menambahkan titik putus.
Mengklik "resume script execution" untuk menghidupkan kembali eksekusi skrip, program akan berjalan ke titik putus berikutnya, dan jika tidak ada titik putus atau program memiliki kesalahan yang menyebabkan kelainan, uji ulang akan berakhir.
Ada beberapa tombol lain yang dapat dilakukan: melewatkan fungsi berikutnya, pergi ke panggilan fungsi berikutnya, melewatkan panggilan fungsi saat ini, melakukan langkah tunggal, mengabaikan semua titik putus, dll.
Pada saat ini, ketika kita terus mengklik tombol "resume script execution" untuk melanjutkan eksekusi, kebijakan akan mengalami kesalahan yang luar biasa, mengakhiri uji coba, dan mencetak pesan kesalahan yang luar biasa.
main:17:31 - TypeError: Cannot convert "undefined" to double
Ini adalah kesalahan yang sering dilakukan oleh pemula, dengan menulis nama sifat struktur tanpa membedakan ukuran dan ukuran.
var id = exchange.Buy(t.buy, 0.1) // 下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性。
导致传入exchange.Buy函数的价格是一个undefined变量,引起程序异常,回测结束。
Ketika program berhenti di titik putus, baris kode ini tidak dieksekusi. Kami terus mengklik tombol "step into next function call".
跳转到exchange.Buy函数调用中。
Lihat harga sebagai variabel yang tidak didefinisikan.
Dengan menggunakan metode di atas, Anda dapat dengan mudah menemukan program BUG langkah demi langkah. Kesalahan yang sering dilakukan oleh banyak pemula: seperti mengakses indeks array yang melintasi batas, mengutip variabel yang tidak didefinisikan, kesalahan penulisan ekspresi, dll. Dengan cara ini, Anda dapat dengan mudah melakukan DEBUG pada program.
FmzeroRuang tidur, masih bisa seperti ini, 666