Sumber daya yang dimuat... Pemuatan...

Cryptocurrency Quantitative Trading for Beginners - Membawa Anda Lebih Dekat dengan Cryptocurrency Quantitative (3)

Penulis:FMZ~Lydia, Dibuat: 2022-07-29 09:37:22, Diperbarui: 2024-12-04 21:38:15

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Cryptocurrency Quantitative Trading for Beginners - Membawa Anda Lebih Dekat dengan Cryptocurrency Quantitative (3)

Pesan kesalahan

Dalam artikel sebelumnya, kita telah belajar bahwa yang disebut programmatic dan kuantitative trading adalah program skrip berdasarkan data yang diperoleh dari bursa melalui serangkaian perhitungan, penilaian, dan pemicu untuk melakukan beberapa operasi, dan mengoperasikan akun bursa untuk berdagang. Tindakan ini memperoleh data dan operasi akun semua dilakukan melalui antarmuka API bursa. Sederhananya, program skrip berinteraksi dengan bursa. Karena ini adalah interaksi, harus ada interaksi normal dan interaksi abnormal. Ketika interaksi abnormal terjadi, antarmuka mengembalikan pesan pengecualian.

Tentu saja, ada semua jenis perintah kesalahan dan pesan kesalahan dalam sistem perdagangan programmatic dan kuantitatif di pasar, atau dalam program yang dikembangkan oleh diri kita sendiri. Pesan kesalahan ini tidak terbatas pada pesan kesalahan yang dilaporkan oleh antarmuka API pertukaran. Ada juga kesalahan pengecualian program runtime, kesalahan konfigurasi, kesalahan tata bahasa program dan sebagainya.

Pesan kesalahan di Platform Perdagangan Kuantitatif FMZ juga terbagi dalam beberapa kategori:

  • Kesalahan tata bahasa strategi Jenis kesalahan ini adalah yang paling umum, karena pemula tidak terbiasa dengan pemrograman, dan ada kesalahan tata bahasa dalam menulis kode selama tahap pembelajaran dan pengujian.

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Kode ini telah melewatkan karakter seperti tanda kurung. Kesalahan tersebut biasanya dapat dilihat pada halaman pengeditan strategi, dan strategi tidak dapat dijalankan (kesalahan akan dilaporkan langsung pada saat runtime, seperti yang ditunjukkan pada gambar di bawah ini).

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)Jadi setelah menulis strategi, lihatlah halaman pengeditan strategi platform untuk melihat apakah ada XX merah, jika demikian, pasti ada kesalahan yang jelas.

  • Pengecualian program runtime yang disebabkan oleh program strategi BUG Ada bug dalam program. Saat program berjalan, memicu pengecualian akan menyebabkan program berhenti secara abnormal dan menampilkan pesan kesalahan tersebut.

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Kesalahan seperti itu akan menyebabkan program menjadi abnormal dan program akan berhenti berjalan.

  • Kesalahan yang disebabkan oleh konfigurasi dan pengaturan yang tidak benar

Di platform FMZ, pasangan perdagangan didefinisikan secara seragam dalam formatX_Y, di mana X mewakili nama mata uang perdagangan, dan Y mewakili nama mata uang denominasi (mata uang denominasi pasangan perdagangan kontrak berjangka berbasis mata uang biasanya dinyatakan dalam USD, seperti yang dijelaskan dalam artikel sebelumnya), sepertiBTC_USDT, jika saya menulis pasangan perdagangan secara acak, menulisnya sebagaiBTC-USDT.

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Sebuah kesalahan dilaporkan pada sistem backtesting platform FMZ:

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Selain itu, kesalahan yang sering dialami pemula:

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Jenis kesalahan ini disebabkan oleh modifikasi kata sandi di akun platform FMZ, yang mengakibatkan pembatalanAPI KEYdalam objek pertukaran yang dikonfigurasi (API KEY pengguna dikonfigurasi di platform FMZ setelah dienkripsi di browser), dan strategi tidak dapat dimulai, sehingga kesalahan dilaporkan.

  • Kesalahan dilaporkan dalam panggilan antarmuka

Kesalahan panggilan antarmuka sering terjadi saat menjalankan strategi.antarmuka yang menghasilkan permintaan jaringandanantarmuka yang tidak menghasilkan permintaan jaringan. Kesalahan antarmuka tidak akan menyebabkan program strategi berhenti, biasanya karena pengecualian panggilan antarmuka dan data yang salah dikembalikan, strategi tidak membuat toleransi kesalahan, dan kesalahan pengecualian program yang disebabkan oleh data yang salah menyebabkan program berhenti (konsep toleransi kesalahan yang disebutkan dalam artikel sebelumnya).

Berikut adalah beberapa pesan kesalahan antarmuka yang menghasilkan permintaan jaringan:

  • Jangka waktu jaringan

    Salah satu pesan kesalahan yang sering ditemui oleh pemula adalah penggunaan peralatan jaringan domestik (komputer mereka sendiri atau server domestik).

  • Kesalahan http 429

    Salah satu pesan kesalahan klasik adalah bahwa antarmuka pertukaran dipanggil terlalu sering, melebihi batas frekuensi pertukaran (dicatat dalam artikel sebelumnya). Beberapa pemula mungkin mengatakan bahwa saya ingin mengajukan permohonan untukAPI KEYkita perlu tahu bahwa frekuensi batas akses antarmuka oleh pertukaran biasanya didasarkan pada alamat IP. dengan kata sederhana, selama semua permintaan yang dikirim ke alamat IP dihitung pada alamat IP ini, server pertukaran akan menolak akses jika permintaan melebihi batas.

  • Pelaporan kesalahan pada bisnis antarmuka pertukaran

    Timeout dan 429 yang disebutkan di atas adalah kesalahan jaringan. Jika ada masalah pada bisnis antarmuka pertukaran, kesalahan juga akan dilaporkan. Misalnya, jika saya ingin mendapatkan harga pasar spot, tetapi saya mengatur pasangan perdagangan yang tidak ada. Saya mengujinya di alat debugging platform FMZ, alat debugging adalah alat pengujian yang sangat nyaman, yang sangat cocok untuk pengujian bot nyata panggilan fungsi dan akuisisi data.

    Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

    Hasil eksekusi alat debugging, tidak ada perbedaan antara eksekusi alat debugging dan eksekusi bot nyata.

    Huobi	error	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}
    

    Pesan kesalahan di sini berarti bahwa pasangan perdagangan tidak valid (seperti yang terlihat di sini)"err-msg":"invalid symbol")). Misalnya, ada banyak kesalahan terkait bisnis, seperti pengaturan leverage ketika beberapa bursa tidak mendukung nilai leverage dengan bagian desimal, pada saat ini, jika nilai leverage memiliki bagian desimal, itu juga akan menyebabkan kesalahan dalam panggilan antarmuka.

Daftar panggilan antarmuka yang tidak menghasilkan permintaan jaringan

  • Kode kontrak berjangka Beberapa antarmuka hanya mengatur beberapa variabel global dalam sistem dan tidak menghasilkan permintaan jaringan, misalnya:

    Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

    Namun, jika parameter dilewatkan dengan salah atau digarisbawahi, kesalahan akan dilaporkan.

    Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Tapi terlepas dari jenis kesalahan, pesan kesalahan yang ditampilkan adalah informasi kunci untuk menemukan masalah, dan masalah biasanya dapat dilihat dari pesan kesalahan. Anda dapat menggunakan alat terjemahan untuk menerjemahkan pesan kesalahan dan mengekstrak informasi kunci."err-msg":"invalid symbol"In the above example, the translation is: err msg: simbol tidak valid . It is probably known that the trading pair is set incorrectly, because English symbols are usually used to represent the trading code and trading pair. For common problems, there is a post that will continue to be collected for query: Untuk masalah umum, ada posting yang akan terus dikumpulkan untuk kueri:https://www.fmz.com/bbs-topic/9158

Sistem pengujian balik

Sistem backtesting juga menjadi fokus dari alat kuantitatif. Sistem backtesting dapat menguji prototipe strategi dengan mudah, bug potensial dan masalah logis dalam strategi uji awal. Sistem backtesting perlu dilihat secara rasional. Sistem backtesting dapat mencerminkan beberapa masalah strategi sampai batas tertentu.

Berikut ini adalah deskripsi singkat dari sistem backtesting pada platform FMZ dari tingkat bahasa strategi yang berbeda yang didukung oleh FMZ. (Beberapa pengenalan sistem backtesting disebutkan dalam artikel sebelumnya)

  • JavaScript

Backtesting di browser menggunakan sumber daya hardware asli.

  • Python

Ketika melakukan backtesting pada docker, Anda dapat memilih docker mana yang akan ditugaskan (baik docker yang digunakan oleh diri Anda sendiri, atau docker publik pada platform FMZ). Mengingat beban besar custodian publik pada platform FMZ, disarankan untuk menggunakan docker lokal untuk backtesting (ini juga akan cepat, ketika docker publik melakukan backtesting, jika tugas melebihi beban, beberapa tugas backtesting akan dibatalkan, mengakibatkan gangguan backtesting).

  • C++

Tidak seperti bahasa skrip, strategi bahasa C++ perlu dikompilasi dan kemudian dieksekusi. Strategi bahasa C++ akan dikompilasi terlebih dahulu di platform FMZ (server) (jika ada masalah dengan kode, kompilasi mungkin tidak lulus, dan pesan kesalahan akan muncul langsung). Setelah kompilasi dilewati, itu akan diuji kembali di platform FMZ (server).

  • MyLanguage

Implementasi yang mendasari adalah JavaScript, dan backtesting juga dilakukan di browser.

  • Visualisasi

Implementasi yang mendasari adalah JavaScript, dan backtesting juga dilakukan di browser.

Sistem backtesting di Platform Perdagangan Kuantum FMZ dibagi menjadi dua mode backtesting (ini terlepas dari bahasa strategi, ini adalah pengaturan backtesting, dan backtesting strategi dalam semua bahasa adalah sama).

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

  • 1. backtesting tingkat simulasi Dalam istilah awam yang sederhana, backtesting tingkat simulasi mengacu pada data harga dari setiap node waktu yang disimulasikan dan dihasilkan sesuai dengan data K-line.
  A bar in the K-line opens high and closes low, which constitutes a price framework, within which the prices are all in this price frame, so as long as the generated price opens high and closes low in this K-line frame within the range, the simulated price is reasonable.

Ini seperti simulasi seperti ini:https://www.fmz.comPerdagangan Kuantitatif untuk Pemula - Membawa Anda Lebih Dekat dengan Cryptocurrency Kuantitatif (3)](/upload/asset//35c54e14e29601352720d51f75e2d7674415f92e.png) Tentu saja, ketika sistem backtesting yang sebenarnya menerapkan simulasi ini, situasinya sedikit lebih rumit daripada yang ditunjukkan pada gambar. Mengetahui prinsip ini, penting untuk mencatat kelemahan backtesting tingkat simulasi, meskipun backtesting tingkat simulasi sangat cepat (karena harga yang dihasilkan oleh simulasi bukan harga nyata detik per detik yang dirilis satu per satu).tren gerakan kutu simulasi, strategi akan bekerja dengan sangat baik (tapi pada kenyataannya, harga mungkin tidak tren ini, meskipun harga berada dalam kerangka garis K ini). Garis K yang digunakan untuk menghasilkan data tick simulasi di sini disebut garis K bawah, dan periode garis K ini disebutperiode garis K bawah, yang ditetapkan seperti yang ditunjukkan pada halaman pengaturan strategi:

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)Pengaturan 1 menit di sini berarti bahwa data garis K dengan periode 1 menit digunakan sebagai sumber data untuk menghasilkan tik simulasi.

Titik lain adalah bahwa untuk strategi frekuensi tinggi, jelas tidak tepat untuk menggunakan backtesting tingkat simulasi. Namun, untuk strategi tren, penggunaan backtesting tingkat simulasi masih dapat mencerminkan kinerja strategi sampai batas tertentu.

  • 2. backtesting tingkat bot nyata Setelah berbicara tentang backtesting tingkat simulasi, mari kita bicara tentang backtesting tingkat bot nyata. Sederhananya, backtesting pada tingkat bot nyata adalah rilis data harga setiap detik selama backtesting. Ini memungkinkan strategi untuk melacak kembali harga per detik pasar. Mode backtesting ini memungkinkan Anda untuk backtest strategi dengan frekuensi perdagangan yang tinggi dan mendapatkan tingkat nilai referensi tertentu. Kelemahannya adalah bahwa jumlah data backtesting pada tingkat bot nyata terlalu besar untuk backtesting dalam rentang waktu yang besar (waktu biasanya kurang dari 1 hari).data terbagi(transaksi data tik-by-tik, dan data kedalaman pasar juga memiliki snapshot detik-demi-detik dalam backtesting bot nyata, sehingga jumlah data backtesting bot nyata sangat besar) untuk meningkatkan rentang backtesting dengan tepat, seperti yang ditunjukkan dalam gambar:

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Di mana sumber data dari sistem backtesting FMZ Quant Trading Platform? Sistem backtesting menggunakan data dari pusat data platform FMZ secara default. Pusat data platform FMZ mengumpulkan data pasar yang ditetapkan dari setiap mata uang dari setiap bursa secara otomatis dan memasoknya ke sistem backtesting di platform.

    1. Gunakan data dari pusat data FMZ secara default Seperti yang disebutkan dalam artikel-artikel sebelumnya:https://www.fmz.com/bbs-topic/9536Data backtesting yang disediakan oleh platform hanya mendukung sejumlah pasangan perdagangan yang terbatas (data backtesting dari seluruh pasar dan semua mata uang adalah angka astronomi, dan tidak realistis untuk mengumpulkan semuanya.
    1. Gunakan data sumber data khusus Anda dapat menggunakan opsi pada halaman backtesting untuk mengatur sumber data kustom. Sederhananya, jika Anda memiliki data dari pertukaran, Anda dapat memasoknya ke sistem backtesting platform FMZ untuk backtesting sesuai dengan persyaratan format di platform FMZ.

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Ada juga beberapa catatan tentang sumber data kustom dalam dokumentasi FMZ API:https://www.fmz.com/api#custom-data-source

Belajar, menguji, berpikir

Anda tidak bisa melakukan programmatic dan kuantitative trading tanpabelajar, pengujian, danberpikirAku tidak tahu. Berpikir tentang masalah tidak bisa dipikirkan sia-sia, itu tidak efisien.menemukan informasi, makaCobalah, berpikir dan menganalisis, jika masalah tidak teratasi, silakan ulangi tindakan di atas.

Tetapi, ketika seorang pemula menghadapi masalah, ia akan merasa:

Oops~ itu terlalu sulit untuk memprogram, mengukur, dan menulis strategi . Setelah menontonnya untuk waktu yang lama, aku masih tercengang! Aku ingin menyerah sebelum aku mulai! ....

Memulai di platform FMZ sangat sederhana sebenarnya. Pertama-tama, Anda harus pandai mencari informasi. Ada banyak informasi yang tersedia di kotak strategi, komunitas dan perpustakaan FMZ Quant Trading Platform.

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Yang kedua adalah kemampuan hands-on, yang dapat dengan mudah diuji dengan menggunakan sistem backtesting dan alat debugging. Ini tidak berarti menguji strategi lengkap. Bahkan, Anda bahkan dapat mempelajari dasar-dasar program JavaScript pada sistem backtesting FMZ Quant jika Anda benar-benar dasar.

Ini adalah situs web tutorial di mana saya sering belajar JS:https://www.runoob.com/js/js-loop-for.html, tidak terbatas pada JS, semua jenis pengetahuan IT dapat ditanyakan dan dipelajari di sini. Misalnya, saya tidak tahu cara menggunakan ekspresi reguler dari JS, apa yang harus saya lakukan? Tentu saja, mencari informasi pertama, dan kemudian mencoba untuk melakukannya ~

Aku melihat contoh ini:Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)Saya ingin mengujinya, dan saya bisa menggunakan sistem backtesting dari platform FMZ untuk menguji dan belajar.

Atur pertukaran acak pada sistem backtestingCryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Uji kode 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, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress1))
    
    var strEmailAddress2 = "123456789@qq.com"
    Log(strEmailAddress2, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress2))
}

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Lihat ~ apa alat pembelajaran! Sebagai contoh, saya ingin belajar bagaimana menulis logika loop dari bahasa JavaScript, dan mencobanya:

Loop melalui elemen dari variabel array dalam urutan di mana mereka muncul di array:

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])
    }
}

Cryptocurrency Quantitative Trading for Beginners - Taking You Closer to Cryptocurrency Quantitative (3)

Apakah Anda merasa termotivasi untuk belajar dalam sekejap? Bahkan, di FMZ, Anda dapat mempelajari dasar-dasar JavaScript pada sistem backtesting sambil menonton tutorial JavaScript. Grammar JavaScript hampir dikuasai, dan memasuki tahap berikutnya, Anda perlu menggunakan antarmuka pertukaran untuk mendapatkan pengujian data. Anda juga dapat menggunakanalat debuggingdari platform FMZ untuk melakukan pengujian antarmuka nyata.

Kemudian adalah untuk berpikir lebih banyak, menarik kesimpulan dari satu kasus, verifikasi tes, analisis komparatif, dll. Ini membuat belajar untuk memulai sangat cepat.


Artikel terkait

Informasi lebih lanjut