Sumber dimuat naik... memuat...

3.1 Penilaian bahasa pengaturcaraan perdagangan kuantitatif

Penulis:Kebaikan, Dicipta: 2019-04-18 15:03:37, Dikemas kini: 2019-04-27 11:54:49

Ringkasan

Dalam Bab 1 dan 2, kita belajar asas-asas perdagangan kuantitatif dan penggunaan alat FMZ Quant. Dalam bab ini, kita akan melaksanakan strategi perdagangan sebenar. Jika seorang pekerja ingin melakukan sesuatu yang baik, dia mesti terlebih dahulu mengasah alatnya. Untuk melaksanakan strategi perdagangan, anda mesti terlebih dahulu menguasai bahasa pengaturcaraan. Bahagian ini pertama memperkenalkan bahasa pengaturcaraan arus perdana dalam perdagangan kuantitatif, serta ciri-ciri setiap bahasa pengaturcaraan itu sendiri.

Apakah bahasa pengaturcaraan?

Sebelum belajar bahasa pengaturcaraan, anda mesti terlebih dahulu memahami konsep bahasa pengaturcaraan. Bahasa pengaturcaraan adalah bahasa yang dapat difahami oleh manusia dan komputer. Ia adalah kod komunikasi yang standard. Tujuan bahasa pengaturcaraan adalah untuk menggunakan bahasa manusia untuk mengawal komputer dan memberitahu komputer apa yang akan kita lakukan. Komputer boleh melaksanakan arahan mengikut bahasa pengaturcaraan, dan kita juga boleh menulis kod untuk mengeluarkan arahan kepada komputer.

Sama seperti ibu bapa mengajar kita untuk bercakap dan mengajar kita bagaimana memahami apa yang dikatakan orang lain. Selepas tempoh yang lama pembinaan dan pembelajaran diri, kita telah belajar untuk bercakap tanpa mengetahuinya, dan dapat memahami makna anak-anak lain yang bercakap. Terdapat banyak bahasa, termasuk Cina, Inggeris, Perancis, dan lain-lain seperti:

  • Cina: Hai dunia

  • Bahasa Inggeris: Hello World

  • Bahasa Perancis: Bonjour tout le monde

Jika anda menggunakan bahasa pengaturcaraan untuk memaparkan Hello World pada skrin komputer anda, ini adalah kes:

  • Bahasa C: meletakkan (Hello World);

  • Bahasa Java: System.out.println ((Hello World);

  • Bahasa Python: print (Hello World)

Anda dapat melihat bahawa bahasa komputer mempunyai peraturan khusus mereka sendiri, dan terdapat banyak bahasa, dan peraturan bahasa ini adalah klasifikasi bahasa pengaturcaraan yang perlu kita jelaskan kepada anda hari ini. Dalam setiap kategori, kita hanya perlu ingat peraturan yang paling asas. Kita boleh menggunakan bahasa pengaturcaraan ini untuk berkomunikasi dengan komputer dan membiarkan komputer menjalankan strategi yang sesuai mengikut arahan kita.

Klasifikasi bahasa pengaturcaraan

Untuk memudahkan rujukan dan perbandingan, pilih bahasa pengaturcaraan perdagangan kuantitatif yang sesuai dengan anda.

img

Kami menilai mereka berdasarkan keupayaan fungsional, kelajuan, pengembangan dan kesukaran pembelajaran. Skor dari 1 hingga 5, contohnya, skor 5 pada julat fungsional bermaksud berkuasa, dan 1 mata bermaksud kurang fungsi. (Seperti yang ditunjukkan di atas) Pengaturcaraan Visual dan EasyLanguage mudah dipelajari dan sangat baru; Python mempunyai keupayaan pengembangan yang kuat dan sesuai untuk membangunkan strategi perdagangan yang lebih kompleks; Pengaturcaraan C ++ adalah yang paling cepat dan lebih sesuai untuk pedagang frekuensi tinggi.

Tetapi untuk setiap bahasa pengaturcaraan, penilaian adalah terutamanya untuk aplikasi dalam bidang perdagangan kuantitatif. dan dengan komponen subjektif individu. anda juga dialu-alukan untuk meneroka mereka sendiri, Seterusnya, kita akan mula memperkenalkan bahasa pengaturcaraan ini satu demi satu.

Pengaturcaraan visual

Pengaturcaraan visual telah wujud untuk masa yang lama, jenis ini apa yang anda lihat adalah apa yang anda dapatkan idea pengaturcaraan, dilengkapi dengan pelbagai modul kawalan, hanya dengan drag and drop, anda boleh membina kod logik, melengkapkan reka bentuk strategi perdagangan, proses adalah seperti blok bangunan.

img img

Seperti yang ditunjukkan di atas, prosedur yang sama adalah hanya beberapa baris kod pada platform perdagangan FMZ Quant pengaturcaraan visual. Ini sangat mengurangkan ambang pengaturcaraan, terutamanya untuk peniaga yang tidak memahami pengaturcaraan sama sekali, yang merupakan pengalaman operasi yang hebat.

Oleh kerana strategi pelaksanaan asas pengaturcaraan visual ini ditukar ke C ++, ia mempunyai sedikit kesan terhadap kelajuan menjalankan program. Walau bagaimanapun, fungsi dan skalabiliti lemah, dan mustahil untuk membangunkan strategi perdagangan yang terlalu rumit dan terlalu halus.

EasyLanguage

img

Bahasa EasyLanguage merujuk kepada bahasa pengaturcaraan yang unik untuk beberapa perisian dagangan kuantitatif yang dikomersialkan. Walaupun bahasa ini juga mempunyai beberapa ciri berorientasikan objek, mereka terutama ditulis dalam aplikasi. Dari segi tatabahasa, ia juga sangat dekat dengan bahasa semula jadi kita. Bagi pemula perdagangan kuantitatif, menggunakan EasyLanguage sebagai titik permulaan adalah pilihan yang baik. Sebagai contoh, bahasa M pada platform FMZ Quant.

Bahasa skrip jenis ini tidak mempunyai masalah dalam pengujian strategi dan pasaran sebenar dalam perisian khususnya, tetapi dari segi pengembangan, ia sering terhad. Sebagai contoh, pemaju strategi tidak dapat memanggil API luaran. Dan pada kelajuan berjalan, bahasa skrip ini berjalan pada mesin maya sendiri, dan pengoptimuman prestasi sama baiknya dengan Java / C #.

Python

Seperti yang ditunjukkan dalam gambar di bawah, pada Stackoverflow, bilangan akses bahasa pengaturcaraan arus perdana tidak banyak berubah dalam beberapa tahun kebelakangan ini, dan hanya Python yang meningkat pesat. Python boleh digunakan untuk pembangunan web, pembelajaran mesin, pembelajaran mendalam, analisis data, dll. Ia telah menjadi bahasa yang paling serba boleh kerana fleksibiliti dan keterbukaannya.

img

Senarai dan kamus struktur data asas Python sangat berkuasa dan dapat memenuhi hampir semua keperluan analisis data. Jika anda memerlukan struktur data yang lebih cepat dan lebih komprehensif, NumPy dan SciPy disyorkan.

Untuk kejuruteraan kewangan, perpustakaan yang lebih disasarkan adalah Pandas, dengan dua struktur data, Siri dan DataFrame, yang sesuai untuk memproses siri masa.

Dari segi kelajuan, Python berada di tengah permainan, lebih perlahan daripada C ++, dan lebih cepat daripada EasyLanguage, terutamanya kerana Python adalah bahasa dinamik yang berjalan pada kelajuan normal sebagai bahasa Python tulen.

Sebagai bahasa gam, Python adalah nombor satu dari segi skalabiliti. Di samping dapat berhubung dengan bahasa lain secara meluas, reka bentuk API sambungan sangat mudah digunakan. Dari segi kesukaran pembelajaran, Python mempunyai sintaks yang mudah, kebolehan membaca kod yang tinggi, dan kemasukan yang mudah.

Matlab/R

Kemudian ada Matlab dan bahasa R. Kedua-dua bahasa ini terutamanya berorientasikan kepada analisis data. Pencipta bahasa telah melakukan banyak reka bentuk untuk operasi saintifik dalam tatabahasa, yang dicirikan oleh sokongan semula jadi untuk operasi perdagangan kuantitatif. Walau bagaimanapun, julat aplikasi adalah terhad, dan ia biasanya digunakan untuk analisis data dan backtesting strategi. Untuk sistem perdagangan dan pembangunan algoritma strategi, kemudahan penggunaannya dan kestabilan kurang.

Di samping itu, kelajuan dan skalabiliti mereka agak miskin, kerana bahasa Matlab dan R berjalan pada mesin maya bahasa yang unik. Dari segi prestasi, mesin maya mereka jauh lebih buruk daripada Java dan C #. Tetapi kerana tatabahasa mereka lebih dekat dengan formula ungkapan matematik, ia agak mudah dipelajari.

C++

C ++ adalah bahasa pengaturcaraan tujuan umum yang menyokong pelbagai corak pengaturcaraan seperti pengaturcaraan prosedur, abstraksi data, pengaturcaraan berorientasikan objek, pengaturcaraan generik, dan corak reka bentuk.

Pada masa ini, C ++ masih merupakan bahasa pengaturcaraan yang lebih disukai untuk perdagangan berkapasiti tinggi, frekuensi tinggi. Alasannya mudah. Kerana ciri bahasa C ++ lebih mudah untuk mengakses lapisan asas komputer, ia adalah alat yang paling berkesan untuk membangunkan sistem backtesting dan pelaksanaan berprestasi tinggi yang memproses sejumlah besar data.

Java/C#

Java / C # adalah bahasa statik yang berjalan pada mesin maya. Berbanding dengan C ++, tidak ada array di luar batas, tidak ada coredump, pengecualian yang dilemparkan dapat dengan tepat mencari kod ralat, membawa mekanisme pengumpulan sampah automatik, tidak perlu bimbang tentang kebocoran memori dan sebagainya. Jadi dari segi kesukaran pembelajaran tatabahasa, mereka juga lebih mudah daripada C ++. Dari segi kelajuan, kerana mesin maya mereka dilengkapi dengan fungsi JIT yang disusun pada masa berjalan, kelajuannya hanya kedua kepada C ++.

Tetapi dari segi fungsi, adalah mustahil untuk mengoptimumkan sistem perdagangan asas seperti C ++. Dari segi prestasi pengembangan, ia lebih lemah daripada C ++, kerana sambungan mereka perlu melewati jambatan C, dan kedua-dua bahasa itu sendiri berjalan di mesin maya, jadi apabila memperluaskan modul fungsi, anda perlu melintasi satu lagi dinding Lapisan.

Ringkasnya

Walau bagaimanapun, pada akhirnya, bahasa pengaturcaraan kuantitatif tidak penting, yang penting adalah idea. Bahasa FMZ Quant M dan bahasa pengaturcaraan visual sama sekali tidak masalah sebagai batu loncatan untuk memasuki perdagangan kuantitatif. Selepas asas, penambahbaikan adalah untuk terus menerus meneroka keadaan pasaran yang berbeza dan cuba menggunakan lebih banyak bahasa asas, seperti C ++.

Rancang strategi anda dan berdagang idea anda. Dari perspektif ini, teras perdagangan kuantitatif masih berdagang idea. Sebagai peniaga kuantitatif, anda bukan sahaja perlu menguasai tatabahasa asas dan fungsi platform penulisan strategi, tetapi juga perlu memahami konsep perdagangan dalam pertempuran sebenar. Perdagangan kuantitatif hanyalah alat dan pembawa untuk mewujudkan konsep perdagangan yang berbeza.

Latihan selepas sekolah

  1. Apakah kelebihan bahasa Python sebagai alat perdagangan kuantitatif?

  2. Cuba menulis beberapa API yang biasa digunakan dengan bahasa M?

Pengumuman Bahagian Seterusnya

Saya percaya bahawa dengan pengenalan di atas untuk bahasa pengaturcaraan, anda mesti tahu bagaimana untuk memilihnya, maka dalam beberapa bab seterusnya, kita akan membangunkan strategi perdagangan kuantitatif berdasarkan klasifikasi bahasa pengaturcaraan.


Lebih lanjut