Dalam bab 1 dan 2, kita belajar dasar-dasar perdagangan kuantitatif dan penggunaan alat FMZ Quant. Dalam bab ini, kita akan menerapkan strategi perdagangan yang sebenarnya. Jika seorang pekerja ingin melakukan sesuatu yang baik, dia harus terlebih dahulu mengasah alatnya. Untuk menerapkan strategi perdagangan, Anda harus terlebih dahulu menguasai bahasa pemrograman. Bagian ini pertama kali memperkenalkan bahasa pemrograman arus utama dalam perdagangan kuantitatif, serta karakteristik setiap bahasa pemrograman itu sendiri.
Sebelum mempelajari bahasa pemrograman, Anda harus terlebih dahulu memahami konsep
Seperti orang tua yang mengajarkan kita untuk berbicara dan mengajarkan kita bagaimana memahami apa yang dikatakan orang lain. Setelah periode panjang pendidikan dan belajar sendiri, kita telah belajar berbicara tanpa menyadarinya, dan dapat memahami arti dari anak lain yang berbicara. Ada banyak bahasa, termasuk Cina, Inggris, Prancis, dll.
Bahasa Cina: Hai Dunia
Bahasa Inggris: Hello World
Bahasa Prancis: Bonjour tout le monde
Jika Anda menggunakan bahasa pemrograman untuk menampilkan
Bahasa C: Puts (
Bahasa Java: System.out.println ((
Bahasa Python: print (Hello World)
Anda dapat melihat bahwa bahasa komputer memiliki aturan spesifiknya sendiri, dan ada banyak bahasa, dan aturan bahasa ini adalah klasifikasi bahasa pemrograman yang perlu kita jelaskan untuk Anda hari ini. Dalam setiap kategori, kita hanya perlu mengingat aturan yang paling dasar. Kita dapat menggunakan bahasa pemrograman ini untuk berkomunikasi dengan komputer dan membiarkan komputer menjalankan strategi yang sesuai sesuai dengan instruksi kita.
Untuk memudahkan referensi dan perbandingan, pilih bahasa pemrograman perdagangan kuantitatif yang sesuai dengan Anda. Kami akan mengkategorikan enam bahasa pemrograman yang paling umum digunakan: Python, Matlab / R, C ++, Java / C #, EasyLanguage, dan Visual Programming Language (Seperti yang ditunjukkan di bawah).
Kami menilai mereka berdasarkan kemampuan fungsional, kecepatan, ekstensi dan kesulitan belajar. Skor dari 1 hingga 5, misalnya, skor 5 pada kisaran fungsional berarti kuat, dan 1 poin berarti kurang fungsionalitas. (Seperti yang ditunjukkan di atas) Pemrograman Visual dan EasyLanguage mudah dipelajari dan sangat baru; Python memiliki kemampuan ekstensi yang kuat dan cocok untuk mengembangkan strategi perdagangan yang lebih kompleks; Pemrograman C ++ adalah yang tercepat dan lebih cocok untuk pedagang frekuensi tinggi.
Tapi untuk setiap bahasa pemrograman, evaluasi terutama untuk aplikasi di bidang perdagangan kuantitatif. dan dengan komponen subjektif individu. Anda juga dipersilakan untuk mengeksplorasi mereka sendiri, Selanjutnya, kita akan mulai memperkenalkan bahasa pemrograman ini satu per satu.
Pemrograman visual telah ada untuk waktu yang lama, jenis ini "apa yang Anda lihat adalah apa yang Anda dapatkan" ide pemrograman, dilengkapi dengan berbagai modul kontrol, hanya dengan drag and drop, Anda dapat membangun logika kode, menyelesaikan desain strategi perdagangan, prosesnya seperti blok bangunan.
Seperti yang ditunjukkan di atas, prosedur yang sama hanya beberapa baris kode pada pemrograman visual platform perdagangan FMZ Quant. Ini sangat mengurangi ambang pemrograman, terutama bagi pedagang yang tidak mengerti pemrograman sama sekali, yang merupakan pengalaman operasi yang hebat.
Karena strategi implementasi yang mendasari pemrograman visual ini dikonversi ke C ++, hal ini memiliki sedikit efek pada kecepatan menjalankan program. Namun, fungsionalitas dan skalabilitasnya lemah, dan tidak mungkin untuk mengembangkan strategi perdagangan yang terlalu rumit dan terlalu halus.
Bahasa yang disebut EasyLanguage mengacu pada bahasa pemrograman yang unik untuk beberapa perangkat lunak perdagangan kuantitatif yang dikomersialkan. Meskipun bahasa-bahasa ini juga memiliki beberapa fitur berorientasi objek, mereka terutama ditulis dalam aplikasi. Dalam hal tata bahasa, ini juga sangat dekat dengan bahasa alami kita. Untuk pemula perdagangan kuantitatif, menggunakan EasyLanguage sebagai titik awal adalah pilihan yang baik.
Bahasa skrip ini tidak memiliki masalah dalam backtesting strategi dan pasar nyata dalam perangkat lunak spesifiknya, tetapi dalam hal ekspansi, seringkali terbatas. Misalnya, pengembang strategi tidak dapat memanggil API eksternal.
Seperti yang ditunjukkan pada gambar di bawah, pada Stackoverflow, jumlah akses bahasa pemrograman arus utama tidak banyak berubah dalam beberapa tahun terakhir, dan hanya Python yang meningkat pesat. Python dapat digunakan untuk pengembangan web, pembelajaran mesin, pembelajaran mendalam, analisis data, dll. Ini telah menjadi bahasa yang paling serbaguna karena fleksibilitas dan keterbukaannya. Hal yang sama berlaku di bidang investasi kuantitatif.
Daftar dan kamus struktur data dasar Python sangat kuat dan dapat memenuhi hampir semua kebutuhan analisis data. Jika Anda membutuhkan struktur data yang lebih cepat dan lebih komprehensif, NumPy dan SciPy dianjurkan.
Untuk rekayasa keuangan, perpustakaan yang lebih ditargetkan adalah Pandas, dengan dua struktur data, Seri dan DataFrame, yang ideal untuk memproses seri waktu.
Dari segi kecepatan, Python berada di tengah permainan, lebih lambat dari C++, dan lebih cepat dari EasyLanguage, terutama karena Python adalah bahasa dinamis yang berjalan pada kecepatan normal sebagai bahasa Python murni.
Sebagai bahasa lem, Python adalah nomor satu dalam hal skalabilitas. Selain dapat berinteraksi dengan bahasa lain secara luas, desain API ekstensi sangat mudah digunakan. Dalam hal kesulitan belajar, Python memiliki sintaksis yang sederhana, keterbacaan kode yang tinggi, dan mudah masuk.
Kemudian ada Matlab dan bahasa R. Kedua bahasa ini terutama berorientasi pada analisis data. Pencipta bahasa telah melakukan banyak desain untuk operasi ilmiah dalam tata bahasa, yang ditandai dengan dukungan alami untuk operasi perdagangan kuantitatif. Namun, jangkauan aplikasi terbatas, dan umumnya digunakan untuk analisis data dan backtesting strategi. Untuk pengembangan sistem perdagangan dan algoritma strategi, kemudahan penggunaannya dan stabilitasnya kurang.
Selain itu, kecepatan dan skalabilitas mereka relatif buruk, karena bahasa Matlab dan R berjalan pada mesin virtual bahasa yang unik. Dalam hal kinerja, mesin virtual mereka jauh lebih buruk daripada Java dan C #. Tapi karena tata bahasanya lebih dekat dengan rumus ekspresi matematika, itu relatif mudah untuk belajar.
C++ adalah bahasa pemrograman tujuan umum yang mendukung beberapa pola pemrograman seperti pemrograman prosedural, abstraksi data, pemrograman berorientasi objek, pemrograman generik, dan pola desain.
Saat ini, C++ masih menjadi bahasa pemrograman yang disukai untuk perdagangan kapasitas tinggi dan frekuensi tinggi. Alasannya sederhana. Karena fitur bahasa C++ lebih mudah diakses lapisan dasar komputer, ini adalah alat yang paling efektif untuk mengembangkan sistem backtesting dan eksekusi berkinerja tinggi yang memproses sejumlah besar data.
Java/C# adalah bahasa statis yang berjalan pada mesin virtual. Dibandingkan dengan C++, tidak ada array out of bounds, tidak ada coredump, pengecualian yang dilemparkan dapat dengan akurat menemukan kode kesalahan, membawa mekanisme pengumpulan sampah otomatis, tidak perlu khawatir tentang kebocoran memori dan sebagainya. Jadi dalam hal kesulitan belajar tata bahasa, mereka juga lebih mudah daripada C++. Dalam hal kecepatan, karena mesin virtual mereka dilengkapi dengan fungsi JIT yang dikompilasi pada saat runtime, kecepatannya hanya berada di urutan kedua setelah C++.
Tapi dalam hal fungsionalitas, tidak mungkin untuk mengoptimalkan sistem perdagangan yang mendasari seperti C ++. Dalam hal kinerja ekspansi, itu lebih lemah dari C ++, karena ekstensi mereka perlu melewati jembatan C, dan kedua bahasa itu sendiri berjalan pada mesin virtual, jadi ketika memperluas modul fungsi, Anda perlu melintasi satu lagi dinding Layer.
Namun, pada akhirnya, bahasa pemrograman kuantitatif tidak penting, yang penting adalah idenya. bahasa FMZ Quant M dan bahasa pemrograman visual sama sekali tidak masalah sebagai batu loncatan untuk masuk ke perdagangan kuantitatif. setelah dasar, perbaikan adalah untuk terus menerus mengeksplorasi kondisi pasar yang berbeda dan mencoba menggunakan bahasa yang lebih mendasar, seperti C ++.
Apa keuntungan dari bahasa Python sebagai alat perdagangan kuantitatif?
Mencoba menulis beberapa API yang umum digunakan dengan bahasa M?
Pemberitahuan bagian berikutnya
Saya percaya bahwa dengan pengantar di atas untuk bahasa pemrograman, Anda harus tahu bagaimana memilihnya, maka dalam beberapa bab berikutnya, kita akan mengembangkan strategi perdagangan kuantitatif berdasarkan klasifikasi bahasa pemrograman.