
Dalam artikel sebelum ini, kami telah mengetahui bahawa apa yang dipanggil dagangan berprogram dan kuantitatif ialah program skrip yang membuat beberapa operasi berdasarkan data yang diperoleh daripada pertukaran selepas beberapa siri pengiraan, pertimbangan dan pencetus untuk mengendalikan akaun pertukaran untuk perdagangan. Tindakan mendapatkan data dan akaun operasi ini semuanya dijalankan melalui antara muka API pertukaran. Ringkasnya, ia adalah interaksi antara program skrip dan pertukaran Memandangkan ia adalah interaksi, mesti ada interaksi normal dan interaksi tidak normal. Apabila interaksi tidak normal berlaku, antara muka mengembalikan maklumat pengecualian.
Sudah tentu, sistem perdagangan yang diprogramkan dan kuantitatif di pasaran, atau program yang dibangunkan sendiri, akan mempunyai pelbagai gesaan ralat dan mesej ralat. Mesej ralat ini tidak terhad kepada mesej ralat yang dilaporkan oleh antara muka API pertukaran. Terdapat juga perkara seperti: ralat pengecualian masa jalan program, ralat konfigurasi, ralat sintaks program, dsb.
Pada Platform Dagangan Kuantitatif Pencipta, mesej ralat secara kasar boleh dibahagikan kepada beberapa kategori:

Kod tersebut tidak mempunyai aksara seperti kurungan. Ralat jenis ini biasanya kelihatan pada halaman penyuntingan dasar dan dasar itu tidak boleh dijalankan (ralat akan dilaporkan terus semasa masa jalan, seperti yang ditunjukkan dalam rajah di bawah).
Oleh itu, selepas menulis strategi, saya biasanya melihat halaman penyuntingan strategi platform untuk melihat jika terdapat XX merah kecil Jika ada, pasti ada ralat yang jelas.


Ralat sedemikian akan menyebabkan program gagal dan program akan berhenti berjalan.
Pada platform FMZ, pasangan dagangan ditakrifkan secara seragam sebagaiX_YDalam format ini, X mewakili nama mata wang dagangan, dan Y mewakili nama mata wang dalam denominasi (mata wang denominasi pasangan dagangan kontrak terpinggir mata wang hadapan biasanya dinyatakan dalam USD, yang telah diperkenalkan dalam artikel sebelumnya). ContohnyaBTC_USDT, jika saya menulis pasangan dagangan secara rawak,BTC-USDT。

Ralat dilaporkan dalam sistem ujian belakang platform FMZ:

Laporkan ralat dalam perdagangan sebenar:

Tambahan pula, kesilapan biasa yang dihadapi oleh pemula:
https://www.fmz.com
Ralat jenis ini disebabkan oleh menukar kata laluan akaun platform FMZ, mengakibatkanAPI KEYTidak sah (KUNCI API pengguna disulitkan pada penyemak imbas dan kemudian dikonfigurasikan pada platform FMZ), strategi tidak boleh dimulakan dan ralat dilaporkan.
Ralat panggilan antara muka sering ditemui semasa menjalankan strategi Dalam artikel sebelumnya, kami mengetahui bahawa antara muka pada platform FMZ terbahagi kepadaAntara muka untuk menjana permintaan rangkaian、Antara muka yang tidak menjana permintaan rangkaian. Ralat antara muka tidak akan menyebabkan program dasar berhenti Ini biasanya disebabkan oleh pengecualian panggilan antara muka, yang mengembalikan data yang salah Kemudian dasar tidak mempunyai toleransi kesalahan, dan ralat pengecualian program yang disebabkan oleh data yang salah menyebabkan program berhenti. (konsep toleransi kesalahan telah dibincangkan dalam artikel sebelum ini).
Berikut ialah beberapa mesej ralat antara muka yang menjana permintaan rangkaian:
Tamat masa rangkaian

Salah satu mesej ralat yang sering dihadapi oleh pemula ialah penggunaan peranti rangkaian domestik (komputer atau pelayan domestik mereka sendiri). Memandangkan kebanyakan pertukaran disekat, banyak pertukaran pada dasarnya tidak boleh diakses daripada rangkaian domestik, dan antara muka akses akan melaporkan tamat masa. (disebut dalam artikel sebelum ini)
http 429 ralat
https://www.fmz.com
Salah satu mesej ralat klasik Sebabnya ialah antara muka pertukaran dipanggil terlalu kerap, melebihi had kekerapan pertukaran. (disebut dalam artikel sebelum ini)
Sesetengah pelajar baru mungkin berkata, saya akan memohon lebih banyak pertukaran.API KEYAtau saya boleh memohon untuk beberapa akaun pertukaran lagi. Kita perlu tahu bahawa pertukaran biasanya mengehadkan kekerapan akses antara muka berdasarkan alamat IP Ringkasnya, selagi semua permintaan yang dihantar dari alamat IP dikira pada alamat IP ini, jika melebihi had, pelayan pertukaran akan menafikan akses. kepada permintaan yang dihantar oleh alamat IP ini.
Ralat melaporkan pada peringkat perniagaan antara muka pertukaran
Tamat masa dan 429 yang dinyatakan di atas adalah ralat peringkat rangkaian. Ralat juga akan dilaporkan jika masalah berlaku di peringkat perniagaan antara muka pertukaran Contohnya, saya ingin mendapatkan sebut harga spot, tetapi saya menetapkan pasangan dagangan yang tidak wujud. Saya mengujinya dalam alat penyahpepijatan platform FMZ Alat penyahpepijatan ialah alat ujian yang sangat mudah, yang sangat sesuai untuk ujian masa nyata bagi panggilan fungsi, pemerolehan data dan keperluan lain.

Tiada perbezaan antara hasil pelaksanaan alat nyahpepijat dan pelaksanaan sebenar.

Huobi 错误 GetTicker: Invalid ticker: {"Info":{"err-code":"invalid-parameter","err-msg":"invalid symbol","status":"error","ts":1620872079355},"High":0,"Low":0,"Sell":0,"Buy":0,"Last":0,"Volume":0,"OpenInterest":0,"Time":0}
Mesej ralat di sini bermakna pasangan transaksi tidak sah (seperti yang boleh dilihat di sini"err-msg":"invalid symbol")。
Sebagai contoh, terdapat banyak ralat yang berkaitan dengan perniagaan Contohnya, apabila menetapkan leverage, sesetengah pertukaran tidak menyokong nilai leverage dengan bahagian perpuluhan Pada masa ini, jika nilai leverage mengandungi bahagian perpuluhan, ia juga akan menyebabkan ralat panggilan antara muka.
Senaraikan panggilan antara muka yang tidak menjana permintaan rangkaian
Tetapkan kod kontrak niaga hadapan Sesetengah antara muka hanya menetapkan beberapa pembolehubah global dalam sistem dan tidak menjana permintaan rangkaian, contohnya:

Walau bagaimanapun, ralat akan berlaku jika parameter diluluskan secara tidak betul atau ditulis secara rawak.

Walau bagaimanapun, tidak kira apa jenis ralat itu, mesej ralat yang dipaparkan adalah maklumat utama untuk mencari masalah, dan masalah itu biasanya boleh dikenal pasti daripada mesej ralat. Anda boleh menggunakan alat terjemahan untuk menterjemah mesej ralat dan mengekstrak maklumat utama. Sebagai contoh, dalam contoh di atas"err-msg":"invalid symbol", terjemahan: “err msg”: “Simbol tidak sah”. Anda mungkin tahu bahawa tetapan pasangan dagangan adalah salah, kerana simbol bahasa Inggeris biasanya digunakan untuk mewakili kod dagangan dan pasangan dagangan.
Kami akan membincangkan secara ringkas maklumat ralat Terdapat siaran yang akan terus mengumpulkan soalan biasa untuk pertanyaan: https://www.fmz.com/bbs-topic/1427
Sistem ujian belakang juga merupakan titik penting dalam alat kuantitatif Sistem ujian belakang boleh menguji prototaip strategi dengan mudah dan menguji potensi pepijat dan masalah logik dalam strategi. Kita perlu rasional tentang sistem ujian belakang. Sistem ujian belakang boleh mencerminkan beberapa masalah strategi pada tahap tertentu.
Di bawah ini kami akan menerangkan secara ringkas sistem ujian belakang pada platform FMZ dari perspektif bahasa strategi berbeza yang disokong oleh FMZ. (Beberapa pengenalan kepada sistem ujian belakang telah disebut dalam artikel sebelumnya)
Ujian belakang sisi penyemak imbas menggunakan sumber perkakasan tempatan.
Apabila membuat ujian belakang pada penjaga, anda boleh memilih penjaga yang akan diperuntukkan (sama ada penjaga anda sendiri atau penjaga awam platform FMZ). Memandangkan beban berat pada penjaga awam di platform FMZ, adalah disyorkan untuk menggunakan kustodian tempatan untuk ujian belakang (ini juga akan menjadi lebih cepat. Apabila ujian belakang dengan penjaga awam, apabila terdapat terlalu banyak tugas yang melebihi beban, beberapa ujian belakang tugas akan dibatalkan, mengakibatkan kelewatan ujian belakang).
Tidak seperti bahasa skrip, dasar C++ perlu disusun sebelum ia boleh dilaksanakan. Strategi bahasa C++ akan disusun pada platform FMZ (pelayan) terlebih dahulu (jika terdapat masalah dengan kod, kompilasi mungkin gagal dan mesej ralat akan muncul). Selepas penyusunan, ujian belakang pada platform FMZ (pelayan).
Pelaksanaan asas adalah JavaScript, dan ujian belakang juga dilakukan pada bahagian penyemak imbas.
Pelaksanaan asas adalah JavaScript, dan ujian belakang juga dilakukan pada bahagian penyemak imbas.
Sistem ujian belakang Platform Dagangan Kuantitatif Pencipta mempunyai dua mod ujian belakang (yang ini tidak membezakan antara bahasa strategi, yang ini adalah tetapan ujian belakang, dan ujian balik strategi dalam pelbagai bahasa adalah sama).

Untuk arahan mengenai sistem ujian belakang, sila rujuk maklumat dalam tutorial platform:
https://www.fmz.com/bbs-topic/4158#%E7%AD%96%E7%95%A5%E5%9B%9E%E6%B5%8B
K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。
Sama seperti simulasi dalam rajah: https://www.fmz.com Sudah tentu, apabila sistem ujian belakang sebenar melaksanakan simulasi ini, keadaannya sedikit lebih rumit daripada yang ditunjukkan dalam rajah Kami tidak akan menyelidikinya di sini. Ia cukup untuk memahami mekanisme ujian belakang peringkat simulasi. Mengetahui prinsip ini, kita perlu memberi perhatian kepada kelemahan ujian belakang peringkat simulasi, walaupun ujian belakang peringkat simulasi adalah sangat pantas (kerana harga yang dijana oleh simulasi bukanlah harga sebenar yang dikeluarkan satu per satu saat demi saat). Tetapi jika strateginya sesuaiTrend perubahan kutu simulasiIni akan menjadikan strategi berprestasi sangat baik (tetapi dalam situasi sebenar harga mungkin tidak bergerak dengan cara ini, walaupun harga berada dalam rangka kerja lajur K-line ini). Garis K yang digunakan untuk menjana data tick simulasi dipanggil garis K yang mendasari, dan tempoh garisan K ini dipanggilKitaran K-line bawah, tetapkannya seperti yang ditunjukkan dalam halaman tetapan dasar:
Tetapan 1 minit di sini bermakna data K-line dengan tempoh 1 minit digunakan sebagai sumber data untuk menjana tick simulasi.
Perkara lain ialah untuk strategi frekuensi tinggi, jelas sekali tidak sesuai untuk menggunakan ujian belakang peringkat simulasi. Walau bagaimanapun, untuk strategi aliran, menggunakan ujian belakang peringkat simulasi masih boleh mencerminkan prestasi strategi pada tahap tertentu.

Dari manakah datangnya data untuk sistem ujian balik Platform Dagangan Kuantitatif Pencipta? Sistem ujian belakang menggunakan data daripada pusat data platform FMZ secara lalai Pusat data platform FMZ secara automatik mengumpul data pasaran setiap mata wang dari setiap pertukaran dan memberikannya kepada sistem ujian belakang pada platform.

Terdapat juga beberapa arahan dalam dokumentasi API FMZ tentang sumber data tersuai: https://www.fmz.com/api#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90
Terdapat juga beberapa penyelesaian dalam perpustakaan FMZ:

Newbie yang berminat boleh mengkaji dan merujuknya.
Perdagangan terprogram dan kuantitatif tidak dapat dipisahkanbelajar、ujian、fikir。 Anda tidak boleh memikirkan masalah dalam vakum, itu akan menjadi tidak cekap. Cara paling berkesan untuk menyelesaikan dan memikirkan masalah ialahCari maklumat, KemudianCubalah sendiri、Analisis PemikiranJika masalah tidak diselesaikan, sila ulangi langkah di atas.
Tetapi biasanya apabila seorang pemula menghadapi masalah, mereka merasakan:
“Oh~ Pengaturcaraan, kuantifikasi dan penulisan strategi terlalu sukar.” “Saya sudah lama melihatnya, tetapi saya masih keliru!” “Saya belum bermula dan saya mahu berputus asa!” ….
Ia sebenarnya sangat mudah untuk bermula di platform FMZ Pertama sekali, anda perlu pandai mencari maklumat. Terdapat banyak maklumat yang tersedia untuk rujukan dalam Plaza Strategi Platform Dagangan Kuantitatif Pencipta, Komuniti dan Perpustakaan.

Kemudian terdapat keupayaan praktikal Menggunakan sistem ujian belakang dan alat penyahpepijatan boleh memudahkan ujian Ini tidak bermakna menguji strategi yang lengkap. Malah, jika anda sama sekali tidak mempunyai pengetahuan asas, anda juga boleh mempelajari asas pengaturcaraan JavaScript pada sistem ujian belakang kuantitatif FMZ.
Ini adalah laman web tutorial tempat saya sering belajar JS: https://www.runoob.com/js/js-loop-for.html Ia tidak terhad kepada JS, semua jenis pengetahuan IT boleh dicari dan dipelajari di sini. Sebagai contoh, saya tidak tahu cara menggunakan ungkapan biasa JS, apakah yang perlu saya lakukan? Sudah tentu, semak maklumat dahulu, dan kemudian cuba ~
Saya melihat contoh seperti ini:
Saya ingin mengujinya, dan saya juga boleh menggunakan sistem ujian belakang platform FMZ untuk menguji dan belajar.
Sediakan pertukaran secara rawak pada sistem backtest

Uji kod berikut:
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
function main() {
var strEmailAddress1 = "13512345678"
Log(strEmailAddress1, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "[email protected]"
Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress2))
}

Lihatlah~ alat pembelajaran yang hebat! Sebagai contoh, saya ingin belajar cara menulis logik gelung dalam bahasa JavaScript, jadi saya mencubanya:
Gelung melalui elemen pembolehubah tatasusunan dalam susunan ia muncul dalam tatasusunan:
function main() {
var arr = [{coinName: "BTC", price: 10000}, {coinName: "LTC", price: 100}, {coinName: "ETH", price: 2000}, {coinName: "ETC", price: 500}]
for (var i = 0 ; i < arr.length ; i++) {
Log(arr[i])
}
}

Adakah anda berasa bermotivasi untuk belajar serta-merta? Malah, di FMZ, anda boleh menonton tutorial JavaScript sambil mempelajari asas JavaScript pada sistem ujian belakang. Sintaks JavaScript hampir dikuasai Untuk memasuki peringkat seterusnya, anda perlu menggunakan antara muka pertukaran untuk mendapatkan data untuk ujian Anda juga boleh menggunakan platform FMZAlat PenyahpepijatanLakukan ujian antara muka sebenar.
Kemudian anda perlu berfikir lebih lanjut, membuat kesimpulan daripada satu contoh, menguji dan mengesahkan, membandingkan dan menganalisis, dsb. Dengan cara ini anda boleh bermula dengan cepat.