Daftar isi
Bab 1 Dasar-dasar Perdagangan Kuantitatif
1.1 Apa itu perdagangan kuantitatif?
ringkasan
Perdagangan kuantitatif, sebagai produk kombinasi ilmu pengetahuan dan mesin, mengubah lanskap pasar keuangan modern. Kini banyak investor yang mengalihkan perhatiannya ke bidang ini. Bagaimana meminimalkan risiko dan memperoleh hasil semaksimal mungkin? Ini juga merupakan tujuan dari rangkaian kursus ini. Sebagai artikel pertama, kami akan menjelaskan secara singkat "Apa itu perdagangan kuantitatif".
Ringkasan
Ketika banyak orang mendengar istilah “perdagangan kuantitatif”, mereka menganggapnya sebagai bisnis mewah dan dapat membuat mereka kaya dalam semalam. Era kecerdasan buatan, yang disertai munculnya teknologi canggih seperti pembelajaran mendalam, data besar, dan komputasi awan, telah memberinya warna misterius. Tampaknya selama perdagangan kuantitatif digunakan, strategi perdagangan yang "sempurna" dapat dibangun.
Bahkan, sampai batas tertentu, perdagangan kuantitatif telah menjadi mitos. Selain perdagangan, "kuantifikasi" sebenarnya adalah penggunaan komputer, statistik, matematika, dan metode lain, melalui sistem investasi ilmiah, untuk menemukan serangkaian sistem sinyal perdagangan yang diharapkan. Sistem sinyal ini akan memberi tahu kita kapan dan pada harga berapa kita harus membeli dan menjual.
Perkembangan perdagangan kuantitatif
Kembali ke sumbernya, orang yang pertama kali menggunakan metode kuantitatif untuk menganalisis perubahan data dan menemukan pola fluktuasi harga pasar bukanlah orang Belanda, tempat lahirnya saham, atau orang Inggris yang mempromosikan keuangan modern, atau orang Amerika yang telah hidup berdampingan dengan keuangan sejak berdirinya negara tersebut, melainkan orang Prancis.
Sejak abad ke-18, Jules Regnault, asisten pialang saham Prancis, mengusulkan teori modern tentang perubahan harga saham. Ia kemudian menerbitkan buku "Probability Calculation and the Philosophy of Stock Trading", di mana ia menguraikan hukum naik turunnya pasar (distribusi normal). Ia menemukan: "Penyimpangan harga sebanding dengan akar kuadrat waktu", dan akhirnya mencapai keberhasilan perdagangan melalui keputusan investasi yang rasional dan kuantitatif.
Saat ini, di era Internet + data besar + komputasi awan + kecerdasan buatan, perdagangan kuantitatif juga berkembang pesat. Canary Wharf di London, yang pernah menjadi pusat keuangan global, telah lama menjadi pusat bagi perusahaan IT. Bank-bank investasi papan atas dunia juga mengembangkan tim kuantitatif mereka sendiri, mencoba bergabung dalam perang finansial "siapa pun yang mendapatkan model akan memenangkan dunia". Tim IT yang mengembangkan model perdagangan ini juga disebut Tim Kuantitatif. Dalam hal skala, Amerika Serikat, yang memulai lebih awal, sudah memiliki sejumlah besar dana lindung nilai kuantitatif yang kuat.
Sebaliknya, di Tiongkok, baik peralatan perangkat keras maupun kemampuan penelitian investasi masih dalam tahap awal. Namun, semakin banyak lembaga dan investor profesional yang menyadari manfaat perdagangan kuantitatif dan telah berpartisipasi dalam bidang ini. Terutama karena pengawasan menjadi semakin ketat dan efisiensi pasar secara bertahap membaik, perdagangan kuantitatif memiliki ruang yang lebih luas untuk berkembang.
Karakteristik perdagangan kuantitatif
Verifikasi ilmiah: Bayangkan jika Anda memiliki sistem perdagangan, jika Anda menggunakan sistem perdagangan simulasi untuk menguji efektivitasnya, itu akan menghabiskan banyak waktu. Jika Anda mengujinya secara langsung dengan sistem perdagangan nyata, Anda mungkin akan kehilangan uang sungguhan. Namun, fungsi pengujian ulang dalam perdagangan kuantitatif dapat digunakan untuk menguji sistem perdagangan secara ilmiah melalui sejumlah besar data historis. Biarkan data berbicara tentang apa yang berhasil dan apa yang tidak, daripada hanya mengikuti arus.
Objektif dan akurat: Dalam trading, musuh kita yang sebenarnya adalah diri kita sendiri. Mengelola mentalitas lebih mudah diucapkan daripada dilakukan. Kelemahan manusia seperti keserakahan, ketakutan, dan keberuntungan akan meningkat beberapa kali lipat di pasar perdagangan. Perdagangan kuantitatif dapat membantu kita mengatasi kelemahan ini dan membuat keputusan yang lebih baik dalam perdagangan.
Tepat waktu dan efisien: Dalam perdagangan subjektif, kecepatan reaksi orang tidak bisa lebih cepat dari komputer, dan kekuatan fisik serta energi orang tidak dapat beroperasi 24 jam sehari. Dalam pasar perdagangan di mana peluang bersifat cepat berlalu, perdagangan kuantitatif dapat sepenuhnya menggantikan perdagangan subjektif, menemukan peluang perdagangan, dan melacak perubahan pasar secara tepat waktu dan cepat.
Pengendalian Risiko: Perdagangan kuantitatif tidak hanya dapat mengeksplorasi pola historis yang mungkin terulang di masa mendatang dari data historis, tetapi pola historis ini juga merupakan strategi dengan probabilitas menang yang lebih tinggi. Anda juga dapat membangun berbagai portofolio investasi yang berbeda untuk mengurangi risiko sistemik dan memperlancar kurva pendanaan.
Apa strategi perdagangan klasik untuk perdagangan kuantitatif?
Strategi Pembukaan Breakout
Setengah jam pertama setelah pembukaan sering kali dapat menentukan tren hari itu. Strategi ini menggunakan apakah harga berada pada garis positif atau negatif dalam waktu setengah jam setelah pembukaan sebagai standar untuk menilai tren hari itu. Jika garisnya positif, buka posisi beli; jika garisnya negatif, buka posisi jual, dan tutup posisi dalam beberapa menit sebelum ditutup. Ini adalah strategi perdagangan yang sangat sederhana.
Strategi Saluran Donchian
Gambar 1-1 Diagram Strategi Saluran Donchian
Strategi Donchian Channel dapat dianggap sebagai cikal bakal perdagangan intraday. Aturannya adalah: beli jika harga saat ini lebih tinggi dari harga tertinggi N K-line sebelumnya, dan jual jika harga saat ini lebih rendah dari harga terendah N K-line sebelumnya. Aturan Perdagangan Penyu yang terkenal menggunakan versi modifikasi dari strategi Selat Donchian.
Strategi arbitrase lintas periode
Arbitrase lintas periode merupakan jenis transaksi arbitrase yang paling umum. Transaksi ini didasarkan pada harga kontrak dengan bulan pengiriman yang berbeda untuk produk perdagangan yang sama. Jika terdapat perbedaan harga yang besar antara kedua harga tersebut, kontrak berjangka dengan periode yang berbeda dapat dibeli dan dijual pada saat yang sama untuk melakukan arbitrase lintas periode. Asumsikan bahwa perbedaan harga antara kontrak utama dan kontrak utama sekunder tetap sekitar -50~50 untuk waktu yang lama. Jika spread mencapai 70 pada hari tertentu, kami perkirakan spread akan kembali ke 50 di titik tertentu di masa mendatang. Kemudian Anda dapat menjual kontrak utama dan membeli kontrak utama sekunder pada saat yang sama untuk memperpendek selisih harga. sebaliknya.
Meringkaskan
Di atas, kami telah memperkenalkan secara singkat konsep-konsep perdagangan kuantitatif yang relevan dari aspek definisi, pengembangan, karakteristik, dan strategi perdagangan klasiknya.
Memahami perdagangan kuantitatif merupakan batu loncatan penting dalam perjalanan menjadi seorang Kuantitatif. Akhirnya, saya berharap semua orang dapat memperkaya diri mereka sendiri di pasar yang sedang melemah dan mewujudkan realisasi pengetahuan sesegera mungkin! Ingat, Anda hanya berjarak satu pasar bullish dari kebebasan finansial!
Pratinjau Bagian Berikutnya
Apa perbedaan antara perdagangan kuantitatif dan perdagangan tradisional? Dalam perdagangan sesungguhnya, haruskah kita memilih perdagangan tradisional atau perdagangan kuantitatif? Pada bagian berikutnya, kita akan menjawab kedua pertanyaan ini untuk lebih memahami perdagangan kuantitatif.
Pekerjaan rumah
- Jelaskan secara singkat apa itu perdagangan kuantitatif dalam satu kalimat?
- Apa saja ciri-ciri perdagangan kuantitatif?
1.2 Mengapa memilih perdagangan kuantitatif
ringkasan
Banyak orang menggunakan pemrograman strategi kompleks sebagai titik awal saat membahas perdagangan kuantitatif, yang secara tidak sengaja menimbulkan misteri pada perdagangan kuantitatif. Di bagian ini, kami akan mencoba membuat "sketsa" sederhana tentang perdagangan kuantitatif dalam bahasa yang mudah dipahami untuk mengungkap misterinya. Saya yakin bahwa bahkan seorang pemula tanpa pengetahuan dasar pun dapat dengan mudah memahaminya.
Perbedaan antara perdagangan kuantitatif dan perdagangan subjektif
Perdagangan subjektif lebih memperhatikan analisis manusia dan kepekaan pasar. Bahkan jika sinyal beli dan jual muncul, pesanan akan ditempatkan secara selektif. Orang lebih suka melewatkan pasar daripada membuat kesalahan. Perasaan manusia itu rumit, mudah berubah, dan tidak dapat diandalkan. Begitu sebagian besar trader mengalami kerugian berturut-turut, mereka cenderung beralih ke metode lain. Sifatnya sangat acak dan mudah terganggu oleh untung rugi, sehingga sulit memperoleh laba yang stabil.
Perdagangan kuantitatif mengembangkan strategi pembelian dan penjualan yang konsisten melalui pemahaman transaksi. Dalam perdagangan, perlakukan semua tren secara setara, dan tangani posisi pembukaan dan penutupan secara sistematis. Lebih baik membuat kesalahan daripada kehilangan kesempatan. Ia juga memiliki sistem evaluasi lengkap, yang menentukan jenis pasar dan produk mana yang paling cocok untuk strategi tersebut melalui pengujian ulang data historis, dan mencapai profitabilitas dengan menggabungkan berbagai strategi dan produk.
Singkatnya, perdagangan subjektif adalah dasar dari perdagangan kuantitatif, dan perdagangan kuantitatif merupakan penyempurnaan perdagangan subjektif. Perdagangan subjektif lebih seperti berlatih seni bela diri. Keberhasilan Anda pada akhirnya sangat bergantung pada bakat Anda. Sebagian orang mungkin tidak mencapai pencerahan setelah sepuluh tahun, sementara yang lain mungkin mencapai pencerahan dalam satu hari. Perdagangan kuantitatif lebih seperti kebugaran. Selama Anda bekerja keras, Anda dapat membangun otot bahkan jika Anda tidak memiliki bakat.
Apakah perdagangan kuantitatif lebih baik daripada perdagangan subjektif?
Seorang pedagang subjektif yang sukses, dalam arti tertentu, juga merupakan pedagang kuantitatif. Sebab seorang pedagang subjektif yang sukses harus mempunyai seperangkat aturan dan metode tersendiri, yaitu sistem perdagangan. Perdagangan subjektif yang berhasil harus didasarkan pada disiplin perdagangan dan aturan perdagangan, dan bagian pelaksanaan aturan perdagangan sebenarnya adalah bagian kuantitatif dari perdagangan subjektif.
Sebaliknya, seorang pedagang kuantitatif yang sukses juga harus menjadi pedagang subjektif yang unggul, karena pengembangan strategi perdagangan kuantitatif sebenarnya merupakan kristalisasi dari filosofi perdagangan seseorang. Apabila persepsi dan pemahaman seseorang terhadap pasar salah sejak awal, maka strategi perdagangan yang dikembangkan akan sulit menghasilkan keuntungan dalam jangka panjang.
Oleh karena itu, dari sudut pandang keuntungan, faktor kunci yang menentukan apakah seorang pedagang pada akhirnya dapat berhasil adalah filosofi perdagangan, bukan apakah itu perdagangan subjektif atau perdagangan kuantitatif. Perdagangan kuantitatif mungkin terdengar muluk di permukaan, tetapi esensi keuntungannya tidak berbeda dengan perdagangan subjektif. Keduanya seperti dua sisi dari satu hal, keduanya berlawanan tetapi menyatu.
Tetapi tidak dapat disangkal bahwa perdagangan kuantitatif memang memiliki banyak keuntungan dalam hal alat perdagangan.
Ulasan lebih cepat: Jika Anda ingin menguji strategi perdagangan, Anda perlu menghitung sejumlah besar data historis. Perdagangan kuantitatif dapat menghitung hasilnya dalam beberapa menit. Kecepatan ini berkali-kali lipat lebih cepat daripada perdagangan subjektif.
Lebih ilmiah:Untuk mengevaluasi apakah suatu strategi itu baik, kami mengandalkan data (seperti rasio Sharpe, tingkat penarikan maksimum, laba tahunan), bukan penipu yang mementingkan diri sendiri.
Lebih banyak peluang:Ada ribuan produk perdagangan di dunia. Tidak mungkin untuk memantau pasar pada saat yang sama untuk perdagangan subjektif, tetapi perdagangan kuantitatif dapat memantau seluruh pasar secara real time, tidak kehilangan peluang perdagangan apa pun dan meningkatkan profitabilitas.
Apakah perdagangan kuantitatif benar-benar dapat menghasilkan uang?
Tentu saja Anda bisa, tetapi sulit untuk bertahan dalam jangka waktu lama. Apakah Anda menghasilkan uang atau tidak, itu tidak bergantung pada perdagangan kuantitatif itu sendiri, itu hanyalah sebuah alat. Perdagangan kuantitatif hanya mengimplementasikan ide-ide perdagangan dengan cara yang terprogram, teratur, dan terukur. Program tersebut hanya menggantikan kemampuan eksekusi. Bagian yang sulit adalah menghasilkan uang secara stabil dalam jangka panjang, karena pasar adalah permainan dan berubah secara dinamis, dan ide perdagangan juga harus berubah mengikuti pasar.
Risiko perdagangan kuantitatif
Perdagangan kuantitatif juga memiliki risiko, mengapa? Karena perdagangan kuantitatif adalah tentang menemukan pola dalam data historis dan membentuk strategi perdagangan. Akan tetapi, pasar keuangan adalah sistem ekologi, dan hukum serta sifat manusianya adalah proses dinamis yang interaktif. Pada akhirnya, pasar keuangan tetaplah pasar manusia. Hukum pasar akan dipengaruhi oleh sifat manusia, dan keserakahan serta ketakutan dalam sifat manusia akan berubah seiring dengan perubahan pasar. Sangat sedikit hukum yang tidak berubah di pasar, dan tidak peduli seberapa hebat strategi perdagangannya, sulit untuk mengatasi perubahan hukum yang tiba-tiba seperti itu.
Meringkaskan
Dari penjelasan di atas, kita dapat melihat bahwa perdagangan kuantitatif bukanlah metode perdagangan yang unik, tetapi hanya alat perdagangan untuk membantu kita menganalisis logika perdagangan dan meningkatkan strategi perdagangan. Apakah Anda investor nilai atau investor teknis, dan apakah Anda berinvestasi dalam saham, obligasi, komoditas atau opsi, semuanya sebenarnya dapat diukur. Dibandingkan dengan pedagang yang membuat keputusan berdasarkan pengalaman pribadi, senjata di tangan pedagang kuantitatif adalah bukti pasar dan rasionalitas.
Pratinjau Bagian Berikutnya
Kuantifikasi hanyalah metode perdagangan, strategi hanyalah pembawa ide perdagangan, dan program mengeksekusi setiap proses perdagangan. Bagian selanjutnya akan membawa Anda melalui siklus hidup lengkap perdagangan kuantitatif, yang akan meliputi: konsepsi strategi, pembuatan model, pengujian ulang dan penyetelan, perdagangan simulasi, perdagangan nyata, pemantauan strategi, dll.
Pekerjaan rumah
- Apa perbedaan paling penting antara perdagangan kuantitatif dan perdagangan subjektif?
- Apa keuntungan perdagangan kuantitatif dibandingkan perdagangan subjektif?
1.3 Apa yang perlu Anda persiapkan untuk perdagangan kuantitatif?
ringkasan
Siklus perdagangan kuantitatif yang lengkap bukan hanya sekadar strategi perdagangan itu sendiri. Setidaknya terdiri dari enam tautan, termasuk: konsepsi strategi, pembuatan model, pengujian ulang dan penyetelan, simulasi perdagangan, perdagangan nyata, pemantauan strategi, dll.
Berpikir strategis
Pertama-tama, untuk melakukan perdagangan kuantitatif, Anda harus terlebih dahulu kembali ke pasar perdagangan, mengamati harga lebih lanjut di pasar, memahami hukum fluktuasi pasar, mencoba menyimpulkan logika setiap transaksi, dan akhirnya meringkas strategi perdagangan. Tidak ada jalan pintas di sini. Anda mungkin perlu membaca buku-buku investasi klasik, atau terus berdagang dan belajar dari kegagalan Anda.
Bagi pemula perdagangan kuantitatif, cara terbaik untuk mengembangkan strategi perdagangan di awal adalah dengan meniru. Langsung gunakan indikator analisis teknis yang ada untuk membangun logika strategi dan menulis aturan beli dan jual, sehingga Anda bisa mendapatkan strategi yang sederhana. Misalkan strategi perdagangan Anda adalah ini: beli jika harga lebih tinggi dari harga rata-rata 10 hari terakhir, dan jual jika harga lebih rendah dari harga rata-rata 10 hari terakhir. Maka arsitekturnya adalah sebagai berikut (seperti gambar dibawah):

Gambar 1-2 Contoh strategi perdagangan
Tentu saja, saat Anda mengumpulkan pengalaman strategi dan membentuk metode perdagangan Anda sendiri, pilihan logis Anda akan menjadi semakin beragam, dan Anda akan maju ke perdagangan kuantitatif yang lebih sistematis. Jika Anda bisa menjadi pedagang dengan pemikiran kuantitatif, baik di pasar saham maupun pasar berjangka, itu adalah berkah, karena orang seperti itu memiliki profitabilitas yang berkelanjutan dan stabil, tidak peduli pasar perdagangan mana yang dia geluti.
Membangun Model
Kedua, Anda perlu menguasai alat perdagangan kuantitatif untuk menulis strategi perdagangan dan mewujudkan ide perdagangan Anda. Perangkat lunak apa pun yang umum digunakan di pasaran dapat digunakan. Namun jika Anda ingin menjadi pedagang kuantitatif tingkat tinggi, Anda perlu mempelajarinya
Kuasai bahasa komputer. Saya rekomendasikan Python karena bahasa ini adalah bahasa yang paling tepat untuk komputasi ilmiah.
Ia juga menyediakan berbagai paket analisis sumber terbuka, pemrosesan berkas, jaringan, basis data, dll.
Jika keterampilan pemrograman Anda lemah, yang merupakan titik lemah kebanyakan pemula, disarankan untuk menggunakan bahasa pemrograman visual atau bahasa Mai yang relatif sederhana, yang dapat meningkatkan minat Anda dalam mempelajari perdagangan kuantitatif dan memungkinkan Anda untuk fokus pada strategi dan menyelesaikan pengembangan strategi secara efisien. Seperti yang ditunjukkan di bawah ini: Dengan menggunakan bahasa Mai, kembangkan strategi perdagangan seperti yang disebutkan di atas. Klik dua kali gambar untuk melihat komentar terperinci dalam kode strategi.

Gambar 1-3 Halaman pengembangan strategi perdagangan
Kode strategi pada gambar di atas didemonstrasikan menggunakan bahasa Mai dari alat kuantitatif milik penemu. Kode ini mengintegrasikan banyak modul fungsional yang dapat digunakan secara langsung, dan mendukung fungsi pengujian ulang dan perdagangan riil. Ini adalah cara yang baik untuk memulai dengan cepat.
Pengujian ulang dan penyetelan
Kemudian, setelah menulis model strategi, langkah berikutnya adalah menguji ulang strategi tersebut, serta menyaring dan mengoptimalkan parameternya. Anda dapat menggunakan parameter yang berbeda untuk menguji ulang strategi dan mengamati rasio Sharpe strategi, penarikan maksimum, pengembalian tahunan, dll. Dengan terus-menerus men-debug dan memodifikasi strategi, kita akhirnya akan mendapatkan strategi perdagangan kuantitatif yang lengkap.
Misalnya, kami mengambil data historis tahun 2017 sebagai data dalam sampel dan data historis tahun 2018 sebagai data di luar sampel. Pertama, kami menggunakan data tahun 2017 untuk mengoptimalkan beberapa set parameter dengan kinerja yang baik, dan kemudian menggunakan parameter ini untuk mengoptimalkan data tahun 2018.
Pengujian ulang data. Secara umum, hasil backtest out-of-sample tidak sebaik hasil backtest in-sample. Namun, jika hasil out-of-sample dan in-sample sangat berbeda, maka strategi tersebut hampir tidak efektif dan perlu dilakukan pengamatan dan analisis untuk mengetahui alasan kegagalan strategi tersebut.
Misalkan kita mendapati bahwa strategi tersebut gagal akibat data di luar sampel dan kerugian besar disebabkan oleh kondisi pasar ekstrem tertentu, maka kita dapat menambahkan kondisi stop loss tetap untuk menghindari risiko ini; jika kita mendapati bahwa strategi tersebut gagal akibat terlalu banyak transaksi, maka kita dapat sedikit memperketat logika perdagangan dan mengurangi frekuensi perdagangan.
Perlu dicatat bahwa jika logika perdagangan itu sendiri salah di awal, akan sulit untuk mendapatkan strategi yang menguntungkan tidak peduli seberapa banyak Anda mengubahnya. Pada saat ini, Anda perlu memeriksa kembali pemikiran strategis Anda. Selain itu, dalam optimasi parameter, semakin banyak kelompok parameter yang tersedia semakin baik, yang menunjukkan bahwa strategi tersebut memiliki penerapan yang luas. Saat melakukan pengujian ulang, strategi dengan terlalu sedikit perdagangan mungkin mengalami bias bertahan hidup. Jika hasil backtest adalah kurva dana yang sangat menguntungkan
Dalam banyak kasus, logika Anda salah.
Simulasi Perdagangan
Kemudian, ketika Anda sudah mendapatkan strategi dengan logika trading yang benar dan menguntungkan baik di dalam maupun di luar sampel, jangan terburu-buru untuk melakukan trading di akun riil. Khusus untuk pemula, perlu menjalankan akun simulasi minimal 3 bulan. Jika strateginya adalah strategi berfrekuensi sedang atau rendah, diperlukan waktu simulasi perdagangan yang lebih lama.
Dalam simulasi pasar yang sama sekali tidak diketahui di masa mendatang, amati kinerja strategi dalam simulasi perdagangan, periksa dengan saksama apakah sinyal backtest konsisten dengan sinyal simulasi perdagangan, dan apakah ada penyimpangan antara harga saat order ditempatkan dan harga saat transaksi selesai. Jika kinerjanya konsisten dengan ekspektasi, maka itu berarti strategi tersebut efektif.
Transaksi fisik
Akhirnya, setelah menguji strategi untuk waktu yang lama, tibalah waktunya untuk menerapkannya dalam perdagangan sesungguhnya. Tentu saja, kita juga harus tetap waspada dan berjaga-jaga terhadap kondisi pasar yang ekstrem selama proses perdagangan kuantitatif. Dalam perdagangan sesungguhnya, ekspektasi suatu strategi umumnya diabaikan, dan pencapaian 50% ekspektasi dianggap memenuhi syarat.
Pemantauan Kebijakan
Terakhir, saya perlu mengingatkan semua orang bahwa seiring berjalannya perdagangan, kita juga harus memperhatikan efektivitas strategi. Ketika kita menemukan bahwa strategi tersebut memiliki kerugian di luar ekspektasi, kita harus mengevaluasi ulang strategi tersebut. Karena karakteristik pasar akan berubah, maka strategi yang kita bentuk sekarang terutama ditujukan pada karakteristik pasar masa lalu. Begitu karakteristik pasar berubah, model strategi harus disesuaikan tepat waktu, atau strategi harus ditangguhkan sementara.
Meringkaskan
Dalam artikel ini, kami menjelaskan proses lengkap perdagangan kuantitatif. Singkatnya, jika Anda seorang investor dengan pengalaman pasar, yang akan menghambat Anda adalah dasar-dasar bahasa komputer. Anda dapat memulai dengan bahasa visual atau bahasa Mai, melatih diri di platform ini, membangun strategi, dan kemudian secara bertahap beralih ke perdagangan kuantitatif tingkat tinggi Python.
Jika Anda adalah mahasiswa sains dan teknik atau praktisi TI dengan keterampilan pemrograman yang kuat, yang akan menjadi kendala Anda adalah pengalaman investasi pasar. Jangan remehkan poin ini. Sebagai investor kuantitatif yang berkualifikasi, kedua jenis pengetahuan tersebut sangat diperlukan.
Pratinjau Bagian Berikutnya
Inti dari seluruh siklus perdagangan kuantitatif masih merupakan strategi perdagangan. Pada bagian berikutnya, kami akan menguraikan unsur-unsur strategi perdagangan lengkap dari perspektif kerangka kerja strategi perdagangan. Ini akan membantu Anda membangun strategi perdagangan Anda lebih komprehensif dan membawa perdagangan kuantitatif ke tingkat baru!
Pekerjaan rumah
- Cobalah menulis strategi perdagangan di bagian ini menggunakan bahasa Mai.
- Apa indikator kinerja paling penting dalam pengujian ulang perdagangan kuantitatif?
1.4 Apa saja unsur strategi yang lengkap?
ringkasan
Strategi yang lengkap sebenarnya adalah serangkaian aturan yang ditetapkan oleh para pedagang untuk diri mereka sendiri. Strategi ini mencakup semua aspek transaksi dan tidak memberikan ruang bagi imajinasi subjektif para pedagang. Strategi akan memberikan jawaban atas setiap keputusan pembelian dan penjualan. Setidaknya mencakup pemilihan strategi, pemilihan produk, pengelolaan modal, penempatan pesanan, respons terhadap kondisi pasar ekstrem, mentalitas perdagangan, dll.
Pemilihan Strategi
Dari sudut pandang dana lindung nilai, strategi perdagangan umum dapat dibagi menjadi perdagangan tren, perdagangan berpasangan, perdagangan keranjang, perdagangan berbasis peristiwa, perdagangan frekuensi tinggi, strategi opsi, dll., seperti yang ditunjukkan pada gambar di bawah ini. Tentu saja, cara strategi dikategorikan tidak tetap.

Gambar 1-4 Klasifikasi strategi perdagangan
Bagi pemula dalam perdagangan kuantitatif, Anda tidak perlu khawatir tentang begitu banyak istilah dan konsep. Mulailah saja dari langkah demi langkah yang paling sederhana. Jika saya hanya merekomendasikan satu strategi perdagangan kuantitatif untuk pemula, itu adalah perdagangan tren, karena sederhana dan efektif. Saya percaya bahwa meskipun Anda tidak mempelajari pengetahuan keuangan secara sistematis, Anda tetap dapat melakukan perdagangan dengan baik. Dan strategi ini telah ada sejak lama, dalam strategi perdagangan publik awal, dan masih efektif di berbagai pasar saat ini karena sifat manusia sulit diubah.
Apa yang harus dibeli dan dijual
Siapa pun yang pernah berdagang pasti tahu bahwa setiap varietas punya kepribadiannya sendiri. Beberapa varietas memiliki kepribadian yang sangat "panas", dengan likuiditas yang baik, fluktuasi yang besar, dan volatilitas yang tinggi; beberapa varietas memiliki kepribadian yang sangat "jinak", berfluktuasi dalam kisaran tertentu sepanjang tahun dan memiliki volatilitas yang rendah.
Oleh karena itu, ketika memilih produk perdagangan, Anda harus memiliki konsep volatilitas. Produk dengan volatilitas tinggi sering kali dapat dengan mudah mengembangkan tren yang baik. Untuk komoditas berjangka, jika merupakan strategi pelacakan tren, cobalah untuk memilih produk industri. Dalam hal atribut produk, produk industri cenderung memiliki volatilitas yang lebih besar daripada produk pertanian.
Strategi yang berbeda beradaptasi dengan kondisi pasar yang berbeda, dan memilih produk perdagangan yang tepat merupakan awal yang sangat penting untuk proyek besar perdagangan berjangka. Dalam pengertian yang mutlak, tidak ada varietas yang benar-benar baik atau varietas yang benar-benar buruk. Bergantung pada gaya investasi dan toleransi risiko Anda, Anda perlu membuat penyesuaian yang sesuai dengan standar Anda sendiri.
Berapa banyak yang harus dibeli dan dijual
Mudah untuk kehilangan uang dalam trading tetapi sulit untuk menghasilkan uang. Ketika dana akun merugi 50%, diperlukan laba 100% untuk menutupi kerugian tersebut. Sekalipun Anda dapat memperoleh laba 100% berkali-kali, Anda hanya perlu kehilangan 100% satu kali untuk kehilangan semuanya. Oleh karena itu, strategi perdagangan yang matang harus mencakup pengelolaan uang.
Untuk memudahkan semua orang memahami, strategi rata-rata bergerak dari bagian sebelumnya juga digunakan di sini. Faktanya, banyak strategi perdagangan yang dibangun dengan indikator teknis tradisional umumnya memiliki tingkat penarikan maksimum lebih dari 50% atau bahkan lebih. Namun ini merupakan strategi yang sangat berisiko dan sama sekali tidak bisa dijalankan?
Tentu saja tidak, tingkat penarikan maksimum dapat sepenuhnya dikontrol melalui pengelolaan dana. Jika posisi dikurangi setengahnya, risiko keseluruhan juga akan dikurangi setengahnya, dan tingkat penarikan maksimum akan menjadi 30%. Jika posisi dikurangi setengahnya lagi, tingkat penarikan maksimum akan menjadi 15%. Pada akhirnya, kita mendapatkan strategi dengan tingkat penarikan maksimum yang dikendalikan sekitar 15%. Ini adalah metode pengelolaan uang yang sederhana dan kasar. Banyak orang tahu bahwa mereka tidak dapat bekerja dengan posisi penuh, tetapi mereka tidak tahu mengapa mereka tidak dapat bekerja dengan posisi penuh. Jawabannya ada di sini.
Kapan harus membeli dan menjual
Titik pembelian yang bagus adalah separuh dari kesuksesan, sebab titik tersebut dapat dengan cepat mengeluarkan Anda dari area biaya. Tetapi tidak seorang pun dapat memberi tahu Anda bahwa memulai dari titik ini adalah benar dan memulai dari titik itu adalah salah. Membuka posisi bukanlah inti dari trading. Inti dari trading adalah bagaimana mengoptimalkan posisi semaksimal mungkin setelah membuka posisi.
Baik itu strategi jangka pendek atau strategi jangka panjang, yang penting bukanlah siapa yang memegang posisi lebih lama, tetapi rasio risiko-imbal hasil. Dengan kata lain, hasil akhir yang memengaruhi kinerja strategi adalah bagaimana cara keluar dan kapan merealisasikan laba. Metode keluar dapat dibagi menjadi dua jenis: keluar stop loss dan keluar take profit. Kedua bagian ini diperlukan untuk sistem perdagangan apa pun dan juga merupakan titik balik penting yang menentukan keberhasilan atau kegagalan strategi perdagangan.
Cara membeli dan menjual
1. Jenis dan metode pemesanan:
Ada banyak jenis dan metode dalam melakukan pemesanan, seperti: menggunakan limit order antrian, harga rekanan, harga terkini, harga lebih tinggi, harga batas atas, harga batas bawah, harga beli pertama, harga beli kedua, harga jual pertama, harga jual kedua, atau menggunakan harga antrian terlebih dahulu kemudian harga lebih tinggi, melakukan pemesanan secara bertahap, atau membagi pesanan besar menjadi pesanan kecil, atau cukup melakukan pemesanan secara langsung.
2. Batalkan pesanan
Jika order tidak dieksekusi, apakah Anda harus tetap menunggu atau membatalkan order? Kondisi pembatalan didasarkan pada waktu. Misalnya, jika tidak ada transaksi dalam 10 detik, dan harga berada 10 lompatan dari harga saat order dilakukan, apakah Anda harus tetap menunggu, membatalkan order, atau menindaklanjuti order tersebut.
3. Perintah tindak lanjut
Bila suatu perintah tidak dijalankan, apakah akan menindaklanjuti perintah tersebut. Jika mengejar order, haruskah kita mengejarnya berdasarkan harga terkini, harga rekanan, atau batas harga? Jika mengejar order belum dieksekusi, haruskah kita terus mengejar order tersebut?
4. Batas Harga
Apa yang harus saya lakukan bila sinyal order muncul dan kebetulan harga tersebut adalah harga batas atas atau batas bawah? Apakah akan mengantri untuk dieksekusi pada harga batas atas dan bawah, dan apa yang harus dilakukan jika tidak ada eksekusi yang dilakukan.
5. Lelang Panggilan
Haruskah Anda berpartisipasi dalam lelang pembukaan dan bagaimana cara berpartisipasinya.
6. Perdagangan Malam
Untuk beberapa komoditas berjangka, perdagangan malam berlangsung dari pukul 21:00 hingga 02:30 keesokan harinya. Selama periode ini, Anda dapat memilih apakah akan melakukannya secara manual atau melalui komputer.
7. Festival besar
Apakah Anda perlu mempertahankan posisi Anda sebelum liburan panjang selama festival besar? Bagaimana mengendalikan risiko jika dipertahankan.
Kondisi Pasar Ekstrim
-
Fluktuasi harga yang besar dalam waktu singkat
Cara menangani situasi seperti batasan harga instan, batasan harga berkelanjutan, pesanan salah, lonjakan harga pasar angsa hitam, dsb. -
Risiko likuiditas
Jika rekanan tidak memiliki volume pesanan yang Anda inginkan, tetapi Anda perlu menyelesaikan transaksi tepat waktu, terutama ketika likuiditas kontrak non-utama sangat buruk, pesanan yang Anda tempatkan dapat dengan mudah menyebabkan dampak pada pasar dan slippage-nya besar, bagaimana Anda harus mengatasinya? -
Perubahan dalam aturan varietas
Produk komoditas berjangka ditambahkan ke perdagangan malam, rasio margin ditingkatkan, dan biaya penanganan ditingkatkan. Strategi jangka pendek, khususnya, akan sangat sensitif terhadap perubahan ini. -
Risiko lingkungan perdagangan
Misalnya: bagaimana cara menanggapi ketika terjadi pemadaman listrik mendadak, gangguan internet, kegagalan komputer, kerusakan perangkat lunak, penangguhan transfer berjangka bank, bencana alam, dan sebagainya.
Kemungkinan terjadinya situasi di atas sangat kecil, atau hampir mustahil. Namun jika itu bisa terjadi, maka itu akan terjadi. Penting untuk membuat asumsi-asumsi ini dan mengambil tindakan pencegahan.
Konstruksi Psikologis
Tiga emosi psikologis utama yang umum dalam perdagangan adalah keserakahan, ketakutan, dan keberuntungan. Investor membutuhkan sistem psikologi perdagangan yang kuat untuk mengendalikan dan bahkan memanfaatkan ketiga emosi di atas pada tahap yang berbeda.
Sebelum berdagang, Anda harus memiliki ekspektasi menyeluruh terhadap masa depan, termasuk ekspektasi pasar dan ekspektasi psikologis terhadap produk. Ekspektasi pasar merujuk pada tujuan yang jelas untuk posisi pasar dan arah masa depan, dan ekspektasi produk merujuk pada peluang perdagangan dan status risiko produk pada posisinya saat ini. Tanpa landasan psikologis di atas, tidak ada yang dapat dicapai.
Seluruh proses perdagangan riil adalah proses analisis, koreksi, dan eksekusi yang berkelanjutan. Tidak banyak waktu yang dihabiskan untuk perdagangan, tetapi lebih banyak waktu dihabiskan untuk pelacakan dan kesabaran. Ini adalah proses yang secara komprehensif menguji mentalitas dan sifat manusia. Semua kebiasaan pedagang akan ditampilkan dan diperbesar sepenuhnya selama proses perdagangan. Hanya dengan terus-menerus belajar dan merangkum pengalaman serta pelajaran, dan terus memperoleh pengalaman, kita dapat mengatasi pemikiran umum dan kelemahan psikologis sifat manusia.
Meringkaskan
Singkatnya, apa yang disebut strategi perdagangan sebenarnya seperti ini. Ada sisi yang sempurna dan sisi yang tidak lengkap. Ketika kita mengukur apakah suatu strategi perdagangan masuk akal, kita tidak bisa hanya melihat sisi yang sempurna atau sisi yang tidak lengkap. Kita harus menganalisis integritas strategi secara komprehensif.
Terakhir, berdasarkan karakteristik strategi, dikombinasikan dengan kepribadian dan situasi keuangan Anda sendiri, ukurlah apakah strategi tersebut cocok untuk Anda. Jika cocok untuk Anda, Anda harus mengevaluasi sepenuhnya seberapa besar kemungkinan Anda untuk mematuhinya, dan merencanakan hasil terburuk sebelumnya. Jika Anda telah memikirkan skenario terburuk, maka kemungkinan untuk menjalankannya relatif tinggi.
Ingat, dalam berdagang, keyakinan datang dari pengakuan tulus Anda, dan keyakinan datang dari filosofi perdagangan yang benar!
Pratinjau Bagian Berikutnya
Ini adalah artikel terakhir dari bab pertama. Di bab berikutnya, kami akan menjelaskan lebih lanjut tentang alat-alat perdagangan kuantitatif, termasuk: pengenalan menyeluruh terhadap alat-alat kuantitatif, cara mengonfigurasi sistem perdagangan kuantitatif, penjelasan API umum, dan cara menulis strategi pada sistem kuantitatif.
Pekerjaan rumah
- Haruskah strategi perdagangan tren memilih produk volatilitas tinggi atau produk volatilitas rendah?
- Apa saja jenis perintah perdagangan?
Bab 2 Pendahuluan Alat Kuantitatif
2.1 Pengenalan Keseluruhan Alat Kuantitatif
ringkasan
Pada bab sebelumnya, kita telah mempelajari berbagai konsep perdagangan kuantitatif yang relevan dan memperoleh pemahaman dasar tentang perdagangan kuantitatif. Jadi apa saja alat untuk perdagangan kuantitatif di pasar? Bagaimana seharusnya kita memilih sesuai kebutuhan kita?
Perangkat lunak sumber terbuka dan komersial
Alat perdagangan kuantitatif domestik secara umum dapat dibagi menjadi dua kategori: perangkat lunak sumber terbuka dan perangkat lunak komersial. Yang disebut perangkat lunak sumber terbuka dapat dipahami sebagai perangkat lunak yang kode sumbernya terbuka dan dapat langsung diunduh untuk digunakan; perangkat lunak komersial umumnya mengacu pada perangkat lunak sumber tertutup yang dipelihara dan dioperasikan oleh perusahaan komersial, yang biasanya berbayar.
Perangkat Lunak Kuantitatif Sumber Terbuka
Pertama-tama, perangkat lunak sumber terbuka memiliki fleksibilitas yang tinggi dan sepenuhnya gratis. Pengguna pada dasarnya dapat menggunakan perangkat lunak ini untuk mengimplementasikan fungsi apa pun, baik itu strategi perdagangan frekuensi menengah atau rendah, strategi arbitrase, atau strategi opsi, yang dapat dicapai melalui modul yang disesuaikan. Karena pengguna mengendalikan kode sumber perangkat lunak dan dapat memahami setiap sudut perangkat lunak, perangkat lunak ini lebih andal dan aman.
Meskipun perangkat lunak sumber terbuka memiliki banyak kelebihan, perangkat lunak ini kurang bersahabat bagi pemula dalam perdagangan kuantitatif. Anda perlu mempelajari bahasa pemrograman standar seperti Python, Java, atau C++ secara sistematis. Dari awal hingga menyerah, Anda dapat membayangkan betapa sulitnya. Terkadang, men-debug bug dapat membuat Anda meragukan hidup Anda. Dan tidak seperti perangkat lunak komersial, ada layanan pelanggan teknis khusus untuk menjawab pertanyaan Anda secara instan. Anda tidak hanya tidak akan merasakan pencapaian saat ini, tetapi juga akan membuat Anda enggan untuk melanjutkan belajar.
Oleh karena itu, dari sudut pandang pembelajaran, disarankan bagi pemula perdagangan kuantitatif untuk memulai langkah demi langkah, dimulai dengan perangkat lunak komersial yang paling sederhana. Meskipun berbayar, jika strategi tersebut menguntungkan, biaya perangkat lunak tersebut hanya sebagian kecil dari keuntungan. Selain itu, perangkat lunak komersial umumnya dikelola oleh suatu tim, dan kematangannya jelas jauh lebih kuat daripada perangkat lunak sumber terbuka.
Perangkat Lunak Kuantitatif Bisnis
Ada lusinan perangkat lunak komersial untuk perdagangan kuantitatif di Tiongkok, seperti: Interactive Broker, yang profesional, komprehensif, dan memiliki banyak produk; APAMA, yang dapat menangani data bersamaan yang besar dan cocok untuk perdagangan frekuensi tinggi; SPT, yang mendukung antarmuka C++ dan memiliki efisiensi eksekusi yang baik; Nuggets Quantitative, yang berfokus pada eksekusi transaksi dan pengendalian risiko; dan MC, TB, dan MQ untuk pedagang individu. Pada gambar di bawah ini, kami telah melakukan evaluasi menyeluruh terhadap platform kuantitatif domestik arus utama dan juga membuat klasifikasi tertentu mengenai tingkat kesulitan perangkat kuantitatif. Pembaca dapat memilih sesuai dengan situasi aktual mereka.

Gambar 2-1 Evaluasi komprehensif platform kuantitatif domestik arus utama
Meskipun perangkat lunak di atas adalah perangkat lunak komersial, mereka juga menggunakan bahasa pemrograman standar atau bahasa skrip. Daripada melakukan ini, lebih baik menggunakan perangkat lunak sumber terbuka yang gratis dan aman secara langsung. Disarankan bagi pemula untuk langsung menggunakan FMZ Inventor Quantitative Platform, situs webnya adalah www.fmz.com. Sebagai batu loncatan untuk mempelajari perdagangan kuantitatif.
Temui penemu alat perdagangan kuantitatif
Alat-alat kuantitatif ciptaan penemu ini ramah bagi para pemula. Bahkan jika Anda tidak memiliki pengetahuan dasar, Anda dapat merasakan pesona analisis kuantitatif berdasarkan alat-alat yang ada di dalamnya. Alat ini dirancang untuk perdagangan frekuensi tinggi dan memiliki persyaratan ketat pada kinerja dan keamanan. Mendukung strategi frekuensi tinggi, strategi arbitrase, dan strategi tren. Dan mengintegrasikan proses lengkap pengembangan strategi, pengujian, pengoptimalan, simulasi, dan perdagangan nyata. Selain itu, ia mendukung bahasa Mai yang sederhana dan mudah digunakan serta bahasa perdagangan kuantitatif tingkat lanjut seperti Python dan C++, yang berarti peralihan yang mulus setelah satu pembelajaran. Dan hanya perdagangan riil yang dikenakan biaya 0,125 yuan/jam, yang mengurangi biaya perangkat lunak Anda selama tahap pembelajaran. Pada saat yang sama, Anda dapat melakukan perdagangan simulasi secara gratis.
Mengambil langkah pertama menuju kuantifikasi: menggunakan alat kuantitatif
Alat-alat kuantitatif sangat mudah digunakan. Anda hanya perlu masuk ke situs web dan mengkliknya untuk merancang strategi kuantitatif Anda sendiri. Anda dapat masuk ke situs web resmi Inventor Quantitative Tool, mendaftar dan masuk, lalu mengklik pusat kendali untuk menggunakannya (seperti yang ditunjukkan di bawah). Mirip dengan TikTok yang sedang populer saat ini. Setelah mendaftar dan masuk, Anda dapat mengunggah video pendek Anda sendiri, dan setelah masuk ke alat kuantitatif, Anda dapat merancang strategi perdagangan kuantitatif Anda sendiri.

Gambar 2-2 Halaman utama platform perdagangan kuantitatif FMZ
Akan ada area fungsi terpusat untuk memprogram alat kuantitatif. Area fungsi tersebut terutama meliputi (seperti yang ditunjukkan di bawah). Pusat kendali di sudut kiri atas adalah fungsi inti dari alat kuantitatif. Setelah mengkliknya, Anda dapat menulis strategi perdagangan dan pengujian ulang strategi, mengatur bursa untuk produk perdagangan, membuat kustodian untuk mengelola robot strategi, dan membuat robot perdagangan kuantitatif tertentu. Mengenai penggunaan fungsi-fungsi tersebut secara spesifik, kami akan memperkenalkannya secara terperinci dalam artikel-artikel berikutnya. Saat ini, kami baru melakukan pekerjaan awal.

Gambar 2-3 Halaman manajemen setelah masuk ke platform perdagangan kuantitatif FMZ
Teman-teman yang masih awam dengan penelitian kuantitatif tidak perlu berkecil hati karena belum memahami kode dan pemrograman. Untuk menurunkan ambang batas pengguna, komunitas resmi telah membuat banyak tutorial video untuk membantu pemula perdagangan kuantitatif memulai dengan cepat; pada saat yang sama, Strategy Square menggabungkan ribuan strategi perdagangan gratis dan terbuka resmi dan pihak ketiga untuk disalin dan dipelajari semua orang.
Selain itu, contoh strategi klasik juga dikonfigurasikan dalam antarmuka penyuntingan strategi. Anda dapat langsung menggunakan kode strategi dengan mengkliknya, dan dengan mudah merasakan proses inti dari seluruh perdagangan kuantitatif. Bahkan pengguna pemula pun dapat langsung mempelajarinya dan mengikutinya!
Sebelum melakukan perdagangan dengan uang sungguhan, simulasi perdagangan juga merupakan langkah yang sangat penting. Simulasi perdagangan alat ini mematuhi aturan bursa dan sepenuhnya gratis. Waktu, harga, volume pesanan, dll. yang disertakan dalam simulasi disesuaikan dengan pasar sungguhan secara real time, yang sangat konsisten dengan perdagangan sungguhan. Sangat meningkatkan efisiensi verifikasi strategi.
Meringkaskan
Baik itu perangkat lunak sumber terbuka maupun perangkat lunak komersial, tidak ada perbedaan antara baik dan buruk, dan tidak ada alat perdagangan kuantitatif yang sempurna. Setiap alat memiliki fokusnya sendiri. Yang terpenting adalah memilih alat yang sesuai dengan kebutuhan Anda. Perangkat lunak komersial memerlukan pembayaran, dan memiliki layanan yang lebih baik dan sebagainya, dan mungkin lebih cocok untuk pemula yang baru memasuki industri ini. Jika Anda sudah lama berkecimpung di industri ini dan telah mengumpulkan banyak pengalaman, atau perlu menerapkan strategi perdagangan yang lebih kompleks, perangkat lunak sumber terbuka adalah pilihan yang lebih baik.
Pratinjau Bagian Berikutnya
Bagaimana cara menggunakan alat tersebut? Sama seperti saat kita membeli ponsel baru dan perlu melakukan pengaturan awal sederhana saat menyalakannya untuk pertama kali, alat kuantitatif juga memerlukan pengaturan dan konfigurasi dasar. Di bagian berikutnya, kami akan memandu Anda langkah demi langkah untuk mengonfigurasi alat perdagangan kuantitatif Inventor. Membuka pintu pertama menuju perdagangan kuantitatif, termasuk: menambah bursa, menambah kustodian, membuat strategi perdagangan, membuat robot kuantitatif, dll. Setelah menyelesaikan konfigurasi dasar, Anda dapat secara resmi menulis strategi kuantitatif pertama Anda.
Pekerjaan rumah
- Apa dua kategori utama alat perdagangan kuantitatif?
- Apa saja bahasa pemrograman kuantitatif yang umum digunakan?
2.2 Cara mengkonfigurasi Sistem Perdagangan Kuantitatif Inventor
ringkasan
Saat mengembangkan strategi perdagangan kuantitatif, hal pertama yang harus dilakukan adalah mengonfigurasi alat perdagangan. Apa itu konfigurasi? Itu sebenarnya hanya pengaturan. Di bagian ini, kami akan memandu Anda menyiapkan bursa, membuat strategi perdagangan, dan membuat robot perdagangan kuantitatif, yang semuanya merupakan prasyarat yang diperlukan untuk perdagangan kuantitatif.
Konfigurasi ini dibagi menjadi konfigurasi simulasi perdagangan pembelajaran tingkat pemula dan konfigurasi perdagangan waktu nyata. Dalam kategori ini, kami terutama berfokus pada komoditas berjangka domestik. Jenis investasi kuantitatif lainnya tidak direkomendasikan atau diperkenalkan karena kondisi domestik tertentu, tetapi proses operasinya sama, hanya proses konfigurasinya yang berbeda.
Tambahkan bursa
Menambahkan bursa adalah langkah pertama dalam keseluruhan proses konfigurasi. Silakan lihat gambar di bawah untuk proses spesifiknya. Pada langkah ini, kami perlu menekankan bahwa menambahkan bursa tidaklah sulit bagi mereka yang tidak yakin bursa mana yang mereka ikuti. Disarankan untuk melakukan simulasi pembelajaran terlebih dahulu.

Gambar 2-4 Pendaftaran platform perdagangan kuantitatif FMZ dan langkah penambahan bursa
Konfigurasi Bursa Berjangka Komoditas (Langsung)
Perdagangan kuantitatif real-time kami terutama berfokus pada produk perdagangan berjangka domestik. Saat ini, objek layanan utama Inventor Quantitative juga merupakan bursa berjangka domestik. Bagi teman-teman yang melakukan valuta asing, Inventor Quantitative dapat digunakan sebagai platform pembelajaran, karena perdagangan kuantitatif valuta asing telah muncul di platform seperti MT5, tetapi lebih profesional.
Hal-hal yang perlu diperhatikan dalam konfigurasi real-time adalah sebagai berikut: Karena peralatan kuantitatif milik inventor mendukung berbagai pasar perdagangan, saat mengonfigurasikan komoditas berjangka, Anda harus terlebih dahulu memilih "berjangka tradisional" pada langkah 1; pada langkah 2, Anda perlu mengisi akun berjangka dan kata sandi yang diberikan oleh perusahaan berjangka tempat Anda membuka akun.
Alat kuantitatif milik penemu mengadopsi protokol CTP dan mendukung semua perusahaan berjangka domestik. Saat mengonfigurasi pasar riil, tidak akan ada kegagalan tautan kecuali akun dan kata sandi salah. Oleh karena itu, pemula harus memperhatikan untuk memeriksa akun dan kata sandi dengan jelas.

Gambar 2-5 Platform perdagangan kuantitatif FMZ menambahkan bursa berjangka
Konfigurasi Bursa Berjangka Komoditi (Simulasi)
Bagi teman-teman yang masih awam dengan komoditi berjangka, saya sarankan agar melakukan simulasi perdagangan dalam kurun waktu tertentu terlebih dahulu, karena dalam proses pengembangan strategi perdagangan kuantitatif diperlukan pengujian, debugging, dan optimasi yang berkelanjutan. Sama seperti mengemudi, Anda pasti akan menghabiskan beberapa bulan belajar di sekolah mengemudi pada awalnya, dan kemudian Anda dapat berkendara setelah lulus ujian dan mendapatkan SIM.
Di sini kami sarankan untuk menggunakan simulasi perdagangan SimNow. SimNow adalah platform simulasi perdagangan finansial yang dibuat khusus oleh Shangqi Technology untuk para investor. Produk ini mensimulasikan aturan perdagangan dan penyelesaian berbagai bursa dan saat ini mendukung bisnis komoditas berjangka di berbagai bursa berjangka domestik. Untuk proses spesifiknya, silakan lihat gambar di bawah ini.

Gambar 2-6 Halaman manajemen platform perdagangan kuantitatif FMZ setelah login
Penulisan Strategi
Pustaka strategi adalah tempat kode-kode disimpan, yang setara dengan gudang strategi perdagangan kuantitatif kami. Secara garis besar dibagi menjadi dua fungsi: penulisan strategi dan pengujian ulang simulasi. Area penulisan strategi merupakan area kerja utama kami untuk mengembangkan strategi di masa mendatang (seperti yang ditunjukkan di bawah). Banyak pemula yang sering terhalang oleh berbagai kode dan merasa sangat kesulitan. Padahal, selama Anda sedikit memerhatikan, Anda dapat mempelajari kode-kode tersebut. Tidak memiliki beban psikologis apa pun. Area pengujian ulang simulasi dapat digunakan untuk men-debug strategi selama proses pengembangan strategi, serta untuk menguji strategi setelah pengembangan strategi selesai. Kami akan menjelaskannya secara terperinci dalam bab-bab berikut.

Gambar 2-7 Langkah-langkah untuk membuat kebijakan
Membuat robot perdagangan kuantitatif
Robot perdagangan kuantitatif adalah pelaksana strategi perdagangan. Setelah strategi dibuat, buatlah robot yang dapat secara otomatis membantu Anda menjalankan setiap logika perdagangan dalam kode strategi, serta membuka dan menutup posisi, menarik pesanan, dan operasi jual beli lainnya. Langkah-langkah khusus untuk membuat robot perdagangan kuantitatif adalah sebagai berikut: Pertama, langkah ①: Pada halaman pusat kendali, klik "Robot", klik "Buat Robot" Langkah ②: Berikan robot nama khusus. Langkah 3: Klik tanda “+” untuk menambahkan platform perdagangan. Langkah 4: Klik "Buat Robot"

Gambar 2-8 Langkah-langkah membuat robot
Meringkaskan
Dalam proses di atas, kecuali langkah pertama dalam memilih perdagangan nyata dan simulasi, langkah selanjutnya dalam penulisan strategi dan pembuatan robot perdagangan merupakan langkah terpadu. Seluruh alat kuantitatif telah dikonfigurasi, robot perdagangan sudah berjalan, dan akan melakukan operasi pembelian dan penjualan sesuai dengan kondisi strategi tertentu. Ada tiga langkah untuk mengonfigurasi perdagangan kuantitatif: tambahkan bursa dan isi kata sandi akun berjangka Anda; tulis strategi perdagangan; dan buat robot perdagangan kuantitatif waktu nyata. Bukankah itu sederhana?
Pratinjau Bagian Berikutnya
Meskipun perdagangan kuantitatif dapat dicapai hanya dalam tiga langkah sederhana, Anda mungkin menemukan bahwa menambahkan bursa dan membuat robot perdagangan kuantitatif itu mudah. Namun, menerapkan strategi perdagangan yang layak tidaklah semudah itu. Pada bagian berikutnya, kami akan mengajak Anda mempelajari API yang umum digunakan dalam perdagangan kuantitatif untuk mempersiapkan penulisan strategi perdagangan yang layak. Karena apa pun jenis alat perdagangan kuantitatif yang digunakan, alat tersebut tidak dapat dipisahkan dari antarmuka API, yang merupakan fungsi penting untuk mewujudkan strategi perdagangan kuantitatif.
Pekerjaan rumah
- Coba tambahkan bursa.
- Cobalah tulis strategi perdagangan di bagian ini.
2.3 Penjelasan Umum API
ringkasan
Dalam hal pemrograman, kita tidak bisa menghindari API. Bagi banyak orang non-IT, apa sebenarnya API itu? API ≈ Saya tidak mengerti. Pada bagian ini, kami akan menjelaskan dalam bahasa sederhana apa itu API dan memperkenalkan API yang umum digunakan dalam alat kuantitatif.
Apa itu API?
Jika Anda mencari secara daring, Anda akan mendapatkan hasil berikut: API (Application Programming Interface) adalah sekumpulan fungsi yang telah ditetapkan sebelumnya yang bertujuan untuk menyediakan aplikasi dan pengembang kemampuan mengakses sekumpulan rutin berdasarkan perangkat lunak atau perangkat keras tertentu tanpa harus mengakses kode sumber atau memahami detail mekanisme kerja internal. Jadi, untuk lebih sederhananya, apa sebenarnya API itu?
Faktanya, dalam kehidupan sehari-hari, kita memiliki banyak skenario yang mirip dengan API. Misalnya, ketika Anda pergi ke restoran untuk makan, Anda hanya perlu melihat menu dan memesan makanan, tanpa harus tahu bagaimana cara pembuatannya. Nama hidangan pada menu adalah API spesifik, dan menu adalah dokumentasi API.
Apa itu API dalam perdagangan kuantitatif?
Jika Anda perlu mendapatkan harga pembukaan produk saat ini, Anda tidak perlu tahu cara mendapatkannya. Anda hanya perlu menulis "OPEN" di editor kode dan langsung menggunakannya. "OPEN" adalah API harga pembukaan dalam bahasa Mai.
API bahasa Mai yang umum digunakan
Sebelum menjelaskan API Bahasa Mai, mari kita lihat struktur kode umum dan komponen fungsionalnya. Ini akan membantu Anda lebih memahami API. Lihat contoh di bawah ini:

Gambar 2-9 Contoh bahasa Mai
Seperti yang ditunjukkan pada kode di atas:
AA ungu adalah variabel. Variabel adalah kuantitas yang dapat berubah, seperti aljabar yang kita pelajari di sekolah menengah pertama. Jika harga pembukaan ditetapkan pada AA, maka AA adalah harga pembukaan; jika harga tertinggi ditetapkan pada AA, maka AA adalah harga tertinggi. Tentu saja, AA hanyalah nama khusus, Anda juga dapat mendefinisikannya sebagai BB.
Tanda “:=” berwarna hijau berarti penugasan, yang berarti menetapkan nilai di sisi kanan tanda “:=” ke variabel di sebelah kiri.
Kode oranye adalah API bahasa Mai dari Inventor Quantitative Tool. Perhatikan bahwa OPEN di baris pertama adalah API untuk mendapatkan harga penutupan, yang dapat digunakan secara langsung; MA di baris kedua adalah API untuk mendapatkan moving average, yang memerlukan dua parameter untuk dimasukkan, yaitu, Anda perlu memberi tahu Inventor Quantitative Tool jenis moving average yang Anda butuhkan: jika Anda ingin mendapatkan moving average 50 periode yang dihitung berdasarkan harga pembukaan, Anda dapat menuliskannya sebagai: MA(OPEN,50); perhatikan bahwa ada koma bahasa Inggris di antara kedua parameter tersebut.
Simbol "//" berwarna kuning adalah simbol komentar, dan karakter Cina berwarna biru di belakangnya adalah konten komentar. Anda dapat membacanya sendiri, dan digunakan untuk menunjukkan arti baris kode tersebut. Program tidak memproses komentar saat sedang berjalan. Perhatikan bahwa sebelum karakter komentar, setiap baris kode harus memiliki titik koma bahasa Inggris sebagai akhir baris.
Dengan pemahaman dasar tentang struktur kode, kami akan memperkenalkan beberapa bahasa yang umum digunakan kepada Anda di bawah ini, dan kami juga akan sering menggunakan bahasa ini di masa mendatang.
BUKA——Dapatkan harga pembukaan K-line terbaru
Contoh: AA: =OPEN; Dapatkan harga pembukaan K-line terbaru dan tetapkan hasilnya ke AA
TINGGI——Dapatkan harga tertinggi dari K-line terbaru
Contoh: AA: =TINGGI; Dapatkan harga tertinggi dari K-line terbaru dan tetapkan hasilnya ke AA
RENDAH——Dapatkan harga terendah dari K-line terbaru
Contoh: AA: =RENDAH; Dapatkan harga terendah dari K-line terbaru dan tetapkan hasilnya ke AA
TUTUP——Dapatkan harga penutupan terbaru dari K-line. Jika K-line intraday belum berakhir, dapatkan harga terbaru
Contoh: AA: =CLOSE; Dapatkan harga penutupan K-line terbaru dan tetapkan hasilnya ke AA
VOL——Dapatkan volume transaksi K-line terbaru
Contoh: AA: =VOL; Dapatkan volume transaksi K-line terbaru dan tetapkan hasilnya ke AA
REF(X,N) - Merujuk pada nilai X N siklus yang lalu.
Contoh: REF(CLOSE,1); Dapatkan harga pembukaan K-line sebelumnya
MA(X,N)——Temukan rata-rata pergerakan sederhana X dalam periode N
Contoh: MA(CLOSE,10); //Dapatkan rata-rata pergerakan 10 periode dari garis K terbaru
CROSSUP(A,B)——Ketika A melintasi B dari bawah ke atas, maka akan menghasilkan 1 (Ya), jika tidak maka akan menghasilkan 0 (Tidak)
Contoh: CROSSUP(CLOSE,MA(C,10)) // Harga penutupan melewati harga rata-rata 10 periode
CROSSDOWN(A,B)——Ketika A melintasi B dari atas, maka akan menghasilkan 1 (Ya), jika tidak maka akan menghasilkan 0 (Tidak)
Contoh: CROSSDOWN(CLOSE,MA(C,10)) // Harga penutupan melintasi di bawah harga rata-rata 10 periode
BK——Buka Posisi Beli
Contoh: CLOSE>MA(CLOSE,5),BK; //Harga penutupan lebih besar dari moving average 5 periode, posisi beli
SP——Jual untuk menutup posisi
Contoh: CLOSE<MA(CLOSE,5),SP; // Harga penutupan kurang dari moving average 5 periode, jual dan tutup posisi
SK——Jual Posisi Pembukaan
Contoh: CLOSE<MA(CLOSE,5),SK; //harga penutupan kurang dari rata-rata pergerakan 5 periode, posisi jual
BP——Beli untuk Menutup
Contoh: CLOSE>MA(CLOSE,5),BP; //Harga penutupan lebih besar dari moving average 5 periode, beli dan tutup posisi
BPK——Beli untuk menutup posisi, dan beli untuk membuka posisi (reverse long)
Contoh: CLOSE>MA(CLOSE,5),BPK; // Harga penutupan lebih besar dari rata-rata pergerakan 5 periode, tutup posisi short lalu beli untuk membuka posisi baru.
SPK——Jual untuk menutup posisi dan jual untuk membuka posisi (short selling)
Contoh: CLOSE<MA(CLOSE,5),SPK; // Harga penutupan kurang dari rata-rata pergerakan 5 periode, tutup posisi panjang lalu jual posisi terbuka.
CLOSEOUT——Tutup semua posisi. Disarankan untuk menggunakannya dalam model posisi naik dan turun. Contoh: CLOSEOUT; tutup semua posisi di semua arah.
API bahasa JavaScript yang umum digunakan
Sebelum menjelaskan API bahasa JavaScript, mari kita lihat struktur kode umum dan komponen fungsionalnya. Ini akan membantu Anda lebih memahami API. Lihat contoh di bawah ini:

Gambar 2-10 Contoh kode JavaScript
Seperti yang ditunjukkan pada kode di atas:
Membuat variabel dalam bahasa JavaScript sering disebut sebagai "mendeklarasikan" variabel. Dalam kode merah, kita menggunakan kata kunci var untuk mendeklarasikan variabel, dan nama variabel dalam kode oranye: “aa”.
Dalam JavaScript, tanda sama dengan digunakan untuk menetapkan nilai, yaitu, nilai di sisi kanan "=" ditetapkan ke variabel di sisi kiri.
Kode cyan "exchange" adalah objek exchange. Exchange di sini merujuk pada perusahaan berjangka yang Anda tetapkan. Ini adalah format tetap, yang berarti bahwa saat Anda memanggil API bahasa JavaScript, Anda harus menentukan objek exchange.
Kode hijau adalah API JavaScript. Saat kita memanggilnya, kita sebenarnya memanggil fungsi dalam objek exchange. Perhatikan titik setelah kode biru, yang juga merupakan format tetap. Fungsi di sini sama dengan fungsi yang kita pelajari di sekolah menengah. Jika fungsi tidak memerlukan parameter, gunakan tanda kurung kosong untuk menunjukkannya; jika fungsi harus memberikan parameter, tuliskan parameter di dalam tanda kurung.
Setelah memahami struktur dasar dan prinsip kode melalui contoh, kami akan menunjukkan kepada Anda beberapa API bahasa JavaScript yang akan sering Anda gunakan di masa mendatang.
SetContractType("Kode Produk")——Tetapkan jenis kontrak, yaitu produk mana yang ingin Anda perdagangkan
Contoh: exchange.SetContractType("rb1905"); //Tetapkan jenis transaksi ke "Kontrak Rebar 1905"
GetTicker——Dapatkan data Tick
Contoh: exchange.GetTicker(); //Dapatkan data Tick
GetRecords——Dapatkan data K-line
Contoh: exchange.GetRecords(); //Dapatkan data K-line
Membeli
Contoh: exchange.Buy(5000, 1); //Beli satu lot pada harga 5000 yuan
Jual——Beli
Contoh: exchange.Sell(5000, 1); //Jual satu lot pada harga 5.000 yuan
GetAccount——Dapatkan informasi akun
Contoh: exchange.GetAccount(); //Dapatkan informasi akun
GetPosition——Dapatkan informasi posisi
Contoh: exchange.GetPosition(); //Dapatkan informasi posisi
SetDirection——Mengatur jenis order panjang atau pendek
Contoh:
exchange.SetDirection("buy"); //Mengatur jenis order untuk membeli untuk membuka posisi long
exchange.SetDirection("closebuy"); //Mengatur jenis order untuk menjual untuk menutup posisi long
exchange.SetDirection("sell"); //Mengatur jenis order untuk menjual untuk membuka posisi short
exchange.SetDirection("closesell"); //Mengatur jenis order untuk membeli untuk menutup posisi short
Log - Keluarkan pesan dalam log
Contoh: Log("hello, world"); // Keluarkan "hello world" di log
Tidur - Hentikan program untuk jangka waktu tertentu
Contoh: Sleep(1000); //Jeda program selama 1 detik
Beberapa dari Anda mungkin memiliki pertanyaan, bagaimana cara mengingat begitu banyak API di atas? Sebenarnya, Anda tidak perlu menghafal semua ini. Situs web resmi Inventor Quant memiliki serangkaian dokumentasi API yang terperinci. Sama seperti mencari di kamus, saat Anda membutuhkannya, cari saja. Jangan terintimidasi oleh kode dan konten lain yang baru pertama kali Anda pahami. Yang kami inginkan adalah mengatur strategi kami sendiri melalui bahasa-bahasa ini. Harap diingat bahwa teknologi tidak pernah menjadi ambang batas kuantifikasi. Apakah Anda memiliki strategi yang baik adalah kunci apakah Anda dapat bertahan lama di pasar kuantitatif.
Meringkaskan
Di atas adalah API yang paling umum digunakan dalam perdagangan kuantitatif, yang pada dasarnya meliputi: memperoleh data, menghitung data, menempatkan order beli dan jual, yang cukup untuk menangani strategi perdagangan kuantitatif sederhana. Tentu saja, jika Anda ingin menulis strategi yang lebih kompleks, Anda perlu mengunjungi situs web resmi Inventor Quantitative Tool untuk mendapatkannya.
Pekerjaan rumah
- Cobalah tulis pernyataan dalam Bahasa Mai bahwa rata-rata pergerakan periode 5 melintasi rata-rata pergerakan periode 10.
- Coba gunakan GetAccount di JavaScript untuk mendapatkan informasi akun Anda, dan cetak ke log menggunakan Log.
Pratinjau Bagian Berikutnya
Pemrograman itu ibarat merakit balok-balok Lego, API ibarat berbagai bagian balok, dan proses pemrograman adalah menyatukan berbagai bagian Lego menjadi sebuah mainan yang lengkap. Pada bagian berikutnya, saya akan memandu Anda menggunakan Mai Language API untuk menyusun strategi perdagangan kuantitatif yang lengkap.
2.4 Cara menulis strategi pada Sistem Kuantitatif Inventor
ringkasan
Setelah mempelajari bagian sebelumnya, Anda sekarang akhirnya dapat mulai menulis strategi perdagangan kuantitatif. Ini akan menjadi langkah paling penting bagi Anda untuk beralih dari perdagangan manual ke perdagangan kuantitatif. Sebenarnya, hal itu tidak terlalu misterius. Menulis strategi tidak lebih dari sekadar mengubah ide Anda menjadi kode. Bagian ini akan menerapkan strategi perdagangan kuantitatif dari awal dan membiasakan Anda dengan cara menulis strategi pada Sistem Kuantitatif Inventor.
Mempersiapkan
Pertama, buka situs web resmi Inventor Quantitative Tool, lalu klik "Strategy Library" dan "New Strategy" secara bergantian. Perlu dicatat bahwa sebelum mulai menulis kode, Anda perlu memilih bahasa Mai atau bahasa JavaScript di menu tarik-turun bahasa pemrograman. Tentu saja, platform ini juga mendukung Python, C++, dan bahasa visual.
Ide-ide strategis
Pada bab sebelumnya, kami memperkenalkan strategi untuk menembus harga rata-rata pergerakan. Yaitu: jika harga lebih tinggi dari harga rata-rata 10 hari terakhir, beli; jika harga lebih rendah dari harga rata-rata 10 hari terakhir, jual. Namun, meskipun harga dapat secara langsung mencerminkan status pasar, akan ada banyak sinyal terobosan yang salah; jadi kita perlu meningkatkan dan menyempurnakan strategi ini.
Pertama, pilih moving average periode yang lebih besar untuk menentukan arah tren, yang setidaknya telah menyaring hampir setengah dari sinyal terobosan palsu. Meskipun moving average periode besar lambat, ia akan lebih stabil; kemudian, untuk lebih meningkatkan tingkat keberhasilan entri, tambahkan kondisi lain bahwa moving average periode besar ini setidaknya naik; akhirnya, gunakan hubungan posisi relatif harga, moving average jangka pendek, dan moving average jangka panjang untuk membentuk strategi perdagangan yang lengkap.
Logika Strategi
Dengan ide dan pemikiran strategis di atas, kita dapat mencoba membangun logika strategi. Logikanya di sini bukanlah meminta Anda menghitung hukum pergerakan langit; hal itu tidak serumit itu. Itu tidak lebih dari sekadar mengungkapkan ide-ide strategis sebelumnya dalam kata-kata.
Pembukaan posisi panjang: Jika tidak ada posisi saat ini, dan harga penutupan lebih besar dari rata-rata pergerakan jangka pendek, dan harga penutupan lebih besar dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka pendek lebih besar dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka panjang meningkat.
Buka posisi pendek: Jika tidak ada posisi saat ini, dan harga penutupan kurang dari rata-rata pergerakan jangka pendek, dan harga penutupan kurang dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka pendek kurang dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka panjang turun.
Penutupan posisi panjang: Jika saat ini Anda memegang order panjang dan harga penutupan kurang dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka pendek kurang dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka panjang menurun.
Penutupan posisi pendek: Jika saat ini Anda memegang order pendek, dan harga penutupan lebih besar dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka pendek lebih besar dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka panjang sedang naik.
Di atas adalah bagian logis dari keseluruhan strategi perdagangan kuantitatif. Jika kita mengubah versi teks dari logika strategi menjadi kode, maka akan ada tiga langkah: memperoleh kondisi pasar, menghitung indikator, dan menempatkan order beli dan jual.
Strategi Bahasa Inggris
Langkah pertama adalah memperoleh informasi pasar. Dalam strategi perdagangan kuantitatif ini, kita hanya perlu memperoleh harga penutupan. Dalam Bahasa Mai, API untuk memperoleh harga penutupan adalah: CLOSE. Artinya, Anda hanya perlu menulis CLOSE dalam kode untuk memperoleh harga penutupan K-line terkini.
Kemudian muncul indikator perhitungan. Dalam strategi perdagangan kuantitatif ini, kami menggunakan total 2 teknologi, yaitu: rata-rata pergerakan jangka pendek dan rata-rata pergerakan jangka panjang. Kami berasumsi bahwa rata-rata pergerakan jangka pendek adalah rata-rata pergerakan 10 periode dan rata-rata pergerakan jangka panjang adalah rata-rata pergerakan 50 periode. Jadi bagaimana kita menggunakan kode untuk mewakili rata-rata pergerakan 10 periode dan rata-rata pergerakan 50 periode? Silakan lihat gambar berikut:

Gambar 2-11 Kode strategi bahasa Mai
Dalam perdagangan manual, kita dapat melihat sekilas apakah rata-rata pergerakan 50 periode naik atau turun, tetapi bagaimana kita mengekspresikannya dalam kode? Pikirkanlah baik-baik, untuk menilai apakah rata-rata pergerakan sedang naik, bukankah nilai rata-rata pergerakan periode ke-50 dari garis K saat ini lebih besar daripada nilai rata-rata pergerakan periode ke-50 dari garis K sebelumnya, dan nilai rata-rata pergerakan periode ke-50 dari garis K sebelumnya lebih besar daripada nilai rata-rata pergerakan periode ke-50 dari garis K sebelumnya? Yang benar adalah sebaliknya, artinya rata-rata pergerakan sedang turun. Jadi dalam kode, seharusnya seperti ini:

Gambar 2-12 Kode rata-rata pergerakan penilaian bahasa Mai
Perhatikan kode berwarna merah muda “AND” pada baris 8 dan 9 pada gambar di atas. Kode tersebut berarti “dan” dalam bahasa Mai. Misalnya, baris ke-9 diterjemahkan ke dalam bahasa Mandarin sebagai berikut: Jika rata-rata pergerakan periode ke-50 dari garis K saat ini lebih besar daripada rata-rata pergerakan periode ke-50 dari garis K sebelumnya, dan rata-rata pergerakan periode ke-50 dari garis K sebelumnya lebih besar daripada rata-rata pergerakan periode ke-50 dari garis K sebelumnya, maka nilainya dihitung sebagai "ya"; jika tidak, nilainya dihitung sebagai "tidak" dan hasilnya ditetapkan ke "MA50_ISUP".
Langkah terakhir adalah menempatkan order beli dan jual. Anda hanya perlu memanggil API order dari alat kuantitatif inventor setelah kode logika beli dan jual untuk menjalankan operasi beli dan jual. Silakan lihat gambar berikut:

Gambar 2-13 Kode Transaksi Jual Beli Bahasa Mai
Perhatikan kode berwarna merah muda “OR” pada baris 13 dan 14 pada gambar di atas. Kode ini berarti “atau” dalam bahasa Mai. Misalnya, baris ke-13 diterjemahkan ke dalam bahasa Mandarin sebagai berikut: Jika harga penutupan garis K saat ini lebih rendah dari rata-rata pergerakan 50 periode garis K saat ini, atau rata-rata pergerakan 10 periode garis K saat ini lebih rendah dari rata-rata pergerakan 50 periode garis K saat ini, maka nilainya dihitung sebagai "ya" dan pesanan segera dibuat; jika tidak, maka dihitung sebagai "tidak" dan tidak ada yang dilakukan.
Harap diperhatikan: "AND" dan "OR" adalah operator logika dalam bahasa Mai:
“DAN” berarti jika semua kondisi adalah “ya”, maka kondisi akhir adalah “ya”;
“ATAU” berarti bahwa di antara semua kondisi, selama salah satu kondisinya adalah “ya”, kondisi akhir akan menjadi “ya”.
Meringkaskan
Di atas adalah keseluruhan proses penulisan strategi perdagangan dalam bahasa Mai pada Inventor Quantitative Tool. Hanya ada tiga langkah secara keseluruhan: dari memiliki ide strategi, hingga menyusun strategi dan menjelaskan logikanya dalam kata-kata, dan akhirnya menerapkan strategi perdagangan lengkap dengan kode. Meskipun ini adalah strategi sederhana, proses implementasi spesifiknya serupa dengan strategi yang lebih kompleks, kecuali bahwa algoritma dan struktur data strateginya berbeda. Oleh karena itu, selama Anda memahami dan menguasai proses strategi kuantitatif di bagian ini, Anda dapat menggunakan bahasa Mai untuk melakukan penelitian dan praktik strategi kuantitatif pada alat kuantitatif penemu sesuai kebutuhan.
Pekerjaan rumah
- Cobalah menerapkan sendiri strategi di bagian ini.
- Berdasarkan strategi di bagian ini, tambahkan fungsi stop-profit dan stop-loss.
Pratinjau Bagian Berikutnya
Dalam pengembangan strategi perdagangan kuantitatif, bahasa pemrograman ibarat senjata dan peralatan. Bahasa pemrograman yang baik dapat membantu Anda memperoleh hasil dua kali lipat dengan setengah usaha. Misalnya, ada lebih dari selusin bahasa yang paling umum digunakan dalam industri perdagangan kuantitatif, termasuk Python, C++, Java, C#, EasyLanguage, Mai Language, dll. Senjata mana yang harus saya pilih untuk masuk ke medan perang? Pada bagian selanjutnya kami akan memperkenalkan bahasa-bahasa pemrograman umum ini dan karakteristik masing-masing bahasa pemrograman.
Bab 3 Bahasa Pemrograman Sederhana untuk Menerapkan Strategi Perdagangan
3.1 Evaluasi Horizontal Bahasa Pemrograman Perdagangan Kuantitatif
ringkasan
Pada Bab 1 dan Bab 2, kita mempelajari dasar-dasar perdagangan kuantitatif dan cara menggunakan alat-alat kuantitatif milik penemu. Pada bab ini, kita akan menerapkan strategi perdagangan secara terperinci. Jika Anda ingin mengerjakan pekerjaan Anda dengan baik, Anda harus mengasah peralatan Anda terlebih dahulu. Untuk menerapkan strategi perdagangan, Anda harus terlebih dahulu menguasai bahasa pemrograman. Bagian ini pertama-tama memperkenalkan bahasa pemrograman utama dalam perdagangan kuantitatif, serta karakteristik masing-masing bahasa pemrograman.
Apa itu Bahasa Pemrograman
Sebelum mempelajari bahasa pemrograman, Anda harus terlebih dahulu memahami konsep "bahasa pemrograman". Bahasa pemrograman adalah bahasa yang dapat dipahami oleh manusia dan komputer. Bahasa pemrograman adalah kode komunikasi yang terstandarisasi. Tujuan dari bahasa pemrograman adalah untuk menggunakan bahasa manusia guna mengendalikan komputer dan memberi tahu komputer apa yang ingin kita lakukan. Komputer dapat menjalankan instruksi sesuai dengan bahasa pemrograman, dan kita juga dapat menulis kode untuk mengeluarkan instruksi ke komputer.
Sama seperti orang tua kita yang mengajari kita berbicara saat kita masih kecil, mereka juga mengajari kita cara memahami apa yang dikatakan orang lain. Setelah sekian lama dipengaruhi dan belajar sendiri, kami belajar berbicara tanpa menyadarinya dan dapat memahami apa yang dikatakan anak-anak lain. Ada banyak bahasa, termasuk bahasa Mandarin, Inggris, Prancis, dll. Misalnya:
Halo Dunia
Bahasa Indonesia: Halo Dunia
Bahasa Prancis: Halo semua orang di dunia
Jika Anda menggunakan bahasa pemrograman untuk menampilkan "Hello World" di layar komputer, tampilannya akan seperti ini:
Bahasa C: puts("Halo Dunia");
Bahasa Java: System.out.println("Halo Dunia");
Bahasa Python: print("Halo Dunia")
Kita dapat melihat bahwa bahasa komputer memiliki aturannya sendiri yang spesifik, dan ada banyak bahasa. Aturan bahasa ini adalah klasifikasi bahasa pemrograman yang perlu kami jelaskan kepada Anda hari ini. Dalam setiap klasifikasi, kita hanya perlu mengingat aturan yang paling mendasar dan umum digunakan, dan kita dapat menggunakan bahasa pemrograman ini untuk berkomunikasi dengan komputer dan membiarkan komputer menjalankan strategi yang sesuai sesuai dengan instruksi kita.
Klasifikasi bahasa pemrograman
Untuk memudahkan referensi dan perbandingan Anda, dan untuk memilih bahasa pemrograman perdagangan kuantitatif yang sesuai untuk Anda, kami akan mengklasifikasikan enam bahasa pemrograman yang paling umum digunakan, yaitu Python, Matlab/R, C++, Java/C#, EasyLanguage dan bahasa visual (seperti yang ditunjukkan di bawah).

Gambar 3-1 Evaluasi bahasa pemrograman
Kami memeringkatnya berdasarkan cakupan fungsional, kecepatan lari, skalabilitas, dan kesulitan belajar. Skornya berkisar antara 1 dan 5. Misalnya, skor 5 dalam hal rentang fungsional berarti fungsi tersebut kuat, dan skor 1 berarti fungsi tersebut kurang. (Seperti yang ditunjukkan di atas) Bahasa Visual dan EasyLanguage mudah dipelajari dan sangat cocok untuk pemula; Python kuat dan memiliki kemampuan ekspansi yang kuat, membuatnya cocok untuk mengembangkan strategi perdagangan yang lebih kompleks; C++ memiliki kecepatan perdagangan yang lebih cepat dan lebih cocok untuk pedagang frekuensi tinggi.
Namun, evaluasi setiap bahasa pemrograman terutama ditujukan pada penerapannya di bidang perdagangan kuantitatif dan mengandung unsur subjektif pribadi. Anda juga dipersilakan menyampaikan kritik pada kolom komentar atau mengemukakan pandangan Anda untuk didiskusikan. Selanjutnya, kami akan mulai memperkenalkan bahasa pemrograman tersebut satu per satu.
Bahasa Visual
Pemrograman visual memiliki sejarah yang panjang dan bukanlah hal baru. Konsep pemrograman "apa yang Anda lihat adalah apa yang Anda dapatkan" ini, yang dilengkapi dengan berbagai modul kontrol, dapat membangun logika kode dan melengkapi desain strategi perdagangan hanya dengan menyeret dan melepas. Prosesnya sangat mirip dengan membangun blok.

Gambar 3-2 Antarmuka bahasa pemrograman visual
Seperti ditunjukkan di atas, program yang sama dapat diselesaikan hanya dengan beberapa baris kode dalam pemrograman visual Platform Perdagangan Kuantitatif Inventor. Hal ini secara signifikan menurunkan ambang batas untuk pemrograman, yang merupakan pengalaman operasional yang hebat, khususnya bagi pedagang yang tidak memiliki pengetahuan tentang pemrograman.
Karena strategi implementasi dasar bahasa visual ini diubah ke C++, dampaknya terhadap kecepatan program pun kecil. Namun, fungsionalitas dan skalabilitasnya relatif lemah, dan tidak mungkin untuk mengembangkan strategi perdagangan yang terlalu rumit atau canggih.
Bahasa Mudah
Yang disebut EasyLanguage mengacu pada bahasa pemrograman yang unik untuk beberapa perangkat lunak perdagangan kuantitatif komersial. Meskipun bahasa-bahasa ini juga memiliki beberapa fitur berorientasi objek, fitur-fitur tersebut sebagian besar bersifat skrip dalam aplikasinya. Dari segi sintaksis, bahasa ini juga sangat mirip dengan bahasa alami kita. Bagi pemula perdagangan kuantitatif, menggunakan EasyLanguage sebagai titik masuk adalah pilihan yang lebih baik. Misalnya: bahasa Mai di platform perdagangan kuantitatif milik penemu.
Bahasa skrip ini tidak memiliki masalah dalam melakukan pengujian ulang strategi dan perdagangan nyata dalam perangkat lunak spesifiknya, tetapi sering kali terbatas dalam hal skalabilitas. Misalnya, pengembang strategi tidak dapat memanggil API eksternal. Selain itu, dalam hal kecepatan berjalan, bahasa skrip ini berjalan pada mesin virtualnya sendiri, dan optimasi kinerjanya tidak sebaik Java/C#, sehingga lebih lambat.
Python
Di Stackoverflow, jumlah kunjungan ke bahasa pemrograman utama sebagian besar tidak berubah dalam beberapa tahun terakhir, hanya Python yang menunjukkan tren peningkatan. Python dapat digunakan untuk pengembangan situs web, pembelajaran mesin, pembelajaran mendalam, analisis data, dll. Karena fleksibilitas dan keterbukaannya, bahasa ini telah menjadi bahasa yang paling umum. Hal yang sama berlaku di bidang investasi kuantitatif. Saat ini, sebagian besar platform kuantitatif domestik berbasis Python.
Struktur data dasar Python, daftar dan kamus, sangat kuat dan pada dasarnya dapat memenuhi kebutuhan representasi data. Jika Anda memerlukan struktur data yang lebih cepat dan lebih komprehensif, sebaiknya gunakan NumPy dan SciPy. Kedua pustaka ini pada dasarnya disebut pustaka standar untuk komputasi ilmiah Python.
Untuk rekayasa keuangan, pustaka yang lebih terarah adalah Pandas, yang memiliki dua struktur data, Series dan DataFrame, dan sangat cocok untuk memproses deret waktu.
Dalam hal kecepatan, Python berada di tengah-tengah, lebih lambat dari C++ dan lebih cepat dari EasyLanguage, terutama karena Python adalah bahasa yang dinamis dan kecepatannya rata-rata ketika dijalankan dalam Python murni. Namun, Anda dapat menggunakan Cython untuk mengoptimalkan beberapa fungsi secara statis agar mendekati kecepatan C++.
Sebagai bahasa pemersatu, Python adalah nomor satu yang tak terbantahkan dalam hal kinerja ekspansi. Selain dapat terhubung ke bahasa lain secara ekstensif, API ekspansi juga dirancang agar sangat mudah digunakan. Dalam hal kesulitan belajar, Python memiliki sintaksis yang sederhana, kode yang sangat mudah dibaca, dan mudah untuk memulai.
Matlab/R
Berikutnya adalah Matlab dan R. Kedua bahasa ini terutama digunakan untuk analisis data. Para penulis bahasa ini telah membuat banyak desain sintaksis untuk operasi ilmiah. Karakteristiknya adalah bahwa mereka secara alami mendukung operasi perdagangan kuantitatif. Akan tetapi, cakupan penerapannya relatif terbatas dan umumnya digunakan untuk analisis data dan pengujian ulang strategi. Untuk pengembangan sistem perdagangan dan algoritma strategi, kegunaan dan stabilitasnya relatif buruk.
Selain itu, kecepatan berjalan dan skalabilitasnya relatif buruk karena Matlab dan R berjalan pada mesin virtual bahasa yang unik. Dalam hal kinerja, mesin virtual mereka jauh lebih buruk daripada Java dan C#. Tetapi karena sintaksisnya lebih dekat dengan ekspresi matematika, mereka relatif lebih mudah dipelajari.
C++
C++ adalah bahasa pemrograman serba guna yang mendukung berbagai model pemrograman, seperti pemrograman prosedural, abstraksi data, pemrograman berorientasi objek, pemrograman generik, dan pola desain. Anda dapat menggunakan C++ untuk mengimplementasikan semua fungsi yang ingin Anda capai, tetapi kelemahan terbesar dari bahasa yang begitu canggih adalah sangat sulit dipelajari, seperti templat, pointer, kebocoran memori, dll.
Saat ini, C++ masih menjadi bahasa pemrograman yang lebih disukai untuk perdagangan bervolume besar dan berfrekuensi tinggi. Alasannya sederhana. Karena karakteristik bahasa C++ lebih mudah diterapkan pada komputer, bahasa ini merupakan alat yang paling efektif untuk mengembangkan sistem pengujian ulang dan eksekusi berkinerja tinggi yang memproses data dalam jumlah besar.
Java/C#
Java/C# keduanya adalah bahasa statis yang berjalan pada mesin virtual. Dibandingkan dengan C++, tidak ada kesalahan array out-of-bounds, tidak ada coredump, pengecualian yang dilemparkan dapat secara akurat menemukan lokasi kode kesalahan, mereka memiliki mekanisme pengumpulan sampah otomatis sendiri, tidak perlu khawatir tentang kebocoran memori, dll. Oleh karena itu, dalam hal kesulitan mempelajari sintaksis, mereka juga lebih mudah daripada C++. Dalam hal kecepatan berjalan, karena semua mesin virtual mereka memiliki fungsi JIT sendiri untuk kompilasi runtime, kecepatan mereka hanya kalah dari C++.
Namun, dalam hal fungsionalitas, tidak mungkin untuk mengoptimalkan sistem perdagangan yang mendasarinya seperti C++. Dalam hal kinerja perluasan, bahasa ini lebih lemah daripada C++ karena perluasannya harus melewati jembatan C, dan kedua bahasa ini sendiri berjalan pada mesin virtual, jadi saat memperluas modul fungsional, perlu melewati lapisan dinding tambahan untuk mencapainya.
Meringkaskan
Tetapi sekali lagi, bahasa pemrograman kuantitatif tidaklah penting, yang penting adalah idenya. Sama sekali tidak ada masalah dalam menggunakan bahasa Mai kuantitatif dan bahasa visualisasi yang diciptakan oleh penemu sebagai batu loncatan menuju entri kuantitatif. Untuk meningkatkan setelah entri, Anda perlu terus mencoba dan mengeksplorasi dalam kombinasi dengan kondisi pasar yang berbeda. Dapat dikatakan bahwa ide menentukan jalan keluar dan visi menentukan wilayah.
"Rancang strategi Anda, perdagangkan ide-ide Anda." Dari perspektif ini, inti dari perdagangan kuantitatif masih berupa perdagangan ide. Sebagai pedagang kuantitatif, Anda tidak hanya perlu menguasai sintaksis dasar dan fungsi platform penulisan strategi, tetapi juga perlu merasakan konsep perdagangan dalam pertarungan sesungguhnya. Kuantifikasi hanyalah alat dan pembawa untuk mencerminkan konsep perdagangan yang berbeda.
Pekerjaan rumah
- Apa keuntungan bahasa Python untuk perdagangan kuantitatif?
- Cobalah untuk menulis beberapa API yang umum digunakan menggunakan bahasa Mai milik penemunya?
Pratinjau Bagian Berikutnya
Saya yakin bahwa dengan pengenalan bahasa pemrograman di atas, Anda pasti tahu cara memilihnya. Dalam beberapa bab berikutnya, kita akan mempelajari pengembangan strategi perdagangan kuantitatif secara terarah sesuai dengan klasifikasi bahasa pemrograman.
3.2 Panduan Memulai Cepat Bahasa Mai
ringkasan
Apa itu Bahasa Mai? Bahasa Mai adalah serangkaian pustaka fungsi terprogram yang diperluas dari indikator teknis saham awal. Algoritmenya dienkapsulasi ke dalam fungsi, dan pengguna hanya perlu memanggil fungsi baris demi baris seperti bermain dengan blok bangunan untuk menerapkan logika strategi.
Mengadopsi mode konstruksi "sintaks kecil, fungsi besar", yang sangat meningkatkan efisiensi penulisan. Strategi yang membutuhkan lebih dari 100 kalimat dalam bahasa lain umumnya dapat ditulis hanya dalam selusin kalimat dalam Bahasa Mai. Sehubungan dengan pustaka fungsi statistik keuangan dan struktur data alat kuantitatif milik penemu, ia juga dapat mendukung beberapa logika perdagangan yang kompleks.
Strategi Lengkap
Untuk membantu Anda memahami dengan cepat pengetahuan utama di bagian ini, sebelum memperkenalkan Inventor Quantitative Microwave Language Quick Start, Anda harus terlebih dahulu memiliki pemahaman awal mengenai konsep-konsep di bagian ini. Kami masih menggunakan rata-rata pergerakan jangka panjang 50 hari dan rata-rata pergerakan jangka pendek 10 hari sebagai kasus dasar dan meninjau kasus strategi lengkap yang disebutkan dalam bab sebelumnya:
Pembukaan posisi panjang: Jika tidak ada posisi saat ini, dan harga penutupan lebih besar dari rata-rata pergerakan jangka pendek, dan harga penutupan lebih besar dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka pendek lebih besar dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka panjang meningkat.
Buka posisi pendek: Jika tidak ada posisi saat ini, dan harga penutupan kurang dari rata-rata pergerakan jangka pendek, dan harga penutupan kurang dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka pendek kurang dari rata-rata pergerakan jangka panjang, dan rata-rata pergerakan jangka panjang turun.
Penutupan posisi panjang: Jika saat ini Anda memegang order panjang dan harga penutupan kurang dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka pendek kurang dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka panjang menurun.
Penutupan posisi pendek: Jika saat ini Anda memegang order pendek, dan harga penutupan lebih besar dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka pendek lebih besar dari rata-rata pergerakan jangka panjang, atau rata-rata pergerakan jangka panjang sedang naik.
Jika ditulis dalam kode bahasa Mai, tampilannya seperti ini:

Gambar 3-3 Contoh lengkap bahasa Mai
Untuk menulis strategi perdagangan kuantitatif yang lengkap, biasanya memerlukan beberapa langkah: akuisisi data, kalkulasi data, kalkulasi logis, penempatan order, dll. Seperti yang ditunjukkan pada gambar di atas, di seluruh kode, hanya satu API yang digunakan untuk mendapatkan data dasar, yaitu "CLOSE" di baris pertama dan kedua; kemudian baris pertama hingga kesembilan adalah bagian kalkulasi data; dan terakhir baris kesebelas hingga keempat belas adalah bagian kalkulasi logika dan penempatan order.
Harap perhatikan bahwa kode ungu adalah variabel; pada baris pertama hingga kesembilan, ":=" berwarna hijau adalah operator penugasan, dan data di sisi kanan operator penugasan ditetapkan ke variabel di sisi kiri setelah perhitungan; kode oranye adalah API, misalnya, pada baris pertama, pemanggilan MA (rata-rata bergerak) memerlukan pengiriman dua parameter, yang dapat dipahami sebagai pengaturan, yaitu, saat memanggil MA, Anda perlu mengatur jenis MA; "AND" dan "OR" berwarna merah mawar adalah operator logika, yang terutama digunakan untuk menghubungkan beberapa perhitungan logika, dsb. Dengan konsep pengetahuan dasar di atas, mari mulai mempelajari dasar-dasar bahasa Mai secara terperinci.
Data dasar
Data dasar (harga pembukaan, harga tertinggi, harga terendah, harga penutupan, volume perdagangan) merupakan bagian yang tidak terpisahkan dari perdagangan kuantitatif. Untuk memperoleh data dasar terkini dalam strategi, Anda hanya perlu memanggil API dari alat kuantitatif penemu. Jika Anda ingin memperoleh data dasar historis, Anda dapat menggunakan "REF", seperti: REF (CLOSE, 1) untuk memperoleh harga penutupan kemarin.
variabel
Variabel adalah angka yang dapat diubah. Nama variabel dapat dipahami sebagai kode. Penamaannya mendukung karakter Cina, huruf, angka, dan tanda hubung, tetapi panjangnya harus dibatasi dalam 31 karakter. Nama variabel tidak dapat diulang satu sama lain, nama parameter, atau nama fungsi (API), dan setiap pernyataan harus diakhiri dengan titik koma. Jika Anda ingin menambahkan komentar bahasa Anda sendiri setelah menulis, gunakan “//” di akhir. Perlu ditulis dalam mode huruf besar dengan metode masukan setengah lebar. Seperti yang ditunjukkan pada gambar berikut:

Gambar 3-4 Tipe data bahasa Mai
Penugasan Variabel
Penugasan variabel adalah untuk menetapkan nilai di sisi kanan operator penugasan ke variabel di sisi kiri. Ada 4 jenis operator penugasan, yang dapat mengontrol apakah nilai ditampilkan pada diagram dan menentukan posisi tampilan. Huruf hijau pada gambar di bawah adalah operator penugasan, yaitu “:”, “:=", “^^”, dan “..”. Komentar kode pada gambar menjelaskan maknanya secara terperinci.

Gambar 3-5 Penetapan variabel bahasa Mai
Jenis data
Dalam bahasa Mai, ada banyak tipe data, di antaranya yang paling umum digunakan adalah tipe numerik, tipe string, dan tipe Boolean. Tipe numerik adalah angka, termasuk bilangan bulat, desimal, angka positif dan negatif, dll., seperti: 1, 2, 3, 1.1234, 2.23456...; tipe string dapat dipahami sebagai teks, bahasa Mandarin, bahasa Inggris, dan angka semuanya dapat berupa string, seperti: 'Inventor Quantification', 'CLOSEPRICE', '6000', dan tipe string harus dibungkus dengan titik koma bahasa Inggris; Tipe Boolean adalah yang paling sederhana, hanya memiliki dua nilai "ya" dan "tidak", seperti: 1 mewakili benar untuk "ya", dan 0 mewakili salah untuk "tidak".
Operator relasional
Operator relasional, seperti namanya, adalah operator yang digunakan untuk membandingkan hubungan antara dua nilai. Nilai-nilai tersebut sama dengan, lebih besar dari, lebih kecil dari, lebih besar dari atau sama dengan, lebih kecil dari atau sama dengan, dan tidak sama dengan, sebagaimana ditunjukkan di bawah ini:

Gambar 3-6 Operator bahasa Mai
Operator logis
Operasi logika dapat menghubungkan pernyataan Boolean yang terpisah menjadi satu kesatuan. Yang paling umum digunakan adalah "AND" dan "OR". Misalkan terdapat dua nilai bertipe Boolean, yaitu "harga penutupan lebih besar dari harga pembukaan" dan "harga penutupan lebih besar dari moving average", maka keduanya dapat kita gabungkan menjadi suatu nilai Boolean, seperti: "harga penutupan lebih besar dari harga pembukaan dan (AND) harga penutupan lebih besar dari moving average", "harga penutupan lebih besar dari harga pembukaan atau (OR) harga penutupan lebih besar dari moving average".

Gambar 3-7 Operasi logika bahasa Mai
Perhatian semuanya:
“DAN” berarti jika semua kondisi adalah “ya”, maka kondisi akhir adalah “ya”;
“ATAU” berarti bahwa di antara semua kondisi, selama salah satu kondisinya adalah “ya”, kondisi akhir akan menjadi “ya”.
“DAN” dapat ditulis sebagai “&&” dan “ATAU” dapat ditulis sebagai “||”.
Operator Aritmatika
Operator aritmatika yang umum digunakan dalam bahasa Mai ("+", "-",*”, “/”) tidak berbeda dengan matematika yang dipelajari di sekolah dasar, seperti yang ditunjukkan di bawah ini:

Gambar 3-8 Operasi aritmatika dalam bahasa Mai
Prioritas
Jika ada 100*Untuk ekspresi (10-1)/(10+5), langkah manakah yang dihitung pertama kali oleh program? Matematika sekolah menengah memberi tahu kita: ① Jika itu adalah operasi pada tingkat yang sama, umumnya dihitung dari kiri ke kanan. ② Jika ada penjumlahan dan pengurangan serta perkalian dan pembagian, hitunglah perkalian dan pembagian terlebih dahulu, baru kemudian penjumlahan dan pengurangan. ③Jika ada tanda kurung, hitung dulu isi tanda kurung tersebut. ④ Jika sesuai dengan hukum operasi, hukum operasi dapat digunakan untuk menyederhanakan perhitungan. Prioritas bahasa Mai sama seperti yang ditunjukkan di bawah ini:

Gambar 3-9 Prioritas operasi aritmatika dalam bahasa Mai
Mode Eksekusi
Dalam bahasa Mai alat kuantitatif penemu, ada dua mode untuk eksekusi strategi program, yaitu: mode harga penutupan dan mode harga waktu nyata. Mode harga penutupan berarti sinyal K-line saat ini terbentuk, dan transaksi order dieksekusi segera ketika K-line berikutnya dimulai. Mode harga waktu nyata berarti bahwa setelah sinyal K-line saat ini terbentuk, transaksi order akan segera dieksekusi.
Strategi intraday
Jika ini adalah strategi intraday, saat Anda perlu menutup posisi pada akhir hari perdagangan, Anda perlu menggunakan fungsi waktu "WAKTU". Fungsi ini ditampilkan dalam bentuk empat digit ketika berada di atas periode kedua dan di bawah periode hari, yaitu: HHMM (1450-14:50). Catatan: Saat menggunakan fungsi TIME sebagai kondisi untuk menutup posisi di akhir perdagangan, sebaiknya kondisi pembukaan juga memiliki batas waktu yang sesuai. Seperti yang ditunjukkan di bawah ini:

Gambar 3-10 Fungsi waktu bahasa mikrofon
Klasifikasi Model

Gambar 3-11 Klasifikasi model bahasa Mai
Ada dua jenis klasifikasi model dalam bahasa Mai, yaitu: model non-filtering dan model filtering. Ini sebenarnya sangat mudah dipahami: model non-penyaringan memungkinkan sinyal pembukaan atau penutupan berkelanjutan, yang dapat mewujudkan fungsi penambahan dan pengurangan posisi. Model penyaringan tidak memperbolehkan sinyal pembukaan atau penutupan yang berkelanjutan. Artinya, ketika sinyal pembukaan muncul, sinyal pembukaan berikutnya akan disaring hingga sinyal penutupan muncul. Urutan sinyal dalam model non-penyaringan adalah: buka-tutup-buka-tutup-buka.....
Meringkaskan
Di atas adalah pengantar singkat tentang bahasa Mai. Setelah mempelajarinya, Anda dapat memprogram strategi perdagangan kuantitatif. Jika Anda perlu menulis strategi yang lebih kompleks, Anda dapat merujuk ke dokumentasi API Inventor Quantitative Tool Mai Language, atau langsung berkonsultasi dengan layanan pelanggan resmi untuk menulis strategi perdagangan kuantitatif untuk Anda.
Pratinjau Bagian Berikutnya
Perdagangan intraday juga merupakan model perdagangan. Metode ini tidak menyimpan posisi semalaman, sehingga risiko volatilitas pasar lebih rendah. Begitu kondisi pasar yang tidak menguntungkan terjadi, penyesuaian dapat dilakukan tepat waktu. Setelah mempelajari pengantar bahasa Mai di bagian ini, di bagian berikutnya kami akan menunjukkan kepada Anda cara menulis strategi perdagangan kuantitatif intraday yang layak.
Pekerjaan rumah
- Cobalah menggunakan Alat Kuantitatif Inventor untuk menulis API dalam bahasa Mai untuk memperoleh data dasar.
- Apa saja cara untuk menampilkan penugasan variabel dalam bagan?
3.3 Bagaimana menerapkan strategi dalam bahasa Mai
ringkasan
Pada artikel sebelumnya, kami telah menjelaskan dasar penerapan strategi perdagangan dari aspek pengenalan bahasa Mai, sintaksis dasar, metode pelaksanaan model, klasifikasi model, dsb. Pada artikel ini, kami akan melanjutkan konten artikel sebelumnya dan membantu Anda mewujudkan strategi perdagangan kuantitatif intraday yang layak selangkah demi selangkah dari modul strategi dan indikator teknis yang umum digunakan.
Modul Kebijakan
Pikirkanlah, bagaimana Anda membangun robot menggunakan potongan-potongan Lego? Anda tidak dapat menyatukannya sepotong demi sepotong, dari atas ke bawah atau dari bawah ke atas. Siapa pun yang memiliki sedikit akal sehat tahu bahwa kepala, lengan, kaki, sayap, dll. harus disatukan secara terpisah dan kemudian digabungkan menjadi robot yang lengkap. Hal yang sama berlaku saat menulis program. Tulis fungsi yang dibutuhkan ke dalam modul strategi, lalu gabungkan modul strategi tersebut menjadi strategi perdagangan kuantitatif yang lengkap. Di bawah ini saya akan mencantumkan beberapa modul strategi yang umum digunakan:
Peningkatan fase
Kenaikan tahap dihitung dengan menghitung persentase perbedaan antara harga penutupan K-line saat ini dan harga penutupan N periode sebelumnya. Misalnya, untuk menghitung kenaikan 10 periode K-line terakhir, kodenya dapat ditulis sebagai:

Gambar 3-12 Tahapan Pertumbuhan Bahasa Mai
Puncak baru
Untuk menetapkan harga tertinggi baru, kita perlu menghitung apakah garis K saat ini lebih besar dari harga tertinggi dalam periode N. Misalnya, untuk menghitung apakah garis K saat ini lebih besar dari harga tertinggi di antara 10 garis K terakhir, kodenya dapat ditulis sebagai:

Gambar 3-13 Bahasa Mai mencapai titik tertingginya
Volume besar naik
Serangan ke atas bervolume besar dapat dipahami sebagai kenaikan harga dan peningkatan tajam dalam volume perdagangan. Misalnya: Jika harga penutupan garis K adalah 1,5 kali harga penutupan 10 garis K sebelumnya, berarti telah meningkat sebesar 50% dalam 10 hari; volume perdagangan melebihi 5 kali rata-rata 10 garis K terakhir. Hal ini dapat ditulis dalam kode sebagai:

Gambar 3-14 Volume Maiyuyu meningkat
Penyelesaian sempit
Konsolidasi rentang sempit berarti bahwa harga tetap dalam kisaran tertentu selama periode waktu terkini. Misalnya: Jika perbedaan antara harga tertinggi dalam 10 periode dan harga terendah dalam 10 periode, dibagi dengan harga penutupan K-line saat ini, kurang dari sekitar 0,05. Hal ini dapat ditulis dalam kode sebagai:

Gambar 3-15 Kisaran sempit bahasa gandum
Pengaturan bullish rata-rata bergerak
Susunan bullish dari moving average dibagi menjadi susunan bullish dan susunan bearish. Garis K disusun ke atas dengan support di bawah moving average 5-10-20-30-60, yang merupakan susunan bullish. Susunan bullish berarti tren pasar adalah tren naik yang kuat. Hal ini dapat ditulis dalam kode sebagai:

Gambar 3-16 Susunan Rata-rata Pergerakan Bahasa Mai Bullish
Titik tertinggi sebelumnya dan lokasinya
Untuk mendapatkan titik tinggi sebelumnya dan lokasi titik tinggi ini, Anda dapat langsung mendapatkannya melalui API dari Inventor Quantitative Tool. Hal ini dapat ditulis dalam kode:

Gambar 3-17 Titik puncak sebelumnya dari Bahasa Mai
Celah
Gap adalah situasi di mana harga tertinggi dan terendah dari dua garis K tidak terhubung. Gap terdiri dari dua garis K. Gap merupakan harga acuan untuk titik support dan titik tekanan di masa mendatang. Ketika suatu celah terjadi, dapat diasumsikan bahwa percepatan tren ke arah celah semula telah dimulai. Hal ini dapat ditulis dalam kode:

Gambar 3-18 Kesenjangan Bahasa Mai
Indikator teknis umum
Rata-rata Bergerak

Gambar 3-19 Grafik rata-rata bergerak
Dari sudut pandang statistik, rata-rata bergerak adalah rata-rata aritmatika harga harian, dan merupakan lintasan harga dengan tren. Sistem moving average merupakan alat teknis yang umum digunakan oleh sebagian besar analis. Dari sudut pandang teknis, sistem ini merupakan faktor yang memengaruhi harga psikologis analis teknis dan faktor pengambilan keputusan pembelian dan penjualan. Sistem ini merupakan alat referensi yang baik bagi analis teknis. Alat kuantitatif penemu mendukung berbagai jenis moving average, seperti yang ditunjukkan pada gambar berikut:

Gambar 3-20 Perhitungan berbagai indikator Bahasa Mai
Saluran BOLL

Gambar 3-21 Diagram saluran BOLL
BOLL, juga dikenal sebagai indikator Bollinger Band, juga menggunakan prinsip statistik untuk terlebih dahulu menghitung lintasan tengah berdasarkan rata-rata pergerakan N-hari, lalu menghitung lintasan atas dan bawah berdasarkan deviasi standar. Ketika saluran BOLL menyempit, artinya harga secara bertahap kembali ke rata-rata. Ketika saluran BOLL berubah dari sempit menjadi lebar, itu berarti pasar mulai berubah. Jika harga melewati jalur atas, itu menunjukkan bahwa daya beli telah meningkat. Jika harga melewati jalur bawah, itu menunjukkan bahwa daya jual telah meningkat.
Di antara semua indikator teknis, metode perhitungan BOLL adalah salah satu yang paling rumit, yang memperkenalkan konsep deviasi standar dalam statistik dan melibatkan perhitungan garis tengah (MB), garis atas (UP) dan garis bawah (DN). Cara perhitungannya adalah sebagai berikut:

Gambar 3-22 Perhitungan Bollinger Band Bahasa Mai
Indikator MACD
Indikator MACD menggunakan rata-rata pergerakan cepat (jangka pendek) dan lambat (jangka panjang) serta tanda-tanda konvergensi dan pemisahannya, dan melakukan operasi penghalusan ganda. MACD, yang dikembangkan berdasarkan prinsip moving average, telah menghilangkan cacat moving average yang sering mengirimkan sinyal palsu, dan telah mempertahankan efek moving average. Oleh karena itu, indikator MACD memiliki karakteristik tren moving average, stabilitas, dan stabilitas. Ini adalah indikator analisis teknis yang digunakan untuk menilai waktu pembelian dan penjualan saham dan memprediksi naik turunnya harga saham. Cara perhitungannya adalah sebagai berikut:

Gambar 3-24 Indikator MACD Bahasa Mai
Modul-modul di atas adalah modul-modul strategi yang paling umum digunakan dalam mengembangkan strategi perdagangan kuantitatif. Tentu saja, masih banyak lagi modul-modul lainnya. Melalui contoh-contoh modul di atas, Anda juga dapat menerapkan beberapa modul perdagangan yang paling umum digunakan dalam perdagangan subjektif Anda. Semua metode tersebut bersifat universal. Berikutnya, kita akan mulai menulis strategi perdagangan kuantitatif intraday yang layak.
Penulisan Strategi
Di pasar spot valuta asing, pernah ada strategi perdagangan terobosan yang beredar luas, yaitu strategi HANS123. Strategi ini menggunakan terobosan titik tinggi dan rendah sederhana dari garis N K setelah pembukaan sebagai kriteria untuk memicu sinyal perdagangan. Ini juga merupakan mode perdagangan dengan entri awal.
Logika Strategi
Bersiaplah memasuki pasar 30 menit setelah pasar dibuka;
Jalur atas = titik tertinggi 30 menit setelah pembukaan;
Jalur bawah = 30 menit rendah setelah pembukaan;
Ketika harga menembus jalur atas, beli dan buka posisi;
Ketika harga turun di bawah jalur bawah, buka posisi jual.
Strategi perdagangan intraday, tutup posisi sebelum pasar tutup;
Kode Strategi

Gambar 3-25 Kode strategi bahasa Mai
Meringkaskan
Di atas, kita telah mempelajari konsep modul strategi, dan melalui beberapa kasus modul strategi yang umum digunakan, kita telah menjadi akrab dengan metode pemrograman alat kuantitatif milik penemu. Dapat dikatakan bahwa belajar menulis modul strategi dan meningkatkan pemikiran logis pemrograman adalah langkah-langkah kunci dalam perdagangan kuantitatif tingkat lanjut. Akhirnya, kami menggunakan alat kuantitatif milik penemu untuk menerapkan strategi perdagangan yang umum digunakan dalam perdagangan spot valuta asing.
Pratinjau Bagian Berikutnya
Beberapa teman mungkin merasa bingung dan tidak dapat memahami kode-kode yang padat tersebut. Jangan khawatir, kami telah memikirkan semua ini untuk Anda. Dalam Inventor Quantitative Tool, terdapat pula bahasa pemrograman yang lebih cocok untuk pengguna pemula. Yaitu visual programming. Seperti namanya, apa yang Anda lihat itulah yang Anda dapatkan. Mari kita nantikan bersama!
Pekerjaan rumah
- Cobalah menerapkan beberapa modul perdagangan yang paling sering Anda gunakan dalam perdagangan subjektif.
- Cobalah untuk mengimplementasikan algoritma indikator KDJ menggunakan bahasa Mai dalam alat kuantitatif milik penemu.
3.4 Memulai Pemrograman Visual dengan Cepat
ringkasan
Banyak trader subjektif yang tertarik pada perdagangan kuantitatif. Mereka merasa percaya diri pada awalnya. Namun, setelah mempelajari sintaksis dasar, operasi data, struktur data, kontrol logis, dll. dari bahasa pemrograman tradisional, mereka sering kali putus asa atau menyerah setelah melihat kode yang panjang dan rumit. Pada saat ini, bahasa pemrograman visual mungkin lebih cocok bagi Anda untuk memulai.
Strategi Lengkap
Untuk membantu semua orang memahami pengetahuan utama bagian ini dengan cepat, sebelum memperkenalkan pengenalan singkat tentang Bahasa Pemrograman Visual Kuantitatif Inventor, mari kita lihat dulu seperti apa strategi yang ditulis dalam bahasa visual tersebut? Dan memiliki pemahaman awal tentang konsep kata benda di bagian ini. Mari kita ambil contoh paling sederhana, yaitu mengambil posisi long ketika harga penutupan lebih besar dari rata-rata pergerakan periode 50, dan mengambil posisi short ketika harga penutupan lebih kecil dari rata-rata pergerakan periode 50:
Pembukaan posisi panjang: Jika tidak ada posisi saat ini dan harga penutupan lebih besar dari rata-rata pergerakan 50 periode.
Buka posisi pendek: Jika tidak ada posisi saat ini dan harga penutupan kurang dari rata-rata pergerakan 50 periode.
Penutupan posisi panjang:Jika saat ini Anda memegang posisi panjang dan harga penutupan kurang dari rata-rata pergerakan periode 50.
Penutupan posisi pendek:Jika saat ini Anda memegang order short dan harga penutupan lebih besar dari rata-rata pergerakan periode 50.
Jika strategi di atas ditulis dalam bahasa visual, akan terlihat seperti ini (seperti yang ditunjukkan di bawah):

Gambar 3-26 Antarmuka bahasa visual
Seperti yang ditunjukkan pada gambar di atas, seluruh proses desain strategi adalah: menetapkan jenis pasar, memperoleh susunan garis K, memperoleh rata-rata 50 periode dari garis K sebelumnya, memperoleh harga penutupan dari garis K sebelumnya, memperoleh susunan posisi, menentukan status posisi, menentukan apakah harga penutupan lebih besar atau lebih kecil dari rata-rata pergerakan, dan melaksanakan pembukaan atau penutupan.
Di sini kita perlu memperhatikan konsep "array". Array merupakan salah satu struktur data penting untuk setiap bahasa pemrograman. Array seperti wadah yang dapat menyimpan serangkaian nilai. Misalnya, memanggil API untuk mendapatkan susunan K-line akan mengembalikan hasil berikut:

Gambar 3-27 Susunan K-line
Kode pada gambar di atas merupakan array K-line. Array tersebut berisi tiga data secara keseluruhan, yaitu data K-line sebelumnya, data K-line sebelumnya, dan data K-line saat ini. Jika array ini kita tetapkan ke variabel “arr”, maka jika kita ingin mendapatkan data terakhir pada array ini (data dari baris root K), kita dapat menuliskannya seperti ini (seperti yang ditunjukkan pada baris ke-4 dan ke-5 pada gambar di bawah ini):

Gambar 3-28 Referensi array
Kita bisa menggunakan cara penulisan kedua (baris 5), karena pada kenyataannya ada ratusan atau ribuan data garis K, dan garis K baru terus bertambah. Jadi Anda bisa terlebih dahulu mendapatkan panjang array. "arr.length" berarti mendapatkan panjang array, lalu kurangi "1", yang merupakan data K-line terbaru. Jika Anda ingin mendapatkan data K-line sebelumnya, kurangi "2".
Orang yang berhati-hati mungkin menemukan bahwa data ini diapit oleh "{}". Dari nama-nama dalam bahasa Inggris, Anda dapat mengetahui secara kasar bahwa data-data tersebut berhubungan dengan: waktu, harga pembukaan, harga tertinggi, harga terendah, harga penutupan, dan volume perdagangan. Jika Anda ingin mendapatkan harga penutupan garis K sebelumnya, cukup tambahkan "." dan nilai yang diperlukan di akhir, lihat baris 8 hingga 10 pada gambar di bawah.

Gambar 3-29 Referensi array
Mengapa menggunakan bahasa pemrograman visual?
Dengan konsep di atas, pertama-tama mari kita gunakan Java untuk menulis program yang mengeluarkan output "hello, world" untuk merasakan pemrograman tradisional, seperti yang ditunjukkan di bawah ini:

Gambar 3-30
Suatu program yang hanya mengeluarkan string "hello world!" hanya memerlukan 5 baris kode. Saya yakin bahwa sebagian besar pemula hanya mengetahui kata-kata bahasa Inggris "hello, world" dalam tanda kurung dan tidak tahu harus mulai dari mana dengan sisanya. Oleh karena itu, lebih baik memulai dengan pemrograman visual daripada bingung.
Apa itu pemrograman visual?
Pemrograman visual memiliki sejarah yang panjang dan bukanlah hal baru. Konsep pemrograman "apa yang Anda lihat adalah apa yang Anda dapatkan" ini, yang dilengkapi dengan berbagai modul kontrol, dapat membangun logika kode dan melengkapi desain strategi perdagangan hanya dengan menyeret dan melepas. Prosesnya sangat mirip dengan membangun blok.

Gambar 3-31
Seperti yang ditunjukkan di atas, program yang sama dapat diselesaikan hanya dengan satu baris kode dalam pemrograman visual Blockly. Hal ini secara signifikan menurunkan ambang batas untuk pemrograman, yang merupakan pengalaman operasional yang hebat, khususnya bagi pedagang yang tidak memiliki pengetahuan tentang pemrograman.
Apa saja ciri-ciri bahasa pemrograman visual?
Blockly bukanlah mainan pemrograman, melainkan editor asli, bukan sistem operasi yang disamarkan sebagai editor. Blockly mendukung banyak elemen dasar pemrograman, seperti variabel, fungsi, array, dan blok yang mudah diperluas dan disesuaikan. Anda dapat menggunakannya untuk menyelesaikan tugas pemrograman yang rumit. Desainnya sangat konsisten dengan filosofi Unix: Lakukan satu hal.
Penemu pemrograman visual kuantitatif juga diwujudkan melalui alat visualisasi blok yang dirilis oleh Google. Desainnya mirip dengan Scratch yang diluncurkan oleh MIT, dengan ambang batas yang benar-benar nol (seperti yang ditunjukkan di bawah).

Gambar 3-32
Dalam antarmuka pemrograman visual Inventor Quant, ratusan modul perdagangan yang umum digunakan sudah terpasang. Lebih banyak modul perdagangan akan ditambahkan di masa mendatang untuk mendukung ide-ide baru dan aplikasi baru para pedagang. Semua ini akan dikembangkan dan dikelola bersama oleh para pengembang.
Walau sintaksnya sederhana, tetapi tidak mengorbankan kinerja. Hampir dapat memenuhi pengembangan sebagian besar strategi perdagangan kuantitatif yang sederhana. Dari segi fungsionalitas dan kecepatan, tidak kalah dengan bahasa pemrograman konvensional seperti Python dan JavaScript. Di masa mendatang, ini akan mendukung aplikasi keuangan yang kompleks secara logis.
Cara penggunaan
Tulis program halo dunia
Jalankan dan cetak "halo, dunia"
Meringkaskan
Di atas, kami memulai dengan strategi visualisasi lengkap, kemudian memperkenalkan pengenalan dan karakteristik bahasa visualisasi, dan akhirnya memperkenalkan cara menggunakan bahasa visualisasi pada alat Inventor Quant, dan menulis contoh "hello world". Namun, kami perlu mengingatkan semua orang bahwa sebagai pengantar perdagangan kuantitatif, pemrograman visual merupakan batu loncatan yang baik, tetapi saat ini hanya antarmuka API terbatas yang tersedia di Inventor Quantitative Tool. Untuk perdagangan kuantitatif, sebaiknya gunakan ini sebagai alat bantu untuk membantu Anda memilah logika strategi.
Pratinjau Bagian Berikutnya
Tidak ada perbedaan antara dasar-dasar pemrograman visual dan bahasa pemrograman tingkat tinggi, dan beberapa aspek bahkan bersifat universal. Setelah Anda mempelajari pemrograman visual, Anda akan selangkah lebih dekat untuk mempelajari pemrograman tingkat tinggi. Pada bagian berikutnya, kita akan mempelajari pembelajaran lanjutan tentang pemrograman visual, termasuk cara menggunakan bahasa visual untuk menulis modul perdagangan kuantitatif yang umum digunakan pada Alat Kuantitatif Inventor, dan cara mengembangkan strategi perdagangan intraday yang lengkap.
Pekerjaan rumah
- Dalam antarmuka pemrograman visual Inventor Quant, gunakan API dan pahami artinya.
- Gunakan bahasa visual untuk memperoleh harga pembukaan terkini dan menampilkannya dalam log.
3.5 Bagaimana menerapkan strategi menggunakan bahasa visual
ringkasan
Pada artikel sebelumnya, kita telah mempelajari tentang pengenalan dan fitur bahasa pemrograman visual, contoh "hello world", dan penulisan strategi dalam alat perdagangan kuantitatif penemu, serta menjelaskan prasyarat untuk menerapkan strategi perdagangan. Dalam artikel ini, kami akan melanjutkan dari artikel sebelumnya, mulai dari modul strategi dan indikator teknis yang umum digunakan, lalu ke logika strategi, untuk membantu setiap orang mewujudkan strategi perdagangan intraday lengkap selangkah demi selangkah.
Modul Kebijakan
Peningkatan fase
Kenaikan tahap dihitung dengan menghitung persentase perbedaan antara harga penutupan K-line saat ini dan harga penutupan N periode sebelumnya. Misalnya, untuk menghitung kenaikan 10 periode K-line terakhir, kodenya dapat ditulis sebagai:

Gambar 3-36
Dari kode di atas, kita dapat melihat bahwa cara komputer mengeksekusi membutuhkan loop logika yang lengkap. Misalnya, untuk menghitung tingkat pertumbuhan 10 periode K-line terakhir, perlu dibagi ke dalam langkah-langkah berikut:
Pertama, komputer harus mengetahui dengan jelas produk apa yang ingin Anda perdagangkan. Misalnya, contoh di atas adalah metanol, jadi tetapkan kode kontrak menjadi: "MA888". Setelah menetapkan kode kontrak, Anda dapat memperoleh data K-line kontrak.
Dengan data garis K, Anda bisa mendapatkan data terperinci tentang garis K apa pun dari data garis K tersebut.
Untuk menghitung kenaikan periodik, Anda harus terlebih dahulu memperoleh harga penutupan dua garis K, misalnya: harga penutupan garis K sebelumnya dan harga penutupan garis K ke-11 sebelumnya.
Terakhir, berdasarkan harga penutupan kedua garis K ini, hitunglah rasio kenaikan tahap. Masing-masing strategi berikut memiliki karakteristik loop logika dan atribut kondisional tersebut. Setelah Anda memahami logika ini, pemrograman visual akan menjadi jauh lebih mudah.
Volume besar naik
Serangan ke atas bervolume besar dapat dipahami sebagai kenaikan harga dan peningkatan tajam dalam volume perdagangan. Misalnya: Jika harga penutupan garis K adalah 1,5 kali harga penutupan 10 garis K sebelumnya, berarti telah meningkat sebesar 50% dalam 10 hari; volume perdagangan melebihi 5 kali rata-rata 10 garis K terakhir. Hal ini dapat ditulis dalam kode sebagai:

Gambar 3-37
Celah
Gap adalah situasi di mana harga tertinggi dan terendah dari dua garis K tidak terhubung. Gap terdiri dari dua garis K. Gap merupakan harga acuan untuk titik support dan titik tekanan di masa mendatang. Ketika suatu celah terjadi, dapat diasumsikan bahwa percepatan tren ke arah celah semula telah dimulai. Hal ini dapat ditulis dalam kode:

Gambar 3-38
Indikator teknis umum
Rata-rata pergerakan EMA
Dari sudut pandang statistik, rata-rata bergerak adalah rata-rata aritmatika harga harian, dan merupakan lintasan harga dengan tren. Sistem moving average merupakan alat teknis yang umum digunakan oleh sebagian besar analis. Dari sudut pandang teknis, sistem ini merupakan faktor yang memengaruhi harga psikologis analis teknis dan faktor pengambilan keputusan pembelian dan penjualan. Sistem ini merupakan alat referensi yang baik bagi analis teknis. Alat kuantitatif penemu mendukung berbagai jenis moving average, seperti yang ditunjukkan pada gambar berikut:

Gambar 3-39
Indikator MACD
Indikator MACD menggunakan rata-rata pergerakan cepat (jangka pendek) dan lambat (jangka panjang) serta tanda-tanda konvergensi dan pemisahannya, dan melakukan operasi penghalusan ganda. MACD, yang dikembangkan berdasarkan prinsip moving average, telah menghilangkan cacat moving average yang sering mengirimkan sinyal palsu, dan telah mempertahankan efek moving average. Oleh karena itu, indikator MACD memiliki karakteristik tren moving average, stabilitas, dan stabilitas. Ini adalah indikator analisis teknis yang digunakan untuk menilai waktu pembelian dan penjualan saham dan memprediksi naik turunnya harga saham. Cara perhitungannya adalah sebagai berikut:

Gambar 3-40
Indikator KDJ
Indikator KDJ menggabungkan keunggulan konsep momentum, indikator kekuatan dan kelemahan serta rata-rata pergerakan, dan digunakan untuk mengukur tingkat variasi harga saham dari kisaran harga normal. Tidak hanya harga penutupan saja yang dipertimbangkan, tetapi juga harga tertinggi dan terendah terkini, yang menghindari kelemahan karena hanya mempertimbangkan harga penutupan dan mengabaikan volatilitas sebenarnya. Cara perhitungannya adalah sebagai berikut:

Gambar 3-41
Penulisan Strategi
Mentor Warren Buffett, Benjamin Graham pernah menyebutkan model perdagangan keseimbangan dinamis antara saham dan obligasi dalam bukunya "The Intelligent Investor".
Model perdagangan ini sangat sederhana:
Investasikan 50% uang Anda pada reksa dana saham dan 50% sisanya pada reksa dana obligasi. Artinya, saham dan obligasi masing-masing menyumbang setengahnya.
Menyeimbangkan kembali aset pada interval tertentu atau berdasarkan perubahan pasar untuk mengembalikan rasio aset saham terhadap aset obligasi ke rasio awal 1:1. Ini adalah keseluruhan logika strategi, termasuk kapan harus membeli dan menjual, dan berapa banyak yang harus dibeli dan dijual. Cukup sederhana!
Dalam metode ini, volatilitas dana obligasi sebenarnya sangat kecil, jauh lebih rendah daripada volatilitas saham, sehingga obligasi digunakan sebagai "jangkar acuan" di sini, yaitu menggunakan obligasi untuk mengukur apakah saham telah naik terlalu banyak. Itu masih peningkatan yang terlalu sedikit.
Jika harga saham naik, nilai pasar saham akan lebih besar dari nilai pasar obligasi. Ketika rasio nilai pasar keduanya melebihi ambang batas yang ditetapkan, posisi total akan disesuaikan kembali, saham akan dijual, dan Obligasi tersebut akan dibeli untuk mengembalikan rasio nilai pasar saham-obligasi ke nilai semula 1:1.
Sebaliknya, jika harga saham turun, nilai pasar saham akan lebih rendah dari nilai pasar obligasi. Ketika rasio nilai pasar keduanya melebihi ambang batas yang ditetapkan, maka posisi total akan disesuaikan kembali untuk membeli saham dan menjual obligasi untuk mengembalikan rasio nilai pasar saham-obligasi ke nilai semula 1:1.
Dengan begitu, dalam keseimbangan yang dinamis antara rasio saham dan obligasi, cukup untuk menikmati buah dari pertumbuhan saham dan mengurangi volatilitas aset. Sebagai pelopor investasi nilai, Graham memberikan kita ide yang bagus.
Logika Strategi
Berdasarkan nilai BTC saat ini, saldo akun akan berjumlah ¥5000 dalam bentuk tunai dan 0,1 BTC, dengan kata lain, rasio awal antara nilai pasar tunai dengan BTC adalah 1:1.
Jika harga BTC naik menjadi ¥6000, yaitu nilai pasar BTC lebih besar dari saldo akun, dan selisih di antara keduanya melampaui ambang batas yang ditetapkan, maka koin (6000-5000)/6000/2 akan dijual. Ini berarti BTC telah terapresiasi dan uang tersebut dapat ditukar kembali.
Jika harga BTC turun menjadi ¥4000, artinya nilai pasar BTC kurang dari saldo akun, dan selisih di antara keduanya melebihi ambang batas yang ditetapkan, maka belilah koin (5000-4000)/4000/2. Ini berarti BTC telah terdepresiasi, jadi belilah kembali BTC.
Dengan cara ini, tidak peduli apakah BTC naik atau turun, saldo akun dan nilai pasar BTC selalu tetap sama. Jika BTC terdepresiasi, belilah sebagian, dan ketika naik kembali, jual sebagian, seperti halnya keseimbangan.
Kondisi pembelian: Jika nilai pasar posisi saat ini dikurangi saldo tersedia saat ini kurang dari 5% dari saldo negatif tersedia saat ini, buka posisi beli.
Kondisi penjualan:Jika nilai pasar posisi saat ini dikurangi saldo tersedia saat ini lebih besar dari 5% dari saldo tersedia saat ini, tutup posisi dan jual.
Prasyarat
- Pasar Saat Ini
- Aset lancar
- Total nilai pasar koin
- Perbedaan Aset
Konstruksi strategi
Strategi Penulisan Visual Langkah 1
Kami menghitung empat prasyarat untuk strategi perdagangan dan menetapkannya ke variabelnya masing-masing. Dengan pemrograman visual, blok kode terlihat seperti ini. Seperti yang ditunjukkan di bawah ini

Gambar 3-42
Perlu dicatat bahwa total nilai pasar mata uang adalah total nilai pasar dari jumlah koin saat ini yang dimiliki, dan metode perhitungannya adalah dengan mengalikan jumlah total koin saat ini yang dimiliki dengan harga terbaru saat ini. Perbedaan aset adalah total nilai pasar mata uang dikurangi saldo tersedia saat ini.
Strategi Penulisan Visual Langkah 2
Setelah prasyarat dan kondisi yang diperlukan ditetapkan, Anda perlu menulis logika transaksi. Ini tidak serumit yang Anda bayangkan. Itu tidak lebih dari sekadar mengekspresikan logika strategi di atas dalam bentuk blok kode.
Artinya, jika selisih aset kurang dari 5% dari saldo negatif yang tersedia, beli; jika selisih aset lebih besar dari 5% dari saldo yang tersedia, jual. Seperti yang ditunjukkan di bawah ini:

Gambar 3-43
Seluruh strategi tampaknya telah ditulis, tetapi Anda harus tahu bahwa program dieksekusi dari atas ke bawah dan berhenti setelah dieksekusi. Akan tetapi, strategi perdagangan kami bukanlah mengeksekusi ketentuan perdagangan satu kali saja, tetapi mengeksekusinya berulang-ulang kali.
Dengan kata lain, program perlu terus-menerus memeriksa apakah kondisi strategi telah terpenuhi. Jika demikian, lakukan pembelian atau penjualan; jika tidak, terus periksa. Pada saat ini, Anda perlu menggunakan pernyataan loop lain, seperti yang ditunjukkan di bawah ini:

Gambar 3-44
Pengujian Ulang Strategi
Tidak ada perbedaan mendasar antara strategi visualisasi dan strategi yang ditulis dalam bahasa pemrograman lain. Strategi visualisasi juga mendukung pengujian data historis dari beberapa periode dan presisi. Tentu saja, strategi visualisasi juga mendukung perdagangan komoditas berjangka domestik dan asing serta mata uang digital secara real-time. Berikut ini adalah informasi backtest dari strategi tersebut:

Gambar 3-45
Pada titik ini, strategi perdagangan yang lengkap telah rampung. Untuk menjaga dari mereka yang ingin mengambil keuntungan dari kita, strategi ini telah dibagikan di Strategy Square dan dapat langsung disalin dan dipelajari.
Kesimpulan
Aturan 10.000 jam selalu ada, tetapi bagi pedagang yang tidak memiliki pengetahuan dasar, mustahil untuk menghabiskan 10.000 jam untuk kembali memasuki industri ini. Jadi Anda harus memiliki tangga, dan bagi pedagang yang tidak memiliki dasar pemrograman, pemrograman visual Inventor Quant adalah tangga untuk entri cepat.
Dengan pemrograman visual, Anda tidak perlu mengingat sintaksis dan nama metode, Anda cukup menelusuri modul fungsi dan menemukan apa yang Anda inginkan. Ini juga merupakan niat awal penemu kuantitatif, yaitu untuk membantu lebih banyak pemula kuantitatif menurunkan ambang batas masuk dan meningkatkan minat mereka dalam perdagangan kuantitatif, sehingga setiap orang dapat menjadi pedagang kuantitatif!
Akan tetapi, meski begitu, sama sekali tidak ada masalah dengan pemrograman visual sebagai batu loncatan menuju pembelajaran kuantitatif, tetapi ia juga memiliki keterbatasannya sendiri, seperti ketidakmampuan untuk mengembangkan strategi perdagangan yang terlalu rumit dan canggih. Tetapi ini tidak memengaruhi langkah pertama Anda dalam perdagangan kuantitatif!
Pratinjau Bagian Berikutnya
Dari perspektif profesionalisme perdagangan kuantitatif, bahasa Mai dan bahasa visual hanyalah bahasa transisi untuk memasuki dunia perdagangan kuantitatif. Karakteristik bahasa mereka menentukan keterbatasan mereka dalam pengembangan strategi perdagangan kuantitatif, dan beberapa strategi yang rumit tidak mungkin diterapkan. Jadi di bagian berikutnya kami akan mengajarkan Anda JavaScript, yang merupakan bahasa pemrograman tingkat tinggi formal dan satu-satunya cara bagi Anda untuk maju ke perdagangan kuantitatif tingkat lanjut.
Pekerjaan rumah
- Cobalah menerapkan indikator Bollinger Band menggunakan bahasa visual.
- Cobalah menggunakan modul perdagangan di bagian ini untuk menyelesaikan strategi perdagangan.
Bab 4 Menerapkan Strategi Perdagangan dalam Bahasa Pemrograman Umum
4.1 Memulai bahasa JavaScript dengan cepat
ringkasan
Sebagai bintang perdagangan kuantitatif masa depan, tidak mungkin bagi Anda untuk hanya mempelajari bahasa yang sederhana. Meskipun bahasa Mai dan bahasa visualisasi alat kuantitatif penemu dapat membantu Anda memulai, alat-alat tersebut memiliki banyak keterbatasan dalam pengembangan strategi karena karakteristik bahasanya. Oleh karena itu, jika Anda ingin mendapatkan pijakan dalam perdagangan kuantitatif, Anda harus mempelajari bahasa pemrograman formal.
Mengapa mempelajari JavaScript
Dibandingkan dengan bahasa visual, JavaScript memiliki kinerja dan efisiensi eksekusi yang lebih kuat. Dan dalam hal pengembangan strategi, JavaScript jauh lebih fleksibel daripada bahasa visual. Misalnya, jika Anda ingin mengembangkan strategi arbitrase, Anda tidak dapat menggunakan bahasa visual karena modulnya terbatas dan tidak mendukung strategi seperti arbitrase, sedangkan JavaScript dapat melakukannya dengan mudah.
Selain itu, JavaScript lebih ringkas dan elegan daripada bahasa visual. Misalnya, 10 baris kode dalam bahasa visual dapat ditulis dalam 5 baris dalam JavaScript. Dalam beberapa hal, bahasa visual hanyalah versi teks dari JavaScript, dan eksekusi serta logika kodenya hampir sama dengan JavaScript. Jika Anda mempelajari bahasa visual, mempelajari JavaScript akan sangat mudah.
Pengantar JavaScript
JavaScript adalah bahasa pemrograman tingkat tinggi formal. Cocok sebagai bahasa pengantar untuk mempelajari pemrograman dan juga sebagai bahasa kerja untuk pengembangan sehari-hari. Ini adalah salah satu bahasa komputer yang paling menjanjikan dan menjanjikan saat ini, dan masih memiliki posisi dominan yang tak tergoyahkan di sisi browser. Meskipun terkenal untuk mengembangkan halaman web, ia juga digunakan di banyak lingkungan non-browser, seperti server, PC, perangkat seluler, dll. Tentu saja, ia juga dapat melakukan perdagangan kuantitatif!
Strategi Lengkap
Untuk membantu Anda memahami dengan cepat pengetahuan utama di bagian ini, sebelum memperkenalkan pengenalan cepat bahasa JavaScript terkuantisasi sang penemu, sebaiknya Anda terlebih dahulu memiliki pemahaman awal mengenai konsep-konsep di bagian ini. Mari kita ambil strategi rata-rata pergerakan ganda yang paling sederhana sebagai contoh:
Pembukaan posisi panjang: Jika tidak ada posisi saat ini dan rata-rata pergerakan periode 5 lebih besar dari rata-rata pergerakan periode 20.
Buka posisi pendek: Jika tidak ada posisi saat ini dan rata-rata pergerakan periode 5 lebih kecil dari rata-rata pergerakan periode 20.
Penutupan posisi panjang:Jika saat ini Anda memegang posisi panjang dan rata-rata pergerakan periode 5 lebih kecil dari rata-rata pergerakan periode 20.
Penutupan posisi pendek: Jika Anda saat ini memegang posisi short dan rata-rata pergerakan periode 5 lebih besar dari rata-rata pergerakan periode 20.
Jika ditulis dalam JavaScript, akan terlihat seperti ini:

Gambar 4-1
Kode pada gambar di atas adalah strategi perdagangan kuantitatif lengkap yang ditulis dalam JavaScript. Dapat berjalan secara real time dan menempatkan pesanan secara otomatis. Dalam hal jumlah kode, bahasa ini lebih sederhana daripada bahasa visual. Proses desain keseluruhan strategi adalah: menetapkan jenis pasar, memperoleh data K-line, memperoleh informasi posisi, menghitung logika transaksi, dan menempatkan pesanan beli dan jual.
Identifikasi
Segala sesuatu dalam JavaScript (variabel, nama fungsi, dan operator) peka huruf besar/kecil, artinya nama variabel test dan nama variabel Test adalah dua variabel berbeda. Karakter pertama dari sebuah pengidentifikasi (nama variabel, fungsi, properti, parameter fungsi) harus berupa huruf, garis bawah (_), tanda dolar ($), dan karakter berikut juga dapat berupa angka, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-2
Catatan
Komentar meliputi komentar baris tunggal dan komentar tingkat blok. Komentar satu baris dimulai dengan dua garis miring, dan komentar blok dimulai dengan garis miring dan tanda bintang (/) dan diakhiri dengan tanda bintang dan garis miring (/) seperti yang ditunjukkan di bawah ini:

Gambar 4-3
Pernyataan
Setiap pernyataan diakhiri dengan titik koma; meskipun tidak diharuskan, kami sarankan Anda untuk tidak menghilangkannya. Menambahkan titik koma dapat meningkatkan kinerja kode dalam beberapa kasus, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-4
variabel
Variabel dapat menyimpan semua jenis data. Untuk membuat variabel, gunakan operator var diikuti dengan nama variabel. Saat mendefinisikan variabel, Anda juga dapat mengatur nilainya. Setelah variabel dibuat, Anda tidak perlu menggunakan operator var untuk menetapkan nilai variabel lagi, seperti yang ditunjukkan di bawah ini:

Gambar 4-5
data
JavaScript memiliki total 5 tipe data, yaitu: Undefined, Null, Boolean, Number, dan String, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-6
Undefined hanya memiliki satu nilai, nilai khusus "undefined", yang mewakili nilai yang belum ditetapkan. Misalnya, jika kita hanya mendefinisikan sebuah variabel dan tidak menetapkan nilainya, maka nilai variabel tersebut akan menjadi "undefined".
Null hanya memiliki satu nilai, yaitu "null" yang merupakan nilai khusus yang dikosongkan. Misalnya, jika kita membuat variabel terlebih dahulu, lalu menetapkan nilai variabel tersebut menjadi "null", maka nilai yang dikembalikan oleh variabel tersebut akan menjadi "null".
Boolean memiliki dua nilai, "true" dan "false". "true" mewakili benar dan "false" mewakili salah. Perhatikan bahwa "benar" dan "salah" keduanya adalah huruf kecil.
Angka adalah jenis angka, termasuk: angka positif, angka negatif, bilangan bulat, desimal, dan lain-lain. Selain itu, "NaN" juga merupakan angka khusus yang secara khusus menunjukkan situasi di mana tidak ada nilai yang dikembalikan, misalnya: 1 dibagi 0 menghasilkan "NaN".
Anda dapat memahami String sebagai teks, termasuk bahasa Mandarin dan Inggris, dan Anda dapat menyusun string menggunakan tanda kutip tunggal atau tanda kutip ganda. Misalnya: "fmz" atau "inventor quantization".
Objek
Anda dapat menganggap objek sebagai wadah untuk menyimpan berbagai data, yang atribut dan nilainya saling bersesuaian. Anda dapat membuat kontainer ini terlebih dahulu melalui operator baru. Anda juga dapat menambahkan properti dan metode ke objek yang dibuat, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-7
Kelompok
Array juga merupakan wadah untuk menyimpan berbagai data, tetapi elemen-elemen dalam wadah tersebut disusun dari kiri ke kanan. Elemen pertama adalah 0, elemen kedua adalah 1, dan seterusnya. Selain itu, array JavaScript dapat menyimpan tipe data apa pun, seperti yang ditunjukkan di bawah ini:

Gambar 4-8
fungsi
Fungsi dalam JavaScript pada dasarnya sama dengan fungsi yang kita pelajari di sekolah menengah. Anda dapat menganggapnya sebagai apa yang dimasukkan dan apa yang dikeluarkan melalui kalkulasi fungsi, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-9
Operator
JavaScript memiliki berbagai operator, yaitu operator aritmatika, operator perbandingan, dan operator logika. Di antaranya, operator aritmatika adalah operasi matematika berupa penjumlahan, pengurangan, perkalian, dan pembagian. Operator perbandingan dapat membandingkan apakah dua nilai lebih kecil atau lebih kecil. Operator logika yang utama adalah: logika AND, logika OR, dan logika NOT. Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-10
Perlu dicatat bahwa: "&&" adalah logika AND, yang berarti "dan". “||” adalah logika OR, yang berarti “atau”. "!" adalah negasi logis, yang berarti "tidak":
“&&” berarti bahwa ketika semua kondisi “benar”, kondisi akhir akan menjadi “benar”;
“||” berarti bahwa di antara semua kondisi, selama salah satu di antaranya “benar”, kondisi akhir akan menjadi “benar”.
Prioritas
Jika ada 100*Untuk ekspresi (10-1)/(10+5), langkah manakah yang dihitung pertama kali oleh program? Matematika sekolah menengah memberi tahu kita: ① Jika itu adalah operasi pada tingkat yang sama, umumnya dihitung dari kiri ke kanan. ② Jika ada penjumlahan dan pengurangan serta perkalian dan pembagian, hitunglah perkalian dan pembagian terlebih dahulu, baru kemudian penjumlahan dan pengurangan. ③Jika ada tanda kurung, hitung dulu isi tanda kurung tersebut. ④ Jika sesuai dengan hukum operasi, hukum operasi dapat digunakan untuk menyederhanakan perhitungan. Hal yang sama berlaku untuk prioritas bahasa JavaScript, seperti yang ditunjukkan di bawah ini:

Gambar 4-11
Pernyataan Kondisional
Sering kali saat menulis kode, Anda perlu melakukan tindakan yang berbeda untuk keputusan yang berbeda. Anda dapat menggunakan pernyataan kondisional dalam kode Anda untuk menyelesaikan tugas ini. Dalam JavaScript, kita dapat menggunakan pernyataan kondisional berikut:
pernyataan if - Gunakan pernyataan ini untuk mengeksekusi kode hanya jika kondisi yang ditentukan benar
pernyataan if...else - mengeksekusi kode jika suatu kondisi benar, dan mengeksekusi kode lain jika kondisinya salah
if...else Pernyataan if....else - Gunakan pernyataan ini untuk memilih salah satu dari beberapa blok kode untuk dieksekusi
pernyataan switch - Gunakan pernyataan ini untuk memilih salah satu dari beberapa blok kode untuk dieksekusi
Pernyataan Jika
Pernyataan ini mengeksekusi kode hanya jika kondisi yang ditentukan benar. Harap gunakan huruf kecil jika. Penggunaan huruf besar (IF) akan menghasilkan kesalahan JavaScript! Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-12#
Pernyataan if...else
Bila kondisinya benar, kode akan dieksekusi, dan bila kondisinya salah, kode lain akan dieksekusi, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-13
untuk loop
Terkadang kita perlu memperoleh data K-line beberapa hari terakhir, dan kita perlu memperolehnya dari array K-line secara berurutan sesuai dengan posisi data K-line. Maka akan sangat mudah untuk menggunakan for loop, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-14
Perulangan While
Kita semua tahu bahwa pasar terus berubah. Jika Anda ingin mendapatkan array K-line terbaru, Anda harus terus menjalankan kode yang sama berulang-ulang. Kemudian gunakan loop whilex. Selama kondisi yang ditentukan benar, loop selalu dapat memperoleh array K-line terbaru.

Gambar 4-15
pernyataan break dan pernyataan continue
Loop memiliki prasyarat. Hanya ketika prasyaratnya "benar" loop akan mulai melakukan sesuatu secara berulang, dan loop tidak akan berakhir sampai prasyaratnya "salah". Namun, pernyataan break dapat langsung keluar dari loop selama eksekusi loop; pernyataan continue dapat menghentikan loop tertentu dan kemudian melanjutkan loop berikutnya. Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-16
pernyataan pengembalian
Pernyataan return mengakhiri eksekusi suatu fungsi dan mengembalikan nilai fungsi. Pernyataan return hanya dapat muncul di badan fungsi. Jika muncul di tempat lain dalam kode, akan menyebabkan kesalahan sintaksis!

Gambar 4-17
Kerangka strategi CTA
Dalam Inventor Quantitative Tool, sangat mudah untuk menulis strategi dalam JavaScript. Alat resmi ini telah membangun serangkaian kerangka kerja strategi standar, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-18
Seperti yang ditunjukkan dalam kode di atas, ini adalah kerangka strategi standar. Kecuali untuk "kode produk berjangka komoditas" yang dapat diubah, semua hal lainnya berada dalam format tetap. Keuntungan terbesar menggunakan kerangka kerja untuk menulis strategi adalah Anda hanya perlu menulis logika strategi. Masalah lain seperti akuisisi pasar, pemrosesan pesanan, dll. semuanya ditangani oleh kerangka kerja tersebut. Ini memungkinkan Anda untuk fokus pada pengembangan strategi.
Meringkaskan
Di atas adalah pengantar singkat tentang bahasa JavaScript. Setelah mempelajarinya, Anda dapat memprogram strategi perdagangan kuantitatif. Jika Anda perlu menulis strategi yang lebih kompleks, Anda dapat merujuk pada dokumentasi API bahasa JavaScript dari Inventor Quantitative Tool.
Pratinjau Bagian Berikutnya
Perdagangan intraday juga merupakan model perdagangan. Metode ini tidak menyimpan posisi semalaman, sehingga risiko volatilitas pasar lebih rendah. Begitu kondisi pasar yang tidak menguntungkan terjadi, penyesuaian dapat dilakukan tepat waktu. Setelah mempelajari bahasa JavaScript di bagian ini, di bagian berikutnya kami akan menunjukkan kepada Anda cara menulis strategi perdagangan kuantitatif intraday yang layak.
Pekerjaan rumah
- Cobalah menggunakan bahasa JavaScript di Inventor Quantitative Tool untuk memperoleh data K-line historis.
- Cobalah tuliskan kode strategi di awal bagian ini dan tambahkan komentar.
4.2 Cara menerapkan strategi perdagangan menggunakan bahasa JavaScript
ringkasan
Pada artikel sebelumnya, kami telah menjelaskan prasyarat penerapan strategi perdagangan dari aspek pengenalan bahasa JavaScript, sintaksis dasar, kerangka strategi CTA, dsb. Pada artikel ini, kami akan melanjutkan konten artikel sebelumnya dan membantu Anda menerapkan strategi perdagangan kuantitatif intraday yang layak selangkah demi selangkah dari modul strategi dan indikator teknis yang umum digunakan.
Pengenalan Strategi
Bollinger Bands juga disebut Bollinger Channels, disingkat BOLL dalam bahasa Inggris. Ini adalah salah satu indikator teknis yang paling umum digunakan dan ditemukan oleh John Bollinger pada tahun 1980-an. Secara teori, harga selalu berfluktuasi dalam kisaran tertentu di sekitar nilai. Berdasarkan landasan teori ini, Bollinger Bands memperkenalkan konsep "saluran harga".
Metode perhitungannya adalah dengan menggunakan prinsip statistika, yaitu menghitung terlebih dahulu “simpangan baku” harga dalam kurun waktu tertentu, kemudian menambahkan/mengurangi 2 kali simpangan baku dari rata-rata pergerakan untuk mencari “interval kepercayaan” harga. Bentuk dasarnya adalah saluran strip yang terdiri dari tiga jalur lintasan (jalur tengah, jalur atas, dan jalur bawah). Jalur tengah adalah biaya rata-rata harga, sedangkan jalur atas dan bawah masing-masing mewakili garis tekanan dan garis dukungan harga.
Karena penerapan konsep deviasi standar, lebar Bollinger Band akan disesuaikan secara dinamis menurut fluktuasi harga terkini. Bila volatilitasnya kecil, Bollinger Bands akan menyempit; bila volatilitasnya besar, Bollinger Bands akan melebar. Ketika saluran BOLL menyempit, artinya harga secara bertahap kembali ke rata-rata. Ketika saluran BOLL berubah dari sempit menjadi lebar, itu berarti pasar mulai berubah. Jika harga melewati jalur atas, itu menunjukkan bahwa daya beli meningkat. Jika harga melewati jalur bawah, itu menunjukkan bahwa daya jual meningkat.
Metode perhitungan indikator Bollinger Bands
Di antara semua indikator teknis, metode perhitungan Bollinger Bands adalah salah satu yang paling rumit, yang memperkenalkan konsep deviasi standar dalam statistik dan melibatkan perhitungan garis tengah (MB), garis atas (UP) dan garis bawah (DN). Cara perhitungannya adalah sebagai berikut:
Jalur tengah = Rata-rata Pergerakan Sederhana selama periode waktu N
Jalur atas = Jalur tengah + K × simpangan baku periode waktu N
Rel bawah = Jalur tengah − Simpangan baku periode waktu K × N

Gambar 4-19
Logika Strategi
Ada banyak cara untuk menggunakan Bollinger Bands. Bollinger Bands dapat digunakan sendiri atau dikombinasikan dengan indikator lain. Dalam tutorial ini kita akan menggunakan metode paling sederhana dalam menggunakan Bollinger Bands. Yaitu: ketika harga menembus jalur atas dari bawah ke atas, yakni menembus garis tekanan atas, kita yakin bahwa kekuatan bullish menguat, gelombang pasar naik telah terbentuk, dan sinyal pembukaan beli pun terbentuk; ketika harga turun di bawah jalur bawah dari atas ke bawah, yakni turun di bawah garis support, kita yakin bahwa kekuatan bearish menguat, gelombang tren turun telah terbentuk, dan sinyal pembukaan jual pun terbentuk.

Gambar 4-20
Jika setelah membuka posisi beli, harga turun kembali ke jalur tengah Bollinger Bands, kami yakin bahwa kekuatan bullish melemah, atau kekuatan bearish menguat, dan sinyal jual-tutup terbentuk; jika setelah membuka posisi jual, harga naik kembali ke jalur tengah Bollinger Bands, kami yakin bahwa kekuatan bearish melemah, atau kekuatan bullish menguat, dan sinyal beli-tutup terbentuk.
Kondisi perdagangan
Pembukaan posisi panjang:Jika tidak ada posisi, dan harga penutupan lebih besar dari jalur atas, dan waktunya bukan 14:45
Buka posisi pendek:Jika tidak ada posisi, dan harga penutupan kurang dari jalur bawah, dan waktunya bukan 14:45
Penutupan posisi panjang:Jika Anda menahan pesanan panjang, dan harga penutupan kurang dari jalur tengah, atau waktunya 14:45
Penutupan posisi pendek:Jika Anda menahan pesanan pendek, dan harga penutupan lebih besar dari jalur tengah, atau waktunya 14:45
Implementasi kode strategi
Untuk menerapkan suatu strategi, pertama-tama kita perlu mempertimbangkan data apa yang kita butuhkan? Melalui API mana saya bisa mendapatkannya? Lalu bagaimana cara menghitung logika transaksinya? Terakhir, metode apa yang digunakan untuk melakukan pemesanan dan berdagang? Selanjutnya, mari kita terapkan langkah demi langkah:
Langkah 1: Gunakan Kerangka Strategi CTA
Kerangka strategi CTA adalah kerangka standar yang secara resmi diluncurkan oleh Inventor Quantitative. Dengan menggunakan kerangka ini, Anda tidak perlu khawatir tentang masalah sepele dalam mengembangkan strategi perdagangan kuantitatif dan dapat fokus langsung pada pemrograman logika perdagangan. Misalnya, jika Anda tidak menggunakan kerangka kerja ini, saat melakukan pemesanan, Anda perlu mempertimbangkan transfer bulan ke bulan, harga beli dan jual pesanan, pembatalan pesanan atau tindak lanjut ketika pesanan tidak dieksekusi, dll.

Gambar 4-21
Gambar di atas adalah kerangka strategi CTA yang menggunakan alat kuantitatif milik penemu. Ini adalah format kode tetap, dan semua kode logika transaksi ditulis mulai dari baris 3. Selama penggunaan, kecuali kode varietas (kuning muda), tidak ada perubahan lain yang diperlukan.
Perlu dicatat bahwa kode produk pada gambar di atas adalah "rb000/rb888", yang berarti data sinyal menggunakan "rb000", data transaksi menggunakan "rb888", dan pergeseran bulan bersifat otomatis. Tentu saja, Anda juga dapat menentukan kode produk tertentu, seperti kode produk "rb1910", yang berarti bahwa data sinyal dan data transaksi menggunakan "rb1910".
FMZ memiliki pustaka perdagangan berjangka komoditas JavaScript bawaan. Anda dapat menggunakannya dalam kode Anda hanya dengan mengeklik referensi di antarmuka penyuntingan strategi:

Langkah 2: Dapatkan berbagai data
Pikirkan baik-baik, data apa yang Anda butuhkan? Dari logika perdagangan strategi kami, kami menemukan bahwa: pertama-tama kami perlu memperoleh status posisi saat ini, lalu membandingkan hubungan antara harga penutupan dan jalur atas, tengah, dan bawah indikator Bollinger Band, dan akhirnya menentukan apakah pasar akan segera ditutup. Jadi, mari kita dapatkan data ini.
Dapatkan data K-line
Langkah pertama adalah memperoleh susunan garis K dan harga penutupan garis K sebelumnya, karena hanya dengan susunan garis K indikator Bollinger Band dapat dihitung. Seperti inilah tampilannya dalam kode:

Gambar 4-22
Seperti yang ditunjukkan pada gambar di atas:
Baris 4: Dapatkan susunan K-line, yang merupakan format tetap.
Baris 5: Filter panjang garis K, karena parameter yang kita gunakan untuk menghitung indikator Bollinger Band adalah 20. Jika garis K kurang dari 20, indikator Bollinger Band tidak dapat dihitung. Oleh karena itu, kita perlu menyaring panjang K-line di sini. Jika ada kurang dari 20 K-line, kita akan langsung kembali dan terus menunggu K-line berikutnya.
Baris 6: Dari susunan garis K yang diperoleh, pertama-tama dapatkan objek dari garis K sebelumnya, lalu dapatkan harga penutupan dari objek tersebut. Dapatkan elemen kedua terakhir dari sebuah array, yang merupakan panjang array dikurangi 2 (r[r.length - 2]); Elemen-elemen dalam array K-line adalah semua objek, yang berisi harga pembukaan, harga tertinggi, harga terendah, harga penutupan, volume perdagangan, dan waktu. Untuk mendapatkan harga penutupan, cukup tambahkan "." dan nama atribut di akhir (r[r.length - 2].Close)。
Dapatkan data waktu K-line
Karena kita menggunakan strategi intraday, kita perlu menutup posisi sebelum pasar tutup, jadi kita perlu menentukan apakah garis K saat ini mendekati penutupan pasar. Jika ya, kita tutup posisi. Jika tidak, kita dapat membuka posisi. Kodenya adalah sebagai berikut:

Gambar 4-23
Seperti yang ditunjukkan pada gambar di atas:
Baris 8: Dapatkan atribut stempel waktu dari K-line saat ini, lalu buat objek waktu (Tanggal baru (stempel waktu)).
Baris 9: Hitung jam dan menit berdasarkan objek waktu, dan tentukan apakah waktu garis K adalah 14:45.
Dapatkan data posisi
Informasi posisi merupakan syarat yang sangat penting dalam strategi perdagangan kuantitatif. Ketika syarat perdagangan terpenuhi, penting juga untuk menentukan apakah akan melakukan pemesanan berdasarkan status posisi dan jumlah posisi. Misalnya: ketika kondisi pembukaan posisi beli terpenuhi, jika Anda punya posisi, Anda tidak perlu lagi menempatkan order; jika Anda tidak punya posisi, Anda dapat menempatkan order. Seperti inilah tampilannya dalam kode:

Gambar 4-24
Seperti yang ditunjukkan pada gambar di atas:
Baris 11: Dapatkan status posisi saat ini. Jika ada beberapa order, nilainya 1; jika ada order pendek, nilainya -1; jika tidak ada posisi, nilainya 0.
Dapatkan data Bollinger Bands
Berikutnya, Anda perlu menghitung nilai jalur atas, tengah, dan bawah indikator Bollinger Band. Maka Anda perlu mendapatkan susunan Bollinger Bands terlebih dahulu, lalu mendapatkan nilai pita atas, tengah, dan bawah dari susunan tersebut. Dalam Inventor Quantitative Tool, sangat mudah untuk mendapatkan array Bollinger Band. Anda dapat langsung memanggil API Bollinger Band. Bagian yang sulit adalah mendapatkan nilai trek atas, tengah, dan bawah, karena array Bollinger Band adalah array dua dimensi.
Array dua dimensi sebenarnya sangat mudah dipahami. Array merupakan array dalam array. Jadi urutan perolehannya adalah: pertama-tama dapatkan array yang ditentukan dalam array, lalu dapatkan elemen yang ditentukan dari array yang ditentukan, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-25
Seperti yang ditunjukkan pada gambar di bawah, baris 13 hingga 19 menggunakan kode untuk mendapatkan nilai rel atas, tengah, dan bawah Bollinger Bands. Di antara mereka, baris 13 secara langsung menggunakan API dari alat kuantitatif milik penemu untuk secara langsung mendapatkan susunan Bollinger Band; baris 14 hingga 16 pertama-tama mendapatkan susunan rel atas, susunan rel tengah, dan susunan rel bawah masing-masing dalam susunan dua dimensi; baris 17 hingga 19 mendapatkan nilai rel atas, rel tengah, dan rel bawah Bollinger Band dari garis K sebelumnya dari susunan rel atas, susunan rel tengah, dan susunan rel bawah masing-masing.

Gambar 4-26
Langkah 3: Lakukan pemesanan
Dengan data di atas, Anda dapat menulis logika perdagangan dan kode untuk menempatkan pesanan. Formatnya juga sangat sederhana. Yang paling umum digunakan adalah "pernyataan if", yang dapat dijelaskan dengan kata-kata sebagai berikut: jika kondisi 1 dan kondisi 2 terpenuhi, buat pesanan; jika kondisi 3 atau kondisi 4 terpenuhi, buat pesanan. Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-27
Pada gambar di atas, baris 21 hingga 24 adalah logika perdagangan dan kode penempatan pesanan. Dari atas ke bawah adalah: tutup panjang, tutup pendek, buka panjang, buka pendek.
Mengambil contoh pembukaan posisi long (baris 23), ini adalah "pernyataan if". Jika hanya satu baris kode yang dieksekusi dalam pernyataan ini, tanda kurung kurawal "{}" dapat dihilangkan. Pernyataan ini diterjemahkan ke dalam teks sebagai: Jika posisi saat ini adalah 0, dan harga penutupan lebih besar dari jalur atas, dan waktu garis K bukan 14:45, maka "kembali 1"
Orang yang berhati-hati mungkin menemukan bahwa ada "return 1" dan "return -1" di baris ini. Ini adalah format tetap, yang artinya: jika beli, tulis "return 1"; jika jual, tulis "return -1". Membuka posisi panjang dan menutup posisi pendek sama-sama membeli, jadi tulislah "pengembalian 1"; membuka posisi pendek dan menutup posisi panjang sama-sama menjual, jadi tulislah "pengembalian -1".
Kode strategi lengkap
Pada titik ini, kode strategi lengkap telah ditulis. Jika kerangka kerja perdagangan, data perdagangan, logika perdagangan, penempatan pesanan, dll. ditulis secara terpisah, bukankah akan sangat mudah? Berikut ini adalah seluruh kode strategi ini:

Gambar 4-28
Ada dua hal yang perlu diperhatikan: cobalah (tetapi tidak harus) untuk menulis logika strategi sehingga ketika kondisi K-line akar terpenuhi, order K-line berikutnya ditempatkan, atau ketika kondisi K-line sebelumnya terpenuhi, order K-line akar ditempatkan. Dengan cara ini, hasil backtest tidak akan jauh berbeda dari hasil aktual. Anda tidak harus menuliskannya dengan cara ini, tetapi Anda harus memperhatikan apakah logika strateginya benar. Secara umum, logika penutupan posisi harus ditulis sebelum logika pembukaan posisi. Tujuannya adalah agar logika strategi sesuai dengan harapan Anda semaksimal mungkin. Misalnya: Jika logika strategi kebetulan bertemu dengan posisi terbalik, aturan posisi terbalik adalah menutup posisi terlebih dahulu dan kemudian membuka posisi baru. Daripada membuka posisi baru terlebih dahulu dan kemudian menutupnya. Jika kita menulis logika penutupan tepat sebelum logika pembukaan, masalah ini tidak akan terjadi.
Meringkaskan
Di atas, kita telah mempelajari setiap langkah pengembangan strategi perdagangan kuantitatif intraday yang lengkap, termasuk: pengenalan strategi, metode perhitungan indikator Bollinger Band, logika strategi, kondisi pembelian dan penjualan, implementasi kode strategi, dll. Melalui kasus strategi ini, Anda tidak hanya dapat memahami metode pemrograman alat kuantitatif penemu, tetapi juga mengadaptasinya ke dalam berbagai strategi berdasarkan templat ini.
Strategi perdagangan kuantitatif tidak lebih dari sekadar ringkasan pengalaman atau sistem perdagangan subjektif. Jika kita menuliskan pengalaman atau sistem yang digunakan dalam perdagangan subjektif sebelum menulis strategi, lalu menerjemahkannya ke dalam kode satu per satu, Anda akan menemukan bahwa menulis strategi akan jauh lebih mudah. Cobalah!
Pratinjau Bagian Berikutnya
Dalam pengembangan strategi perdagangan kuantitatif, jika Anda hanya dapat memilih satu bahasa pemrograman, maka tanpa ragu, Anda harus memilih Python. Dari akuisisi data hingga pengujian ulang strategi hingga perdagangan, Python telah mencakup seluruh rantai bisnis. Bahasa ini menempati posisi penting dalam bidang investasi kuantitatif finansial. Pada kursus berikutnya, kita akan mempelajari pengetahuan dasar bahasa Python.
Pekerjaan rumah
- Cobalah menggunakan pengetahuan di bagian ini untuk menerapkan strategi rata-rata pergerakan ganda.
- Cobalah menerapkan algoritma indikator KDJ menggunakan bahasa JavaScript di Inventor Quantitative Tool.
4.3 Pengenalan singkat bahasa Python
ringkasan
Dalam pengembangan strategi perdagangan kuantitatif, jika Anda hanya dapat memilih satu bahasa pemrograman, maka tanpa ragu, Anda harus memilih Python. Dari akuisisi data hingga pengujian ulang strategi hingga perdagangan, Python telah mencakup seluruh rantai bisnis. Bahasa ini menempati posisi penting dalam bidang investasi kuantitatif finansial. Dalam kursus ini, kita akan mempelajari pengetahuan dasar bahasa Python.
Mengapa mempelajari begitu banyak bahasa pemrograman?
Melihat kembali kursus sebelumnya, kita telah mempelajari total: bahasa Mai, bahasa visual, bahasa JavaScript, termasuk bahasa Python yang akan dipelajari di bagian ini. Beberapa teman mungkin punya pertanyaan. Saya di sini untuk belajar perdagangan kuantitatif, mengapa saya harus belajar banyak bahasa pemrograman?
Faktanya, setiap bahasa pemrograman memiliki karakteristik bahasanya sendiri, dan tidak ada perbedaan antara bahasa yang baik dan yang buruk. Itu lebih tergantung pada bahasa pemrograman mana yang lebih cocok untuk strategi Anda dan apakah bahasa pemrograman ini cocok untuk Anda. Jadi ada pepatah yang mengatakan Anda hanya dapat mengetahuinya jika Anda mencobanya sendiri. Itulah sebabnya kami telah mendedikasikan begitu banyak ruang untuk berbicara tentang bahasa pemrograman. Jika Anda ingin melakukan pekerjaan Anda dengan baik, Anda harus terlebih dahulu mengasah alat Anda.
Pada saat yang sama, kami juga berkomitmen untuk membuka pintu bagi penelitian kuantitatif bagi semua orang dan mempopulerkan pengetahuan tentang berbagai bahasa pemrograman. Penelitian kuantitatif tidak sesulit dan tidak terjangkau seperti yang kita bayangkan. Saya percaya bahwa penelitian kuantitatif akan menjadi populer dan dapat diakses oleh masyarakat umum di masa mendatang.
Mengapa memilih Python untuk perdagangan kuantitatif
Proses perdagangan kuantitatif tidak lain hanyalah perolehan data, analisis dan penghitungan data, pemrosesan data, dan sebagainya. Dalam hal analisis data, tidak ada bahasa pemrograman lain yang dapat melakukan penghitungan dan mempertahankan kinerja sebaik Python. Terutama dalam pemrosesan data analisis deret waktu (K-line adalah data deret waktu), Python memiliki kelebihan karena lebih sederhana dan lebih nyaman. Selain itu, dibandingkan dengan bahasa pemrograman lain, Python lebih ringkas dan mudah dipelajari. Membaca program Python yang baik terasa seperti membaca bahasa Inggris.
Lima alasan untuk memilih Python
1. Aplikasi kuantitatif sangat luas:
Baik Quantopian di Amerika Serikat maupun Inventor Quant di China dapat menggunakan bahasa Python.
2. Mudah dipelajari:
Filosofi desain Python berpusat pada pengguna, dan merupakan bahasa interpretasi yang mudah di-debug.
3. Gratis dan sumber terbuka:
Tidak ada biaya penggunaan, berbagi kode sumber terbuka, dan peningkatan pembelajaran serta efisiensi penggunaan.
4. Perpustakaan yang kaya:
Pemrosesan data, komputasi data, visualisasi, analisis statistik, analisis teknis, pembelajaran mesin...
5. Antarmuka aplikasi:
Antarmuka untuk memperoleh, menyimpan, memanggil, dan menempatkan pesanan berdasarkan informasi pasar waktu nyata dari platform utama.
Strategi Lengkap
Untuk membantu Anda memahami dengan cepat pengetahuan utama di bagian ini, sebelum memperkenalkan pengenalan cepat bahasa JavaScript terkuantisasi sang penemu, sebaiknya Anda terlebih dahulu memiliki pemahaman awal mengenai konsep-konsep di bagian ini. Mari kita ambil strategi rata-rata pergerakan ganda yang paling sederhana sebagai contoh:
Pembukaan posisi panjang: Jika tidak ada posisi saat ini dan rata-rata pergerakan periode 5 lebih besar dari rata-rata pergerakan periode 20.
Buka posisi pendek: Jika tidak ada posisi saat ini dan rata-rata pergerakan periode 5 lebih kecil dari rata-rata pergerakan periode 20.
Penutupan posisi panjang:Jika saat ini Anda memegang posisi panjang dan rata-rata pergerakan periode 5 lebih kecil dari rata-rata pergerakan periode 20.
Penutupan posisi pendek: Jika Anda saat ini memegang posisi short dan rata-rata pergerakan periode 5 lebih besar dari rata-rata pergerakan periode 20.
Jika ditulis dalam Python, akan terlihat seperti ini:

Gambar 4-29
Kode pada gambar di atas adalah strategi perdagangan kuantitatif lengkap yang ditulis dalam Python. Dapat berjalan secara real time dan menempatkan pesanan secara otomatis. Dalam hal jumlah kode, Python lebih banyak daripada JavaScript, karena kami tidak menggunakan kerangka kerja perdagangan CTA.
Namun, proses desain keseluruhan strategi hampir sama: menetapkan jenis pasar, memperoleh data K-line, memperoleh informasi posisi, menghitung logika perdagangan, dan menempatkan pesanan beli dan jual. Dengan kata lain, meskipun sintaks pemrogramannya berbeda, logika strategi yang ditulisnya sama, jadi selanjutnya, mari pelajari sintaks dasar Python!
Pemilihan versi
Ada dua versi Python, yaitu: Python2 dan Python3. Pernah ada lelucon yang mengatakan bahwa Python seperti senjata laras ganda, tetapi Anda hanya dapat menggunakan satu laras untuk menembakkan peluru dalam satu waktu, tetapi Anda tidak akan pernah tahu mana yang lebih akurat. Jadi jika Anda baru mengenal Python, disarankan untuk mempelajari Python 3 secara langsung karena merupakan yang terbaru dan telah dikelola oleh komunitas Python. Kursus kami juga diajarkan dalam Python 3.
Identifikasi
Pengidentifikasi adalah nama variabel, seperti test, Test, test10,demo, dll. Segala sesuatu di Python (variabel, nama fungsi, dan operator) peka huruf besar/kecil, artinya nama variabel test dan nama variabel Test adalah dua variabel berbeda. Karakter pertama dari sebuah pengidentifikasi (nama variabel, fungsi, properti, parameter fungsi) harus berupa huruf, garis bawah (), karakter yang mengikutinya juga dapat berupa angka, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-30
Catatan
Komentar adalah terjemahan atau penjelasan dari satu baris kode. Aturannya sangat sederhana dan mencakup komentar satu baris dan komentar tingkat blok. Komentar satu baris dimulai dengan tanda pagar (#), dan komentar blok dimulai dengan tiga tanda kutip tunggal (''') atau tiga tanda kutip ganda (""") dan diakhiri dengan tiga tanda kutip tunggal (''') atau tiga tanda kutip ganda ("""), seperti yang ditunjukkan pada gambar berikut:

Gambar 4-31
Garis dan Indentasi
Fitur Python yang paling khas adalah penggunaan indentasi untuk menunjukkan blok kode, tanpa perlu kurung kurawal {}. Jumlah spasi untuk indentasi bervariasi, tetapi pernyataan dalam blok kode yang sama harus berisi jumlah spasi yang sama untuk indentasi. Seperti yang ditunjukkan di bawah ini: Dalam kasus ini, program akan melaporkan kesalahan. Bahkan jika kondisi if benar, "Benar" tidak akan ditampilkan, karena Python akan secara otomatis mendeteksi apakah sintaks kode sudah benar sebelum kode dijalankan. Jika format kode salah, program tidak akan berjalan. Alasannya adalah karena baris kode ke-5 tidak memiliki format indentasi kode yang terpadu. Indentasi empat spasi adalah format tetap untuk Python, dan semua orang harus terbiasa dengannya.

Gambar 4-32
variabel
Variabel dapat menyimpan semua jenis data. Menuliskan nama variabel saja sudah cukup untuk membuat variabel. Namun, saat membuat variabel, Anda perlu menetapkan nilai variabel pada saat yang sama, jika tidak program akan melaporkan kesalahan. Sisi kiri operator tanda sama dengan (=) adalah nama variabel, dan sisi kanan operator tanda sama dengan (=) adalah nilai yang disimpan dalam variabel. Seperti yang ditunjukkan pada gambar di bawah ini: name2 adalah nama variabel, dan "inventor quantification" adalah nilai variabel. Jika Anda tidak menetapkan nilai baru untuk name2, nilai name2 akan selalu menjadi "kuantifikasi penemu".

Gambar 4-33
data
Python memiliki enam tipe data, tiga di antaranya tidak dapat diubah dan tiga lainnya dapat diubah. Sesuai namanya, setelah data yang tidak dapat diubah dibuat, nilainya tidak dapat diubah dan alamatnya di memori bersifat unik; data yang dapat diubah adalah referensi ke suatu alamat di memori, dan jika nilainya berubah, alamat memorinya tetap tidak berubah.
Data yang tidak dapat diubah (3): Angka, String, Tuple;
Data yang dapat diubah (3): Daftar, Kamus, Set.

Gambar 4-34
Angka
Tipe numerik Python mendukung int (integer), float (floating point), bool (Boolean), dan complex (bilangan kompleks). Fungsi bawaan type() dapat digunakan untuk menanyakan jenis objek yang dirujuk oleh suatu variabel. Seperti yang ditunjukkan di bawah ini:

Gambar 4-35
Operator
Seperti kebanyakan bahasa, matematika dalam Python mudah dipahami. Baik itu operator aritmatika, operator perbandingan, maupun operator logika, semuanya sama dengan apa yang kita pelajari di sekolah. Di antaranya, operator aritmatika adalah operasi matematika berupa penjumlahan, pengurangan, perkalian, dan pembagian. Operator perbandingan dapat membandingkan apakah dua nilai lebih kecil atau lebih kecil. Operator logika yang utama adalah: logika AND, logika OR, dan logika NOT. [Bisakah Anda menjelaskan secara singkat tentang string yang umum digunakan dalam strategi perdagangan?] Misalnya, dalam strategi perdagangan kami, string yang paling umum digunakan adalah kode produk, seperti: "rb1910", "MA1910".

Gambar 4-36
Perlu dicatat bahwa "dan" adalah logika AND, yang berarti "dan". "atau" merupakan logika ATAU, yang berarti "salah satu". "!" adalah negasi logis, yang berarti "tidak":
“dan” berarti bahwa ketika semua kondisi “benar”, kondisi akhir adalah “benar”;
"atau" berarti bahwa di antara semua kondisi, selama salah satu di antaranya "benar", kondisi akhir akan menjadi "benar".
Prioritas
Jika ada 100*Untuk ekspresi (10-1)/(10+5), langkah manakah yang dihitung pertama kali oleh program? Matematika sekolah menengah memberi tahu kita: ① Jika itu adalah operasi pada tingkat yang sama, umumnya dihitung dari kiri ke kanan. ② Jika ada penjumlahan dan pengurangan serta perkalian dan pembagian, hitunglah perkalian dan pembagian terlebih dahulu, baru kemudian penjumlahan dan pengurangan. ③Jika ada tanda kurung, hitung dulu isi tanda kurung tersebut. ④ Jika sesuai dengan hukum operasi, hukum operasi dapat digunakan untuk menyederhanakan perhitungan. Prioritas bahasa Mai sama seperti yang ditunjukkan di bawah ini:

Gambar 4-37
Bahasa Boolean
Boolean melambangkan benar atau salah dan biasanya digunakan pada penilaian kondisional dan pernyataan perulangan. Python mendefinisikan dua konstanta "True" dan "False" untuk mewakili benar dan salah. Faktanya, objek apa pun dapat diubah ke tipe Boolean dan juga dapat digunakan secara langsung untuk penilaian kondisional, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-38
String
String adalah teks. String, seperti "if1905", sering digunakan saat menetapkan kode produk. String dalam Python diapit oleh tanda kutip tunggal ' atau tanda kutip ganda ". Tanda tambah + adalah operator penggabungan string. Anda bisa mendapatkan karakter dalam string berdasarkan nilai indeks, seperti yang ditunjukkan di bawah ini:

Gambar 4-39
Daftar
List adalah tipe data yang paling sering digunakan dalam Python. Anda dapat menganggap list sebagai wadah, kecuali bahwa elemen-elemen dalam wadah tersebut disusun dari kiri ke kanan. Elemen pertama adalah 0, elemen kedua adalah 1, dan seterusnya. Selain itu, daftar Python dapat menyimpan tipe data apa pun, seperti yang ditunjukkan di bawah ini:

Gambar 4-40
fungsi
Fungsi dalam Python pada dasarnya sama dengan fungsi yang kita pelajari di sekolah menengah. Anda dapat menganggapnya sebagai apa yang dimasukkan dan apa yang dikeluarkan melalui kalkulasi fungsi, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-41
kalimat if
Pernyataan jika sering muncul dalam kehidupan kita, misalnya: Jika hari ini hujan, saya akan memegang payung. Artinya, pernyataan tersebut akan mengeksekusi kode hanya jika kondisi yang ditetapkan adalah Benar. Catatan, perhatikan format indentasi kode, jika tidak, kesalahan Python akan dihasilkan! Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-42
pernyataan if...else
Pernyataan if...else juga merupakan pernyataan yang umum digunakan, misalnya: Jika hari ini hujan, saya akan memegang payung; jika tidak, saya tidak akan memegang payung. Pernyataan else merupakan perluasan dari pernyataan if, yaitu kode setelah else akan dieksekusi hanya jika kondisi yang ditetapkan bernilai Salah. Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-43
Pernyataan elif
Karena Python tidak mendukung pernyataan switch, Python hanya dapat menggunakan pernyataan elif untuk mengimplementasikan beberapa penilaian kondisional. Misalnya: jika garisnya positif, saya akan bullish; sebaliknya, jika garisnya negatif, saya akan bearish; sebaliknya, saya akan wait and see. Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-44
untuk loop
Terkadang kita perlu memperoleh data K-line beberapa hari terakhir, dan kita perlu memperolehnya dari array K-line secara berurutan sesuai dengan posisi data K-line. Maka akan sangat mudah untuk menggunakan for loop, seperti yang ditunjukkan pada gambar berikut:

Gambar 4-45
Perulangan While
Kita semua tahu bahwa pasar terus berubah. Jika Anda ingin mendapatkan array K-line terbaru, Anda harus terus menjalankan kode yang sama berulang-ulang. Kemudian gunakan loop whilex. Selama kondisi yang ditentukan benar, loop selalu dapat memperoleh array K-line terbaru.

Gambar 4-46
pernyataan break dan pernyataan continue
Loop memiliki prasyarat. Hanya ketika prasyaratnya "benar" loop akan mulai melakukan sesuatu secara berulang, dan loop tidak akan berakhir sampai prasyaratnya "salah". Namun, pernyataan break dapat langsung keluar dari loop selama eksekusi loop; pernyataan continue dapat menghentikan loop tertentu dan kemudian melanjutkan loop berikutnya. Seperti yang ditunjukkan pada gambar berikut:

Gambar 4-47
pernyataan pengembalian
Pernyataan return mengakhiri eksekusi suatu fungsi dan mengembalikan nilai fungsi. Pernyataan return hanya dapat muncul di badan fungsi. Jika muncul di tempat lain dalam kode, akan menyebabkan kesalahan sintaksis!

Gambar 4-48
Kerangka Strategi
Anda dapat memahami arsitektur strategi sebagai format strategi yang tetap. Alat kuantitatif penemu mengadopsi mode pemungutan suara. Berikut ini adalah arsitektur strategi komoditas berjangka klasik.
Baris 4 hingga 7 adalah fungsi entri utama dari keseluruhan program, yaitu, komputer mulai mengeksekusi kode dari baris 4; kemudian langsung mengeksekusi baris 5 dan memasuki loop tak terbatas; kemudian fungsi logika strategi (onTick) dan fungsi tidur (Sleep) dieksekusi dalam loop tak terbatas; fungsi onTick adalah kode dalam baris 1, dan Anda dapat menulis logika strategi di baris 2; kita tahu bahwa dalam loop, kecepatan eksekusi program sangat cepat, jadi menggunakan fungsi tidur (Sleep) dapat menghentikan program untuk sementara waktu. Kode berikut Sleep(500) berarti bahwa program akan tidur selama 500 milidetik setiap kali loop selesai.

Gambar 4-49
Meringkaskan
Di atas adalah pengantar singkat tentang bahasa Python. Meskipun hanya pengetahuan dasar yang sederhana, tidak ada masalah untuk menggunakannya untuk menulis strategi perdagangan kuantitatif yang sederhana. Jika Anda perlu menulis strategi yang lebih kompleks, Anda dapat merujuk pada dokumentasi API bahasa Python dari Inventor Quantitative Tool.
Pratinjau Bagian Berikutnya
Di antara strategi tren di bidang analisis teknis, rata-rata pergerakan dan terobosan saluran tidak diragukan lagi merupakan dua sekolah utama. Meskipun tujuannya adalah untuk menangkap tren pergerakan harga, filosofi perdagangan dan karakteristik risiko dari kedua strategi ini benar-benar berbeda. Setelah mempelajari pengenalan bahasa Python di bagian ini, di bagian berikutnya kami akan menunjukkan kepada Anda cara menulis strategi perdagangan kuantitatif untuk terobosan saluran.
Pekerjaan rumah
- Cobalah menggunakan bahasa Python di Inventor Quantitative Tool untuk memperoleh data K-line historis.
- Cobalah tuliskan kode strategi di awal bagian ini dan tambahkan komentar.
4.4 Cara menerapkan strategi perdagangan menggunakan bahasa Python
ringkasan
Pada artikel sebelumnya, kita telah mempelajari pengenalan, sintaksis dasar, kerangka strategi, dll. dari bahasa Python. Meskipun kontennya membosankan, ini merupakan keterampilan penting bagi Anda untuk menerapkan strategi perdagangan dan Anda harus mempelajarinya. Dalam artikel ini, kita akan mencoba selagi masih ada peluang dan melanjutkan pengetahuan dasar Python di artikel sebelumnya. Kita akan mulai dengan strategi sederhana, mempelajarinya sambil menggunakannya, dan membantu semua orang mewujudkan strategi perdagangan kuantitatif yang layak selangkah demi selangkah.
Pengenalan Strategi
Di antara banyak strategi perdagangan, strategi Donchian Channel seharusnya menjadi salah satu strategi terobosan paling klasik. Strategi ini sudah dikenal sejak tahun 1970. Saat itu, sebuah perusahaan asing melakukan uji simulasi dan penelitian terhadap strategi perdagangan program arus utama. Hasilnya menunjukkan bahwa, di antara semua uji strategi, strategi Terusan Donchian adalah yang paling berhasil.
Kemudian, pelatihan pedagang "Penyu" yang paling terkenal dalam sejarah perdagangan berlangsung di Amerika Serikat, yang membuahkan kesuksesan besar. Saat itu, metode perdagangan "Turtles" dirahasiakan, tetapi lebih dari sepuluh tahun kemudian, ketika "Aturan Perdagangan Turtles" dipublikasikan, orang-orang menemukan bahwa "Turtles" menggunakan versi perbaikan dari Donchian Channel. strategi.
Strategi trading terobosan cocok untuk memperdagangkan produk dengan tren yang relatif lancar. Metode trading terobosan yang paling umum adalah menggunakan hubungan posisi relatif antara harga dan support dan resistance untuk menentukan titik beli dan jual perdagangan tertentu. Strategi Terusan Donchian pada bagian ini didasarkan pada prinsip ini.
Aturan Strategi Saluran Donchian
Donchian Channel adalah indikator tren, dan penampilan serta sinyalnya agak mirip dengan indikator Bollinger Band. Namun saluran harga Donchian dibangun berdasarkan harga tertinggi dan terendah dalam periode waktu tertentu. Misalnya: hitung nilai maksimum dari harga tertinggi dari 50 garis K terkini untuk membentuk jalur atas; hitung nilai minimum dari harga terendah dari 50 garis K terkini untuk membentuk jalur bawah.
Indikator ini terdiri dari tiga kurva dengan warna yang berbeda. Nilai default adalah harga tertinggi dan terendah dalam 20 periode untuk menunjukkan volatilitas harga pasar. Jika salurannya sempit, berarti volatilitas pasar kecil. Sebaliknya, jika salurannya lebar, berarti volatilitas pasar relatif besar.
Jika harga naik di atas jalur atas, itu adalah sinyal beli; sebaliknya, jika harga turun di bawah jalur bawah, itu adalah sinyal jual. Karena jalur atas dan bawah dihitung menggunakan harga tertinggi dan terendah, dalam keadaan normal, harga jarang naik dan turun di bawah garis saluran atas dan bawah pada saat yang bersamaan. Dalam kebanyakan kasus, harga bergerak secara sepihak di sepanjang jalur atas atau bawah, atau antara jalur atas dan bawah.
Metode perhitungan saluran Donchian
Dalam Inventor Quantitative Tool, metode perhitungan Donchian Channel sangatlah sederhana. Anda dapat langsung menggunakannya untuk memperoleh harga tertinggi atau harga terendah dalam periode yang ditentukan, seperti yang ditunjukkan pada gambar di bawah ini: baris ke-5 untuk memperoleh nilai maksimum harga tertinggi selama 50 periode, dan baris ke-6 untuk memperoleh nilai minimum harga terendah selama 50 periode.

Gambar 4-50
Logika Strategi
Ada banyak cara untuk menggunakan Donchian Channel. Donchian Channel dapat digunakan sendiri atau dikombinasikan dengan indikator lain. Dalam kursus ini kita akan menggunakan metode yang paling sederhana. Yaitu ketika harga berhasil menembus upper track dari bawah ke atas yaitu menembus upper pressure line, maka kita yakin bahwa bullish force semakin menguat, sudah terbentuk gelombang kenaikan pasar, dan sudah ada sinyal buy opening. dihasilkan; ketika harga jatuh dari atas ke bawah dan menembus jalur bawah, yaitu ketika jatuh di bawah garis support, kami percaya bahwa sisi pendek semakin kuat, tren menurun telah terbentuk, dan pembukaan jual sinyal dihasilkan.

Gambar 4-51
Jika harga jatuh kembali ke jalur tengah Donchian Channel setelah posisi panjang dibuka, kami percaya bahwa bulls melemah atau bears menguat, dan sinyal jual dihasilkan; jika harga jatuh kembali ke jalur tengah Donchian Channel setelah posisi panjang dibuka, kami percaya bahwa bulls melemah atau bears menguat, dan sinyal jual dihasilkan; jalur Donchian Channel setelah posisi short dibuka, kami percaya bahwa bulls melemah atau bears menguat, dan sinyal sell-off dihasilkan; Ketika naik kembali ke jalur tengah Donchian Channel, kami percaya bahwa kekuatan beruang melemah, atau kekuatan banteng menguat, dan sinyal beli-untuk-tutup dihasilkan.
Kondisi perdagangan
Pembukaan posisi panjang: Jika tidak ada posisi dan harga penutupan lebih besar dari track atas
Buka posisi pendek: Jika tidak ada posisi dan harga penutupan kurang dari track bawah
Penutupan posisi panjang:Jika Anda menahan order panjang dan harga penutupan kurang dari jalur tengah
Penutupan posisi pendek:Jika Anda menahan pesanan pendek dan harga penutupan lebih besar dari jalur tengah
Implementasi kode strategi
Langkah pertama untuk menerapkan strategi adalah memperoleh data, karena data merupakan prasyarat untuk strategi perdagangan. Bayangkan data apa yang kita butuhkan? Dan bagaimana cara mendapatkan data ini? Lalu kami merancang logika perdagangan berdasarkan data ini; akhirnya, kami menempatkan pesanan beli dan jual sesuai dengan logika perdagangan. Langkah-langkah spesifiknya adalah sebagai berikut:
Langkah 1: Gunakan perpustakaan perdagangan
Anda dapat menganggap pustaka perdagangan sebagai modul fungsional. Keuntungan menggunakan pustaka perdagangan adalah memungkinkan Anda untuk fokus pada penulisan logika strategi. Misalnya: ketika kita menggunakan pustaka perdagangan, saat membuka dan menutup posisi, kita dapat langsung menggunakan API pesanan di pustaka perdagangan; tetapi jika kita tidak menggunakan pustaka perdagangan, saat membuka dan menutup posisi, kita perlu mendapatkan harga pasar, mempertimbangkan masalah penempatan pesanan tetapi tidak dieksekusi, mempertimbangkan masalah pembatalan pesanan, dll.

Gambar 4-52
Gambar di atas adalah kerangka strategi CTA yang menggunakan alat kuantitatif milik penemu. Ini adalah format kode tetap, dan semua kode logika transaksi ditulis mulai dari baris 4. Tidak ada modifikasi yang diperlukan di tempat lain.
Pustaka templat JavaScript sudah ada di dalamnya, Python perlu menyalin dan menyimpan templat ini: https://www.fmz.com/strategy/24288. Lalu klik Referensi pada halaman pengeditan kebijakan. Tentu saja, Anda juga dapat menyelesaikan strategi tanpa menggunakan pustaka templat.
Langkah 2: Dapatkan berbagai data
Pikirkan baik-baik, data apa yang Anda butuhkan? Dari logika perdagangan strategi kami, kami menemukan bahwa: pertama-tama kami perlu memperoleh status posisi saat ini, lalu membandingkan hubungan antara harga penutupan dan jalur atas, tengah, dan bawah indikator Bollinger Band, dan akhirnya menentukan apakah pasar akan segera ditutup. Jadi, mari kita dapatkan data ini.
Dapatkan data K-line
Langkah pertama adalah memperoleh array K-line dan harga penutupan K-line saat ini. Hanya dengan array K-line kita dapat memanggil API untuk memperoleh harga tertinggi atau terendah dari periode N. Seperti inilah tampilannya dalam kode:

Gambar 4-53
Seperti yang ditunjukkan pada gambar di atas:
Baris 4: Dapatkan susunan K-line, yang merupakan format tetap.
Baris 5: Filter panjang garis K. Karena kami menghitung harga tertinggi atau terendah dari periode N, parameter yang digunakan adalah 50. Jika jumlah garis K kurang dari 50, maka tidak dapat dihitung. Oleh karena itu, kita perlu menyaring panjang K-line di sini. Jika terdapat kurang dari 50 K-line, lewati loop ini dan terus tunggu K-line berikutnya.
Baris 6: Kita menggunakan kode "catatan"[len(catatan) - 1]" pertama-tama akan mendapatkan data terakhir dari array K-line, yang merupakan data K-line terkini. Data ini adalah sebuah objek, yang berisi: harga pembukaan, harga tertinggi, harga terendah, harga penutupan, volume perdagangan, waktu, dan data lainnya. Karena ini adalah sebuah objek, kita dapat langsung menggunakan ".Close" untuk mendapatkan harga penutupan K-line terkini.
Dapatkan data posisi
Informasi posisi merupakan syarat yang sangat penting dalam strategi perdagangan kuantitatif. Ketika syarat perdagangan terpenuhi, penting juga untuk menentukan apakah akan melakukan pemesanan berdasarkan status posisi dan jumlah posisi. Misalnya: ketika kondisi pembukaan posisi beli terpenuhi, jika Anda punya posisi, Anda tidak perlu lagi menempatkan order; jika Anda tidak punya posisi, Anda dapat menempatkan order. Kali ini kita langsung merangkum informasi posisi ke dalam sebuah fungsi, dan kita dapat menggunakannya hanya dengan memanggil fungsi ini:

Gambar 4-54
Seperti yang ditunjukkan pada gambar di atas:
Ini adalah fungsi yang memperoleh informasi posisi. Jika posisi short, maka akan menghasilkan 0; jika posisi long, maka akan menghasilkan 1; jika posisi short, maka akan menghasilkan -1. Perhatikan kode di atas:
Baris 2: Buat fungsi bernama mp, yang tidak memiliki parameter.
Baris 3: Dapatkan array posisi, yang merupakan format tetap.
Baris 4: Tentukan panjang array posisi. Jika panjangnya sama dengan , maka array tersebut pasti merupakan posisi kosong, jadi kembalikan 0
Baris 6: Gunakan for loop untuk mulai menelusuri array. Logika berikut ini sangat sederhana. Jika Anda memegang posisi long, hasilnya adalah 1; jika Anda memegang posisi short, hasilnya adalah -1.
Baris 18: Panggil fungsi mp yang baru saja kita tulis untuk mendapatkan informasi posisi.
Dapatkan harga tertinggi dan terendah dari 50K baris terakhir
Dalam Alat Kuantitatif Inventor, Anda dapat langsung memperolehnya dengan menggunakan fungsi "TA.Highest" dan "TA.Lowest" tanpa harus menulis sendiri perhitungan logisnya. Dan hasil yang dikembalikan oleh fungsi “TA.Highest” dan “TA.Lowest” adalah nilai spesifik, bukan array. Ini sangat praktis. Tidak hanya itu, aplikasi resmi ini juga memiliki ratusan fungsi indikator bawaan.

Gambar 4-55
Seperti yang ditunjukkan pada gambar di atas:
Baris 19: Panggil fungsi "TA.Highest" untuk mendapatkan nilai maksimum dari harga tertinggi dalam 50 periode
Baris 20: Panggil fungsi "TA.Lowest" untuk mendapatkan nilai minimum dari harga terendah dalam 50 periode
Baris 21: Hitung nilai rata-rata berdasarkan nilai maksimum harga tertinggi dalam 50 periode dan nilai minimum harga terendah dalam 50 periode
Langkah 3: Lakukan pemesanan
Dengan data di atas, Anda dapat menulis logika perdagangan dan kode untuk menempatkan pesanan. Formatnya juga sangat sederhana. Yang paling umum digunakan adalah "pernyataan if", yang dapat dijelaskan dengan kata-kata sebagai berikut: jika kondisi 1 dan kondisi 2 terpenuhi, buat pesanan; jika kondisi 3 atau kondisi 4 terpenuhi, buat pesanan.

Gambar 4-56
Seperti yang ditunjukkan pada gambar di atas:
Baris 22: Gunakan pustaka transaksi, yang merupakan format tetap
Baris 23 dan 24: Ini adalah pernyataan untuk menutup posisi long, yang menggunakan "operator perbandingan" dan "operator logika" yang telah kita pelajari sebelumnya. Artinya, jika Anda saat ini memegang posisi long dan harga penutupan lebih rendah dari jalur tengah, semua posisi akan ditutup.
Baris 25 dan 26: Ini adalah pernyataan untuk menutup order short, yang menggunakan "operator perbandingan" dan "operator logika" yang telah kita pelajari sebelumnya. Artinya, jika Anda saat ini memegang order short dan harga penutupan lebih besar dari jalur tengah, semua posisi akan ditutup.
Baris 27: Tentukan status posisi saat ini. Jika posisinya short, lanjutkan ke langkah berikutnya.
Baris 28 dan 29: Tentukan apakah harga penutupan lebih tinggi dari jalur atas. Jika harga penutupan naik di atas jalur atas, beli untuk membuka posisi.
Baris 30 dan 31: Tentukan apakah harga penutupan lebih rendah dari jalur bawah. Jika harga penutupan turun di bawah jalur bawah, jual dan buka posisi.
Meringkaskan
Di atas, kita telah mempelajari setiap langkah pengembangan strategi perdagangan kuantitatif lengkap menggunakan Python, termasuk: pengenalan strategi, metode perhitungan saluran Donchian, logika strategi, kondisi pembelian dan penjualan, implementasi kode strategi, dll. Bagian ini hanyalah strategi sederhana, sebagai titik awal. Ada lebih dari satu metode. Anda dapat menggabungkan berbagai metode perdagangan sesuai dengan sistem perdagangan Anda sendiri untuk membentuk strategi perdagangan kuantitatif Anda sendiri.
Pratinjau Bagian Berikutnya
Dalam pengembangan strategi perdagangan kuantitatif, dari perspektif kecepatan eksekusi bahasa pemrograman, jika kita bertanya bahasa mana yang tercepat, jawabannya pasti C++. Khususnya di bidang derivatif dan perdagangan frekuensi tinggi, C++ memiliki kekhususan bahasa yang unik dan keunggulan dalam kalkulasi numerik. Kecepatannya dapat ditingkatkan beberapa kali lipat dibandingkan dengan JavaScript dan Python. Jika Anda ingin mengembangkan diri di bidang derivatif dan perdagangan frekuensi tinggi di masa mendatang, kursus ini tidak boleh Anda lewatkan.
Pekerjaan rumah
- Mulailah dengan menyalin dan menerapkan strategi di bagian ini.
- Cobalah menambahkan indikator rata-rata bergerak ke strategi di bagian ini untuk mengurangi frekuensi transaksi.
Bab 5 Strategi Backtesting, Debugging dan Perbaikan
5.1 Pentingnya dan jebakan backtesting
ringkasan
Pengujian ulang merupakan perbedaan terbesar antara perdagangan kuantitatif dan perdagangan tradisional. Berdasarkan data pasar riil yang telah terjadi dalam sejarah, pengujian ulang ini dengan cepat mensimulasikan pemicu sinyal strategi dan mencocokkan transaksi untuk memperoleh laporan kinerja dan data lainnya selama kurun waktu tertentu. Ini adalah salah satu komponen terpenting pengembangan strategi untuk saham domestik dan asing, komoditi berjangka, valuta asing, dan pasar lainnya.
Pentingnya Backtesting
Pada bab-bab sebelumnya, kita telah mempelajari dasar-dasar bahasa pemrograman umum dan mengajarkan Anda cara menggunakan dasar-dasar pemrograman ini untuk menulis beberapa strategi perdagangan sederhana. Dapat dikatakan bahwa kita telah melewati lebih dari setengah perjalanan panjang ini. Namun, setelah strategi ditulis, strategi tersebut tidak dapat langsung dipraktikkan. Strategi tersebut masih memerlukan pengujian ulang - debugging - pengujian ulang - debugging - dan seterusnya secara terus-menerus, hingga strategi tersebut dapat sepenuhnya mengimplementasikan konten model dan berjalan lancar.
Dari perspektif logika perdagangan kuantitatif, strategi sebenarnya didasarkan pada serangkaian kognisi dan asumsi tentang pasar. Pengujian ulang dapat secara efisien menentukan apakah asumsi ini valid dan stabil. Kerugian apa yang mungkin terjadi selama periode yang secara historis tidak stabil dan bagaimana membantu dalam pengambilan keputusan untuk mencegah kerugian tersebut.
Selain itu, dari perspektif operasi perdagangan kuantitatif, pengujian ulang dapat membantu mendeteksi bug dalam logika strategi, seperti fungsi masa depan, pencurian harga, multi-fitting, dll. Memberikan bukti yang dapat diandalkan bahwa strategi tersebut dapat digunakan dalam perdagangan sesungguhnya.
- Verifikasi keakuratan sinyal perdagangan.
- Verifikasi logika transaksi dan apakah ide Anda layak.
- Temukan kelemahan dalam sistem perdagangan Anda dan perbaiki strategi awal Anda.
Oleh karena itu, pentingnya pengujian ulang adalah untuk memulihkan proses perdagangan aktual serealistis mungkin melalui data historis, memverifikasi efektivitas strategi, menghindari membayar harga tinggi untuk strategi yang salah, dan membantu kita menyaring, meningkatkan, dan mengoptimalkan strategi perdagangan.
Perangkap Pengujian Ulang
Pengujian Ulang Sinyal Perangkap Berkedip:
Strategi perdagangan diuji kembali berdasarkan data historis statis. Data transaksi sebenarnya bersifat dinamis. Misalnya: Jika harga tertinggi lebih besar dari harga penutupan kemarin, maka beli untuk membuka posisi. Dalam perdagangan nyata, jika garis K belum selesai, harga tertinggi akan bersifat dinamis dan sinyal perdagangan dapat berkedip-kedip. Selama pengujian ulang, mesin pengujian ulang dapat mensimulasikan transaksi yang cocok berdasarkan data historis statis.
Perangkap pengujian ulang fungsi masa depan:
Fungsi masa depan menggunakan harga masa depan, yang berarti bahwa kondisi saat ini dapat berubah di masa mendatang. Fungsi masa depan juga dapat menyebabkan sinyal berkedip. Jadi fungsi apa pun memiliki karakteristik fungsi masa depan, seperti "fungsi zigzag".
Seperti yang ditunjukkan pada gambar di bawah ini: Fungsi ZigZag menunjukkan titik balik puncak dan palung. Fungsi ini dapat menyesuaikan nilainya sesuai dengan harga terkini. Namun, jika harga saat ini berubah, hasil yang dihitung oleh fungsi ZigZag juga akan berubah. Jika suatu fungsi dengan fungsi masa depan digunakan, sinyal order saat ini dapat dibuat dan order dapat ditempatkan, tetapi sinyal tersebut mungkin tidak dibuat setelah beberapa saat.

Gambar 5-1
Perangkap Backtesting: Pencurian Harga
Yang disebut pencurian harga mengacu pada penggunaan harga masa lalu untuk berdagang. Misalnya: jika harga tertinggi lebih besar dari harga tetap, beli pada harga pembukaan. Kondisi ini mencuri harga, karena di pasar sebenarnya, ketika harga tertinggi lebih besar dari harga tertentu, harga tersebut sudah berada pada jarak tertentu lebih tinggi dari harga pembukaan, dan saat ini tidak dapat dibeli pada harga pembukaan. Namun pada backtest, ada sinyal beli dan transaksi dapat diselesaikan.
Ada situasi lain. Jika harga melonjak lebih tinggi dan dibuka lebih tinggi dari harga tetap yang ditetapkan oleh strategi, transaksi dapat diselesaikan pada harga tetap selama pengujian ulang, tetapi harga tetap ini jelas tidak tersedia di pasar sebenarnya.
Perangkap Backtesting: Harga Transaksi yang Tidak Mungkin
Ada beberapa situasi di mana harga tidak dapat diperdagangkan:
Yang pertama: Dalam perdagangan sebenarnya, Anda umumnya tidak dapat membeli saat harga mencapai batas atas, dan sebaliknya. Namun, perdagangan dapat dilakukan pada backtest.
Tipe kedua: Mekanisme pencocokan pertukaran adalah: prioritas harga dan prioritas waktu. Beberapa jenis sering kali memiliki pesanan besar pada harga pasar. Jika Anda menempatkan pesanan beli atau jual selama perdagangan nyata, Anda perlu menunggu harga pasar menebal sebelum transaksi dapat diselesaikan, atau bahkan tidak dapat diselesaikan. Namun, selama pengujian ulang, perintah beli dan jual yang tertunda dapat dieksekusi.
Tipe ketiga: Jika merupakan strategi arbitrase, maka keuntungan dari pengujian ulang sangat tinggi, karena setiap kali pengujian ulang, diasumsikan bahwa perbedaan harga tersebut telah diambil. Pada kenyataannya, banyak spread harga tidak dapat direbut, atau hanya satu leg yang direbut. Secara umum, leg yang tidak menguntungkan bagi arah Anda akan dieksekusi terlebih dahulu, jadi Anda perlu segera mengisi leg lainnya. Pada saat ini, slippage tidak lagi 1 atau 2 poin, dan strategi arbitrase itu sendiri memperoleh selisih harga dari beberapa poin ini. Situasi ini tidak dapat disimulasikan dalam backtesting. Keuntungan sesungguhnya tidak sebaik hasil backtest.
Tipe keempat: peristiwa angsa hitam. Seperti yang ditunjukkan dalam lingkaran merah pada gambar di bawah, dalam peristiwa angsa hitam pada nilai tukar franc Swiss, meskipun di permukaan ada harga pembukaan, harga tertinggi, harga terendah, dan harga penutupan, pada kenyataannya, dalam kondisi pasar ekstrem pada siang hari, harga di tengah adalah vakum, sejumlah besar perintah stop-loss menyebabkan penyerbuan, likuiditas nol, dan transaksi sangat sulit, tetapi stop loss dapat dicapai dalam pengujian ulang.

Gambar 5-2
Perangkap Backtesting: Overfitting
Setiap kali melihat gambar di bawah ini, saya merasa: Hahahaha... Dari gambar di bawah ini, Anda dapat melihat bahwa model yang absurd, asalkan cukup kompleks, dapat beradaptasi dengan data dengan sempurna.

Gambar 5-3
Untuk perdagangan kuantitatif, pengujian ulang didasarkan pada data historis, tetapi sampel data historisnya terbatas. Jika strategi perdagangan memiliki terlalu banyak parameter atau logika perdagangan terlalu rumit, strategi perdagangan akan terlalu disesuaikan dengan data historis.
Proses pemodelan strategi kuantitatif pada dasarnya adalah proses menemukan data lokal non-acak dari sejumlah besar data yang tampaknya acak. Tanpa bantuan pengetahuan statistik, mudah untuk terjebak dalam perangkap overfitting.
Jadi, jangan menipu diri sendiri. Jika Anda menemukan bahwa data di luar sampel tidak berkinerja baik, dan Anda pikir sayang untuk membuang model tersebut atau Anda tidak mau mengakui bahwa model Anda tidak bagus, dan Anda terus mengoptimalkan model pada data di luar sampel hingga berkinerja sama baiknya pada data di luar sampel, maka pada akhirnya uang hasil jerih payah Andalah yang akan rugi.
Perangkap Pengujian Ulang: Bias Korban
Ada lelucon populer di Wall Street: Misalkan ada 1.000 monyet yang berpartisipasi dalam investasi di pasar. Pada tahun pertama, 500 monyet yang kalah di pasar akan tersingkir. Pada tahun kedua, separuh monyet dieliminasi lagi, sehingga tersisa 250 monyet. Pada akhir tahun ketiga, tersisa 125 monyet.

Gambar 5-4
Pada tahun kesembilan, hanya tersisa satu monyet. Lalu Anda melihatnya, kiri dan kanan, dan tampak familier. Akhirnya, ketika saya melihat sampul majalah keuangan, saya tiba-tiba teringat, "Oh, bukankah ini Buffett?"
Tentu saja ini hanya candaan, tetapi pernahkah Anda berpikir bahwa jika ada 1.000 manajer dana, maka setelah 10 tahun, sekitar 10 manajer dana akan mengungguli pasar selama 10 tahun berturut-turut. Namun hal ini mungkin ditentukan oleh keacakan dan keberuntungan, dan tidak ada hubungannya dengan keterampilan manajer dana.
Sama seperti kinerja backtest di sisi kiri gambar di bawah, saya yakin sebagian besar investor akan terkesima. Strategi investasi ini memiliki kinerja yang sangat solid dengan hampir tidak ada kerugian yang signifikan.

Gambar 5-5
Tunggu sebentar, seperti yang ditunjukkan pada gambar di sebelah kanan, situasi sebenarnya ada di dalam. Ternyata kurva uji ulang di sebelah kiri adalah yang berkinerja terbaik di antara sekian banyak uji ulang. Dengan kata lain, pada backtest di sebelah kiri, terdapat banyak situasi dengan performa yang bahkan lebih buruk.
Perangkap Backtesting: Dampak Biaya
Dalam lingkungan perdagangan yang sebenarnya, harga selalu berfluktuasi. Saat Anda melihat peluang perdagangan dan melakukan pemesanan, harganya mungkin telah berubah. Oleh karena itu, masalah slippage tidak dapat dihindari, baik dalam perdagangan subjektif maupun perdagangan kuantitatif.
Namun, pengujian ulang didasarkan pada data statis dan sulit untuk mensimulasikan lingkungan perdagangan nyata. Misalnya: harga pesanan adalah beli pada 1050, tetapi harga transaksi aktual mungkin 1051. Ada banyak alasan untuk fenomena ini, seperti: kekosongan likuiditas dalam kondisi pasar yang ekstrem, keterlambatan jaringan, sistem perangkat lunak dan perangkat keras, respons server, dll.
Pengujian ulang tanpa selip
Seperti yang ditunjukkan pada gambar di atas, ini adalah backtest tanpa slippage. Kurva modal terlihat lebih baik, tetapi ada perbedaan antara harga transaksi aktual dalam perdagangan riil dan harga transaksi ideal dari backtest strategi. Oleh karena itu, untuk mengurangi kesalahan ini, saat menguji ulang strategi, Anda dapat menetapkan 2 titik slippage untuk menaikkan harga beli atau menurunkan harga jual.
Pengujian Ulang dengan Slippage
Seperti yang ditunjukkan pada gambar di atas, untuk strategi yang sama, jika hasil backtest berbeda secara signifikan dari hasil backtest tanpa slippage setelah menambahkan 2-jump slippage, berarti strategi ini perlu diperbaiki atau diganti dengan yang baru. Khususnya untuk strategi dengan frekuensi perdagangan yang relatif tinggi, menambahkan slippage 1 hingga 2 lompatan selama pengujian ulang dapat membuat pengujian ulang lebih dekat dengan lingkungan perdagangan nyata.
Meringkaskan
Beberapa teman mungkin bertanya, karena mungkin ada begitu banyak masalah dalam perdagangan kuantitatif, bagaimana saya harus membuktikan bahwa strategi saya baik-baik saja? Sebenarnya, jawabannya sangat sederhana. Sebelum menerapkan strategi dalam praktik, Anda harus terlebih dahulu melakukan simulasi transaksi selama jangka waktu tertentu. Jika harga transaksi dari transaksi yang disimulasikan hampir sama dengan harga transaksi selama backtest, maka itu membuktikan bahwa tidak ada masalah dengan strategi tersebut, setidaknya tidak ada masalah dengan logika strategi.
Bagaimanapun juga, pengujian ulang merupakan keharusan bagi pengembang sistem perdagangan berpengalaman. Karena dapat memberi tahu Anda apakah suatu ide strategi dapat diverifikasi keefektifannya dalam transaksi historis. Tetapi sering kali pengujian ulang tidak menjamin keuntungan di masa mendatang. Karena terlalu banyak jebakan dalam pengujian ulang, Anda tidak akan memahaminya kecuali Anda menghabiskan uang untuk mempelajari beberapa pelajaran. Dan pelajaran ini dipelajari dengan uang sungguhan. Saya pikir membaca artikel ini setidaknya dapat membantu Anda menghindari banyak jalan memutar dan jebakan kuantitatif.
Pekerjaan rumah
- Apa itu overfitting dan bagaimana cara menghindarinya?
- Apa sajakah contoh bias penyintas dalam kehidupan nyata?
5.2 Bagaimana melakukan backtesting perdagangan kuantitatif
ringkasan
Pentingnya dan signifikansi pengujian ulang tidak diragukan lagi. Saat melakukan pengujian ulang kuantitatif, seseorang harus mencoba mempertahankan strategi dalam lingkungan historis yang sebenarnya sebanyak mungkin. Jika detail dalam lingkungan historis diabaikan, seluruh pengujian ulang kuantitatif mungkin tidak valid. Artikel ini akan menjelaskan kepada Anda cara melakukan pengujian ulang perdagangan kuantitatif.
Pengujian ulang setara dengan pemutaran ulang data. Pengujian ini memutar ulang data K-line historis dan mensimulasikan aturan perdagangan nyata untuk membeli dan menjual, dan akhirnya merangkum rasio Sharpe, tingkat penarikan maksimum, tingkat pengembalian tahunan, kurva modal, dan data lainnya dalam suatu periode waktu. Saat ini, ada banyak perangkat lunak yang dapat melakukan pengujian ulang, seperti Wenhua Finance yang memiliki rangkaian produk lengkap, VNPY yang dapat disesuaikan secara fleksibel, dan sebagainya.
Sebagai perangkat lunak perdagangan kuantitatif komersial, Inventor Quant dilengkapi dengan mesin pengujian ulang berkinerja tinggi dan mengadopsi kerangka pengujian ulang for-loop (polling) untuk perhitungan vektor, yang lebih cepat. Ia juga menyatukan kode untuk pengujian ulang dan perdagangan aktual, yang sebagian menyelesaikan dilema “pengujian ulang mudah, perdagangan aktual sulit”.
Pengenalan antarmuka pengujian ulang
Mari kita ambil Strategi Bahasa Mai Inventor Quantitative sebagai contoh dan buka situs web resmi Alat Perdagangan Inventor Quantitative (www.fmz.com). Klik Pusat Kontrol, Pustaka Strategi, Pilih Strategi, Simulasikan Uji Balik, dan masuk ke halaman berikut:

Gambar 5-8
Pada antarmuka konfigurasi uji ulang, Anda dapat menyesuaikannya berdasarkan kebutuhan aktual Anda. Misalnya: mengatur waktu uji ulang, periode K-line, dan tipe data (data level simulasi atau data level real-time. Sebagai perbandingan, pengujian ulang data level simulasi lebih cepat, sedangkan pengujian ulang data level real-time lebih akurat). Selain itu, Anda juga dapat menetapkan biaya pengujian ulang dan dana awal akun, dll.
Klik pada Perpustakaan Perdagangan Bahasa Mai, yang pertama adalah tab Pengaturan Perdagangan. Strategi Bahasa Mai dalam Alat Perdagangan Kuantitatif Inventor memiliki dua metode pelaksanaan uji coba ulang, yaitu: model harga penutupan dan model harga waktu nyata. Model harga penutupan berarti bahwa model dieksekusi hanya setelah K-line saat ini selesai, dan transaksi dieksekusi ketika K-line berikutnya dimulai. Model harga waktu nyata berarti bahwa model dieksekusi sekali setiap kali harga berubah, dan transaksi dieksekusi segera ketika sinyal perdagangan terbentuk. Seperti yang ditunjukkan di bawah ini:

Gambar 5-9
Ukuran lot pembukaan default mengacu pada jumlah posisi yang dibuka dan ditutup selama pengujian ulang, dan ukuran order transaksi tunggal maksimum adalah jumlah maksimum posisi pembukaan dan penutupan yang dipercayakan kepada mesin pengujian ulang dalam satu transaksi. Terjadi penyimpangan antara harga transaksi aktual dan harga transaksi yang telah ditetapkan. Penyimpangan ini umumnya bergerak ke arah yang tidak menguntungkan bagi pedagang, sehingga mengakibatkan kerugian tambahan dalam transaksi, sehingga perlu ditambahkan slippage. Komoditas berjangka domestik umumnya menambahkan 1 hingga 2 lonjakan, atau bahkan lebih, untuk mensimulasikan lingkungan perdagangan yang sebenarnya.
Isi jenis kontrak yang akan diuji kembali dalam opsi berjangka, seperti rb000 atau rb888. Opsi riil terutama digunakan untuk perdagangan nyata, dan pengaturan default dapat dipertahankan dalam pengujian ulang. Jika kemajuan pemulihan otomatis diklik ke benar, maka ketika strategi menghentikan robot selama operasi waktu nyata, memulai ulang robot akan secara otomatis memulihkan posisi sinyal sebelumnya tanpa menghitung ulang sinyal. Jumlah percobaan ulang pesanan secara default adalah 20. Jika pesanan gagal, sistem akan mencoba mengajukan pesanan lagi. Interval pemungutan suara jaringan adalah interval waktu saat robot mengeksekusi kode strategi.

Gambar 5-10
Opsi perdagangan spot terutama untuk perdagangan mata uang digital, dan Anda dapat mempertahankan pengaturan default dalam pengujian ulang. Anda dapat menentukan volume transaksi tunggal, volume transaksi minimum, akurasi mata uang harga, akurasi produk transaksi, biaya penanganan, waktu sinkronisasi akun, interval statistik laba rugi, dsb. Selain itu, untuk pertukaran mata uang digital individual, Anda juga dapat mengatur kelipatan leverage dan pengaturan terkait lainnya.

Gambar 5-11
Pengujian Ulang Strategi
Sebelum melakukan backtesting, tentukan dulu strategi trading Anda. Di sini kita ambil contoh strategi thermostat. Strategi ini akan mengadopsi strategi tren di pasar yang sedang tren dan strategi volatil di pasar yang volatil berdasarkan kondisi pasar. Kode sumbernya adalah sebagai berikut (Anda juga dapat mengunduhnya langsung dari situs web resmi Strategy Square di Inventor Quantitative):

Gambar 5-12
Pada antarmuka pengujian ulang simulasi, setelah mengonfigurasi pengaturan pengujian ulang, cukup klik tombol Mulai Pengujian Ulang, dan hasil pengujian ulang akan segera ditampilkan setelah beberapa puluh detik. Dalam log pengujian ulang, jumlah detik yang dibutuhkan untuk pengujian ulang, jumlah total log, dan jumlah transaksi dicatat. Informasi akun mencetak hasil kinerja akhir dari pengujian ulang strategi: laba rugi rata-rata, laba rugi posisi, margin, biaya penanganan, dan perkiraan pengembalian, dll.

Gambar 5-13
Kolom informasi status mencatat jenis transaksi, volume posisi, harga posisi, harga terkini, jenis sinyal terakhir, harga tertinggi dan terendah setelah posisi ditahan, nomor dan waktu pembaruan, dan informasi dana. Selain itu, label laba rugi mengambang menunjukkan kurva modal terperinci dari akun tersebut, serta indikator kinerja yang umum digunakan: hasil, hasil tahunan, rasio Sharpe, volatilitas tahunan, dan tingkat penarikan maksimum, yang pada dasarnya dapat memenuhi kebutuhan sebagian besar pengguna.
Di antara semuanya, indikator kinerja yang paling penting adalah rasio Sharpe. Ini adalah indikator komprehensif yang mempertimbangkan laba dan risiko. Ini juga merupakan indikator referensi penting untuk mengukur produk reksa dana. Dalam istilah awam, ini berarti seberapa besar risiko yang Anda ambil untuk setiap dolar yang Anda hasilkan. Oleh karena itu, semakin tinggi rasio Sharpe, semakin baik.
Seperti yang tersirat dalam namanya, volatilitas tahunan adalah volatilitas harian yang dikalikan dengan jumlah hari perdagangan per tahun. Volatilitas tahunan mengukur risiko suatu dana, tetapi jelas bukan risiko total. Misalnya, Strategi A memiliki volatilitas yang lebih tinggi, tetapi terus berfluktuasi ke atas dengan tingkat pengembalian yang baik, sementara Strategi B memiliki volatilitas yang lebih rendah, tetapi tetap datar. Dapatkah kita mengatakan bahwa Strategi B lebih baik daripada Strategi A? Seperti yang ditunjukkan pada gambar berikut, strategi A:

Gambar 5-14
Terakhir, pada kolom informasi log, status pencocokan setiap transaksi selama pengujian ulang dicatat secara terperinci, termasuk waktu spesifik transaksi, pertukaran, beli dan jual, jenis pembukaan dan penutupan, harga transaksi yang dicocokkan oleh mesin pengujian ulang, kuantitas transaksi, dan informasi tercetak, dst.

Gambar 5-15
Setelah Pengujian Ulang
Seringkali, bahkan dalam sebagian besar kasus, hasil pengujian ulang akan jauh dari harapan Anda. Bagaimanapun, strategi yang menghasilkan keuntungan jangka panjang, berkelanjutan, dan stabil tidaklah mudah untuk dicapai. Strategi ini membutuhkan kemampuan Anda untuk memahami pasar.
Jika pengujian ulang strategi Anda menghasilkan kerugian, jangan berkecil hati, ini sebenarnya normal. Pertama, periksa apakah logika strategi ditulis dengan tidak benar, apakah parameter yang digunakan ekstrem, apakah ada terlalu banyak kondisi pembukaan dan penutupan, dll. Jika perlu, Anda juga dapat memeriksa kembali strategi perdagangan dan filosofi perdagangan Anda dari sudut pandang lain.
Jika hasil uji ulang strategi Anda sangat baik, kurva modal sempurna, dan rasio Sharpe melebihi 1 atau bahkan lebih. Jangan terlalu senang dulu. Ketika Anda menghadapi situasi seperti ini, sebagian besar penyebabnya adalah penggunaan fungsi masa depan, pencurian harga, overfitting, atau kegagalan menetapkan slippage, dll. Anda dapat menggunakan data di luar sampel dan simulasi perdagangan nyata untuk menghilangkan masalah ini.
Meringkaskan
Di atas adalah pengantar terhadap keseluruhan proses pengujian ulang seluruh strategi perdagangan, yang dapat dikatakan telah dijelaskan secara rinci. Perlu dicatat bahwa pengujian ulang data historis, bagaimanapun juga, adalah lingkungan ideal di mana semua risiko diketahui. Oleh karena itu, waktu terbaik untuk menguji ulang strategi adalah pada saat pasar sedang bullish atau bearish, dan jumlah transaksi yang efektif tidak boleh kurang dari 100 kali, sehingga tidak terjadi bias survival parsial.
Pasar selalu berubah dan berkembang. Strategi yang berkinerja baik dalam pengujian ulang historis belum tentu berkinerja baik di masa mendatang. Strategi tersebut tidak hanya dapat mengatasi risiko yang diketahui dalam lingkungan pengujian ulang, tetapi juga perlu mengatasi risiko yang tidak diketahui di masa mendatang. Oleh karena itu, sangat penting untuk meningkatkan ketahanan risiko dan universalitas strategi.
Pekerjaan rumah
- Cobalah untuk menyalin strategi di bagian ini dan menguji kembali laporan kinerja
- Berdasarkan pengalaman perdagangan Anda sendiri, cobalah untuk meningkatkan dan mengoptimalkan strategi di bagian ini
5.3 Cara memahami laporan kinerja pengujian ulang strategi
ringkasan
Ketika pengujian ulang strategi kita selesai, Alat Perdagangan Kuantitatif Inventor akan menampilkan berbagai indikator kinerja dan grafik kurva keuntungan di halaman web. Namun, mungkin karena kita tidak familier dengan interpretasi dan isi indikator-indikator ini, kita tidak dapat menilai secara akurat apakah suatu strategi itu baik atau buruk. Artikel ini akan dimulai dengan konsep-konsep indikator utama untuk membantu semua orang memahami laporan kinerja pengujian ulang strategi dan membedakan kelebihan dan kekurangan strategi tersebut. Tentu saja, sebagian besar alat perdagangan kuantitatif memiliki laporan kinerja backtest semacam ini, dan isinya serupa. Setelah Anda mempelajari konten bagian ini, konten tersebut juga akan berlaku bahkan jika Anda beralih ke alat perdagangan lain.
Evaluasi yang objektif dan lengkap
Baik itu catatan data perdagangan nyata maupun laporan pengujian ulang menggunakan data historis, kualitas model dievaluasi melalui statistik mengenai kondisi perdagangan.
Pertanyaan utamanya adalah, data statistik apa yang dibutuhkan untuk perbandingan? Mari kita lihat contoh berikut: Seperti yang ditunjukkan pada gambar di bawah ini, dengan asumsi bahwa dua set data berikut diperoleh dalam pengujian selama periode waktu yang sama, dapatkah kita menentukan model mana yang berkinerja lebih baik?

Gambar 5-16
Jawabannya adalah tidak. Kesatuan sisi sistem evaluasi akan membawa sistem perdagangan kuantitatif menuju jalan buntu.
Sistem perdagangan harus mampu melewati pengujian ulang historis sebelum dapat digunakan. Sistem perdagangan yang tidak dapat lulus uji ulang historis tidak mungkin menghasilkan keuntungan dalam perdagangan aktual dalam jangka panjang. Pengujian ulang historis merupakan prasyarat yang diperlukan untuk menempatkan sistem perdagangan ke dalam perdagangan nyata.
Sistem perdagangan yang dapat lulus uji ulang historis belum tentu merupakan sistem perdagangan yang baik, namun jika tidak dapat lulus uji ulang historis, sistem perdagangan tersebut sudah pasti bukan sistem perdagangan yang baik. Secara umum, kita perlu menganalisis laporan kinerja dari perspektif stabilitas, keberlanjutan, dan apakah laporan tersebut memenuhi harapan.

Gambar 5-17
Seperti yang ditunjukkan pada gambar di atas, siapa pun yang pernah terlibat dalam perdagangan kuantitatif mungkin pernah melihat istilah-istilah data kinerja backtest yang panjang dan tidak jelas ini. Di antara data kinerja ini, banyak yang bahkan saling bertentangan. Banyak pemula kuantitatif yang bingung tentang data mana yang menjadi fokus.
Istilah indikator kinerja pada gambar di atas secara umum dapat dibagi menjadi beberapa kategori: rasio kinerja, analisis siklus, berbagai kurva, analisis perdagangan ekstrem, dll. Bahkan dari sudut pandang produk dana, sebagian besar di antaranya hanya merupakan tampilan hasil perhitungan uji ulang, yang memiliki sedikit signifikansi penerapan praktis, seperti: persyaratan modal akun, pendapatan simpanan, batas keyakinan, dan lain-lain. Anda mungkin hanya perlu fokus pada hal-hal yang penting saja. Di bawah ini saya akan memilih beberapa indikator kinerja backtest yang paling penting untuk penjelasan rinci.
Indikator kinerja penting
Penarikan Maksimum
Rumus perhitungan drawdown maksimum adalah seperti di atas. Bagi model tersebut, drawdown maksimum merupakan indikator risiko yang sangat penting, yang bahkan lebih penting daripada volatilitas. Penarikan maksimum yang terlihat dalam pengujian ulang juga mewakili, dalam arti tertentu, situasi terburuk yang mungkin terjadi setelah Anda membuka posisi.
Dari sudut pandang matematika, jika modal merugi 20%, dana yang tersisa perlu menghasilkan laba sebesar 25% untuk mengembalikan skala modal semula. Jika kerugiannya 50%, dana yang tersisa perlu menghasilkan laba sebesar 100% untuk mengembalikan skala modal sebelum kerugian.
Maka tidak dapat dipungkiri lagi bahwa semakin besar kerugiannya, semakin kecil pula kemungkinan untuk kembali ke skala modal awal dan semakin besar pula kesulitannya. Ruang untuk memperoleh keuntungan ke atas bagi dana tidak terbatas, tetapi ruang untuk memperoleh kerugian ke bawah terbatas, dan kemungkinan untuk mencapai titik terendah lebih besar.
Tidak peduli bagaimana definisinya, setidaknya dua poin ini merupakan pemahaman umum saat ini:
- Semakin kecil retracement maksimum, semakin baik;
- Penarikan dana berbanding lurus dengan risiko. Semakin besar penarikan dana, semakin besar risikonya, dan semakin kecil penarikan dana, semakin kecil risikonya.
Rasio pengembalian terhadap risiko yang disesuaikan (RAROC)
Banyak orang yang tidak familiar dengan konsep ini. Faktanya, rasio risiko-imbal hasil yang disesuaikan adalah batas antara pemain profesional dan pemain amatir. Ini juga merupakan alat evaluasi yang sangat baik untuk bank investasi, dana besar, dan pedagang profesional, dan merupakan standar penilaian umum di bidang keuangan global.
Dalam berinvestasi, kita tidak boleh hanya melihat keuntungan saja, tetapi pertimbangkan juga seberapa besar risiko yang diambil untuk memperoleh keuntungan tersebut. Secara umum, risiko dan pengembalian suatu aset bersifat proporsional. Artinya, ketika model tersebut memimpin dalam hal hasil dan membuat kemajuan pesat, mungkin ada risiko tersembunyi di balik kejayaannya yang belum terungkap.
Misalnya, kondisi pembukaan dan penutupan atau kenaikan dan penurunan posisi dalam model mungkin memiliki pengembalian yang lebih tinggi saat pasar sedang naik, tetapi saat terjadi penurunan, kerugiannya akan berlipat ganda, sehingga mengakibatkan kerugian yang sangat besar. Terlebih lagi, naik turunnya suhu memiliki dampak asimetris yang cukup besar.
Banyak trader kuantitatif berpengalaman bersedia mengorbankan sebagian keuntungan untuk mengurangi risiko. Dalam kasus ini, keuntungan yang disesuaikan dengan risiko lebih berharga sebagai referensi. Oleh karena itu, dalam pengujian ulang, model dengan risiko dan volatilitas tinggi belum tentu merupakan model yang baik meskipun memiliki pengembalian yang tinggi.
Simpanannya aman, tetapi hasil tahunannya hanya 2%. Pasar dapat membuat Anda memperoleh keuntungan 50% dalam beberapa hari, atau dapat membuat Anda kehilangan 50% dalam beberapa hari. Setelah bertahun-tahun berdagang, saya memiliki konsep yang sangat penting: hadapi risiko. Risiko dan keuntungan tidak pernah berdiri sendiri. Berdagang itu seperti pergi ke laut untuk menangkap ikan. Tidak mungkin Anda bisa memancing tetapi tidak mau menanggung risiko di laut. Terlalu konservatif dan terlalu radikal sebenarnya adalah dua hal yang ekstrem. Hal yang sama berlaku untuk merancang model strategi.
Jumlah transaksi
Anda tidak dapat menggunakan kinerja uji ulang beberapa bulan untuk membuktikan model tersebut. Jika data backtest terlalu sedikit, hasil backtest mungkin tidak disengaja, bisa jadi parameternya tidak disengaja, atau kondisi pasarnya tidak disengaja, dan sebagainya. Selain itu, data historis yang lebih panjang juga dapat menyaring beberapa bias penyintas.
Secara umum, untuk saham dan komoditas domestik, data harus diuji ulang selama lebih dari 5 tahun, dan untuk produk yang baru terdaftar, setidaknya diperlukan pengujian ulang selama 3 tahun. Untuk produk atau komoditas yang terdaftar sebelumnya seperti emas dan indeks dolar AS di pasar internasional, setidaknya satu siklus bull-bear harus diuji kembali, yang umumnya harus lebih dari 10 hingga 15 tahun. Periode pengujian ulang harus cukup lama agar hasil pengujian ulang cukup dapat diandalkan. Untuk produk yang tidak memenuhi persyaratan ini, nilai R harus diberi bobot yang tepat saat membuka posisi untuk secara proaktif mengurangi paparan risiko.
Keuntungan rata-rata
Indikator keuntungan rata-rata tampaknya biasa saja, tetapi sebenarnya sangat penting. Perhitungannya juga sangat sederhana: Laba Bersih / Jumlah Transaksi. Tidaklah berlebihan jika dikatakan bahwa itu adalah cermin yang dapat mendeteksi kinerja backtest yang tampak cerah di permukaan. Seperti yang ditunjukkan pada gambar di bawah ini, jika strategi ini dapat menghasilkan uang, itu tidak normal:

Gambar 5-18

Gambar 5-19
Jika Anda melihat kinerja backtest dari strategi ini, Anda mungkin bertanya: bukankah sangat disayangkan jika tidak menggunakan strategi yang hampir sempurna ini? Tunggu sebentar! Harap perhatikan dengan saksama keuntungan rata-rata pada gambar kedua, yang hanya 17, artinya keuntungan rata-rata dari setiap transaksi hanya 17 yuan.
Ambil contoh sebagian besar produk pasar berjangka yang melonjak 10 yuan. Siapa pun yang pernah melakukan perdagangan nyata akan mengerti apa artinya. Dalam perdagangan nyata, jangankan satu lompatan, sepuluh atau delapan lompatan pun mungkin terjadi. Dua lompatan dan tiga lompatan adalah hal yang biasa.
Tingkat Kemenangan
Tingkat kemenangan tidak pernah ada dengan sendirinya, atau tidak realistis untuk membicarakan masalah hanya berdasarkan tingkat kemenangan. Jika Anda menggunakan model yang tepat di pasar yang tepat, tidaklah mengherankan jika Anda mencapai tingkat kemenangan 80%, tetapi ini tidak ada artinya.
Harganya naik atau turun, kalau tidak, harganya tetap sama. Jika waktunya cukup lama, Anda akan menemukan bahwa kemungkinan harga naik dan turun masing-masing adalah 50%. Apa pun jenis model strategi yang Anda gunakan, jika tingkat kemenangan melebihi 50% selama pengujian ulang, Anda harus berhati-hati. Dari sudut pandang matematika dan fisika, ini tidak mungkin.
Kurva Ekuitas Terperinci
Seperti kata pepatah, sebuah gambar bernilai seribu kata. Kurva ekuitas yang terperinci dimulai dari saat entri pertama hingga saat batang terakhir grafik. Ini adalah kurva ekuitas real-time untuk perdagangan. Kurva ini bersifat real-time karena memperhitungkan laba dan rugi mengambang pada setiap batang.

Gambar 5-20
Kurva ekuitas terperinci mencerminkan perubahan nilai bersih akun dan merupakan alat evaluasi yang paling intuitif. Kurva ini memungkinkan seseorang untuk memperoleh gambaran kasar tentang status kerugian dan laba strategi serta volatilitas/kelancaran laba dan rugi secara sekilas. Namun, gambaran laporan kinerja strategi ini tidak hanya bernilai seribu kata, tetapi juga membingungkan jutaan orang yang percaya. Selain itu, jangan pernah melihat kurva ekuitas penutupan.
Tingkat Pengembalian Tahunan
Laba tahunan merupakan indikator yang kontroversial. Sebagian orang beranggapan bahwa indikator ini hanya dapat dilihat oleh orang awam dan tidak memiliki nilai acuan. Pertama-tama, menghasilkan laba merupakan prasyarat agar model dapat dipilih, atau dengan kata lain, pengembalian model itu sendiri harus memiliki nilai harapan positif.

Gambar 5-21
Anda dapat memperoleh keuntungan 100% yang tak terhitung jumlahnya, tetapi paling banyak Anda hanya mampu memperoleh satu keuntungan 100%. Kesenjangan antara tingkat pengembalian tahunan dan tingkat pengembalian aktual (tingkat pengembalian periode kepemilikan) mungkin sangat besar, terkadang bahkan lebih besar dari yang dapat kita bayangkan.
Meringkaskan
Terakhir, satu hal perlu dijelaskan. Performa pengujian ulang yang sempurna tidak ada. Selain masalah dengan data pengujian itu sendiri, pengguna model mungkin menghadapi lebih banyak kendala. Segala hal mulai dari pengoptimalan parameter hingga desain transaksi mungkin berbeda dari operasi sebenarnya.
Yang lebih penting, masalah emosional di tingkat eksekusi adalah faktor X dalam menempatkan model ke dalam produksi. Perdagangan riil tidak dapat dijalankan dalam lingkungan "kekosongan emosional". Fenomena fat-tail adalah sesuatu yang harus selalu diwaspadai oleh setiap trader terprogram.
Pekerjaan rumah
- Buat daftar indikator kinerja yang menurut Anda paling penting dalam pengujian ulang
- Cobalah untuk menghitung indikator rasio Sharpe
5.4 Mengapa pengujian di luar sampel diperlukan
ringkasan
Pada bagian sebelumnya, kami berfokus pada beberapa indikator kinerja penting untuk mengajarkan Anda cara memahami laporan kinerja pengujian ulang strategi. Sebenarnya, menulis strategi yang dapat menghasilkan uang melalui backtesting bukanlah hal yang paling sulit. Yang lebih sulit adalah bagaimana mengevaluasi apakah strategi ini terus efektif dalam perdagangan nyata. Jadi hari ini saya akan menjelaskan kepada Anda pengujian di luar sampel dan pentingnya.
Backtesting tidak sama dengan trading sungguhan
Banyak pemula kuantitatif yang dengan mudah yakin akan strategi perdagangan mereka berdasarkan laporan kinerja yang tampaknya bagus atau kurva modal dari uji ulang, dan siap untuk menunjukkan bakat mereka di pasar. Memang, hasil uji ulang ini dapat sepenuhnya cocok dengan keadaan pasar tertentu yang mereka amati, tetapi begitu strategi perdagangan ini diterapkan dalam pertempuran sesungguhnya dalam jangka waktu lama, mereka akan menemukan bahwa strategi ini sebenarnya tidak efektif.
Saya telah melihat banyak strategi perdagangan yang memiliki tingkat keberhasilan lebih dari 50% saat diuji kembali. Dengan tingkat kemenangan yang tinggi, rasio untung rugi masih bisa di atas 1:1. Akan tetapi, begitu strategi ini diterapkan, pada dasarnya hasilnya adalah kerugian. Ada banyak penyebab terjadinya kerugian, salah satunya adalah saat pengujian ulang, jumlah sampel data terlalu sedikit, sehingga menimbulkan bias data.
Namun, perdagangan adalah hal yang sangat rumit. Kalau dipikir-pikir kembali, hal itu sangat jelas, tetapi jika kita kembali ke awal, kita masih merugi. Ini melibatkan akar masalah kuantifikasi - keterbatasan data historis. Oleh karena itu, jika Anda hanya menggunakan data historis yang terbatas untuk menguji strategi perdagangan Anda, akan sulit untuk menghindari masalah "mengemudi sambil melihat ke kaca spion".
Apa itu pengujian di luar sampel?
Bagaimana kita dapat memanfaatkan data yang terbatas secara optimal untuk menguji ulang strategi perdagangan secara ilmiah ketika datanya terbatas? Jawabannya adalah pengujian di luar sampel. Saat melakukan backtesting, data historis dibagi menjadi dua bagian menurut urutan waktu. Bagian data pertama digunakan untuk pengoptimalan strategi dan disebut set pelatihan, sedangkan bagian data kedua digunakan untuk pengujian di luar sampel dan disebut set pengujian.
Jika strategi Anda selalu efektif, optimalkan parameter terbaik dalam data set pelatihan dan terapkan parameter ini ke data set pengujian untuk pengujian ulang. Idealnya, hasil pengujian ulang harus serupa dengan hasil set pelatihan, atau dalam kisaran yang wajar. Ini menunjukkan bahwa strategi ini relatif efektif.
Akan tetapi, jika suatu strategi berkinerja baik dalam set pengujian, tetapi berkinerja buruk dalam set pengujian, atau sangat bervariasi, dan hal yang sama berlaku untuk parameter lainnya, maka strategi tersebut mungkin memiliki bias akomodasi data.
Misalnya, anggaplah Anda ingin melakukan backtest pada tulangan baja berjangka komoditas, dan ada sekitar 10 tahun data tentang tulangan baja (2009-2019). Maka Anda dapat menggunakan data dari tahun 2009 hingga 2015 sebagai set pelatihan, dan data dari tahun 2015 hingga 2019 sebagai set pengujian. Misalnya, untuk strategi rata-rata pergerakan ganda, grup parameter terbaik dalam set pelatihan adalah (rata-rata pergerakan 15 periode dan rata-rata pergerakan 90 periode), (rata-rata pergerakan 5 periode dan rata-rata pergerakan 50 periode), (rata-rata pergerakan 10 periode dan rata-rata pergerakan 100 periode)... Lalu, kami memasukkan grup parameter ini ke dalam set pengujian untuk pengujian ulang, dan membandingkan laporan kinerja pengujian ulang dan kurva modal dari set pelatihan dan set pengujian untuk menentukan apakah perbedaannya berada dalam rentang yang wajar.
Jika Anda tidak menggunakan pengujian di luar sampel dan langsung menggunakan data dari tahun 2009 hingga 2019 untuk menguji ulang strategi, hasilnya mungkin berupa laporan kinerja pengujian ulang dan kurva modal yang baik karena data historis yang sesuai. Namun, hasil pengujian ulang tersebut tidak terlalu penting untuk perdagangan aktual dan tidak memiliki peran pemandu, terutama untuk strategi dengan lebih banyak parameter.
Pengujian Luar Sampel Lanjutan
Selain membagi data historis menjadi dua bagian dan melakukan pengujian ulang dalam sampel dan luar sampel, sebenarnya ada pilihan yang lebih baik, yaitu metode pengujian ulang rekursif dan pengujian ulang silang. Terutama ketika data historisnya sedikit, seperti minyak mentah berjangka dan apel berjangka yang baru saja dicatatkan dalam beberapa tahun terakhir, kedua metode ini dapat digunakan untuk menguji model secara komprehensif menggunakan data yang terbatas.
Prinsip dasar pengujian retrospektif: melatih model dengan data historis yang lebih panjang sebelumnya, dan menguji model dengan data yang lebih pendek berikutnya, lalu terus-menerus memindahkan jendela pengambilan data ke belakang, mengulangi langkah-langkah pelatihan dan pengujian.
Data pelatihan: 2000 hingga 2001, data uji: 2002;
Data pelatihan: 2001 hingga 2002, data uji: 2003;
Data pelatihan: 2002 hingga 2003, data uji: 2004;
Data pelatihan: 2003 hingga 2004, data uji: 2005;
Data pelatihan: 2004 hingga 2005, data uji: 2006;
...dan sebagainya...
Akhirnya, hasil tes untuk tahun 2002, 2003, 2004, 2005, 2006 dan seterusnya dihitung untuk mengevaluasi kinerja strategi secara menyeluruh.
Prinsip-prinsip pengujian retrospektif dapat dijelaskan secara intuitif sebagai berikut:

Gambar 5-22
Diagram di atas menunjukkan dua metode untuk melakukan pengujian deduktif.
Yang pertama: data yang lebih pendek dan lebih banyak tes yang dilakukan pada setiap tes.
Jenis kedua: Setiap kali tes, data tes lebih panjang dan tes lebih sedikit.
Dalam aplikasi praktis, panjang data uji dapat diubah dan beberapa pengujian dapat dilakukan untuk menentukan stabilitas model dalam menangani data non-stasioner. Prinsip dasar validasi silang adalah membagi semua data menjadi N bagian yang sama, menggunakan N-1 bagian untuk pelatihan setiap waktu, dan menggunakan bagian yang tersisa untuk pengujian.
Jika kita membagi tahun 2000-2003 menjadi 4 bagian, maka proses operasi cross-checking adalah sebagai berikut:
Data pelatihan: 2001-2003, data pengujian: 2000;
Data pelatihan: 2000-2002, data pengujian: 2003
3. Data pelatihan: 2000, 2001, 2003, data pengujian: 2002;
4. Data pelatihan: 2000, 2002, 2003, dan data pengujian: 2001

Gambar 5-23
Seperti yang ditunjukkan pada gambar di atas: Keuntungan terbesar dari cross-checking adalah memanfaatkan data yang terbatas, dan setiap data pelatihan juga merupakan data pengujian. Namun, ada kelemahan yang jelas ketika cross-checking diterapkan pada pengujian model strategi:
- Hasil pengujian model seringkali tidak dapat diandalkan ketika data harga tidak stabil. Misalnya, dengan data tahun 2008 untuk latihan, dengan data tahun 2005 untuk pengujian. Sangat mungkin bahwa lingkungan pasar tahun 2008 telah berubah jauh dibandingkan dengan tahun 2005, sehingga hasil pengujian model tidak dapat diandalkan.
- Sama seperti di bagian pertama, dalam cross-checking, tidak masuk akal jika model yang digunakan untuk melatih data terbaru digunakan untuk menguji model data yang lebih tua.
Selain itu, ketika melakukan pengujian terhadap model strategi kuantitatif, baik pengujian deduktif maupun pengujian silang mengalami masalah overlap data.
Dalam mengembangkan model strategi perdagangan, sebagian besar indikator teknis didasarkan pada data historis dengan panjang tertentu. Misalnya, dengan menggunakan indikator tren, menghitung data historis selama 50 hari terakhir, dan pada hari perdagangan berikutnya, indikator tersebut dihitung dari data 50 hari sebelum hari perdagangan, maka kedua indikator tersebut memiliki 49 hari yang sama, yang akan menyebabkan perubahan indikator yang tidak jelas setiap dua hari berdekatan.

Gambar 5-24
Data yang tumpang tindih dapat menyebabkan:
- perubahan lambat dalam hasil yang diprediksi oleh model menyebabkan perubahan lambat dalam kepemilikan posisi, inilah yang sering kita sebut keterlambatan indikator.
- Beberapa nilai statistik tidak dapat digunakan untuk pengujian hasil model, karena hubungan urutan yang disebabkan oleh data yang berulang, sehingga beberapa hasil pengujian statistik tidak dapat diandalkan.
Strategi perdagangan yang baik harus dapat menghasilkan keuntungan di masa mendatang. Selain menguji strategi perdagangan secara objektif, pengujian di luar sampel juga dapat menghemat waktu pedagang kuantitatif secara efisien. Dalam kebanyakan kasus, sangat berbahaya untuk langsung mengadopsi parameter optimal semua sampel dan mengerahkannya dalam pertempuran sesungguhnya.
Jika semua data historis sebelum titik waktu optimasi parameter dibedakan, dibagi menjadi data dalam sampel dan data luar sampel, pertama menggunakan data dalam sampel untuk optimasi parameter, lalu menggunakan data luar sampel untuk pengujian luar sampel, maka kesalahan ini dapat diidentifikasi, dan pada saat yang sama dapat diperiksa apakah strategi yang dioptimalkan dapat diterapkan di pasar masa depan.
Meringkaskan
Seperti halnya dengan trading, kita tidak akan pernah bisa melintasi waktu, membuat keputusan yang benar untuk diri kita sendiri tanpa kesalahan sedikit pun. Jika ada tangan Tuhan atau kemampuan untuk melintasi kembali dari masa depan, maka tanpa tes, langsung online untuk melakukan trading langsung, kita juga bisa mendapatkan uang yang banyak. Dan saya, manusia fana, harus memeriksa strategi kita dalam data sejarah.
Akan tetapi, bahkan dengan sejumlah besar data sejarah, data tersebut tampak sangat langka jika dibandingkan dengan masa depan yang luas, tak terbatas, dan tak terduga. Oleh karena itu, sistem perdagangan yang dikembangkan dari bawah ke atas berdasarkan sejarah pada akhirnya akan tenggelam seiring berjalannya waktu. Karena sejarah tidak dapat menguras masa depan. Oleh karena itu, sistem perdagangan ekspektasi positif yang lengkap harus didukung oleh prinsip dan logika internalnya.
“Percaya, tapi verifikasi” — Presiden Reagan
Pekerjaan rumah
- Fenomena apa dalam kehidupan nyata yang merupakan bias penyintas?
- Gunakan alat kuantitatif milik penemu untuk melakukan uji ulang baik pada sampel dalam maupun sampel luar dan bandingkan perbedaannya.
5.5 Optimalisasi dan Optimalisasi Strategi Perdagangan
ringkasan
Inti dari strategi perdagangan adalah generalisasi dan kesimpulan dari aturan pasar. Semakin dalam pemahaman Anda tentang pasar dan semakin tinggi kemampuan Anda untuk mengekspresikan ide dengan kode, semakin dekat strategi Anda dengan pasar. Bagian ini akan terus menjelaskan cara mengoptimalkan strategi perdagangan Anda dan membuat persiapan akhir untuk perdagangan riil Anda.
Mengoptimalkan entri dan keluar
Sebagian besar strategi pelacakan tren menggunakan terobosan atau indikator teknis untuk menangkap tren pasar. Biasanya, metode masuk dan keluar dari sinyal-sinyal ini kurang tepat waktu. Jika strategi menggunakan model harga penutupan, titik masuk akan berada pada harga pembukaan garis K berikutnya. Oleh karena itu, waktu masuk terbaik untuk menembus garis K ini akan terlewatkan, dan sejumlah besar keuntungan akan terlewatkan.
Oleh karena itu, cara yang efektif adalah menggunakan harga real-time yang lebih menguntungkan dalam penerapan strategi dan segera menempatkan pesanan saat sinyal muncul. Dengan cara ini, saat sinyal terbentuk, Anda dapat segera memasuki pasar dan tidak akan kehilangan keuntungan. Namun, tidak semua harga real-time lebih baik daripada harga penutupan. Hal ini bergantung pada strategi perdagangan. Untuk beberapa strategi dengan logika perdagangan sederhana, perbedaan antara harga waktu nyata dan harga penutupan relatif kecil. Namun, model harga penutupan tidak dapat menangani logika perdagangan yang lebih rinci, jadi perlu menggunakan harga waktu nyata.
Optimasi parameter
Optimalisasi parameter dapat membuat strategi perdagangan kuantitatif lebih dekat dengan data historis dan mencapai kinerja pengujian ulang yang lebih baik. Misalnya: Kami menggunakan strategi rata-rata pergerakan ganda dalam kontrak tulangan beton, tetapi dua rata-rata pergerakan manakah yang terbaik? Kemudian Anda dapat menggunakan fungsi penyetelan parameter di alat Inventor Quant untuk secara otomatis menemukan dua parameter rata-rata bergerak terbaik.
Seperti yang ditunjukkan pada gambar di bawah ini, dengan mengambil strategi rata-rata bergerak ganda sebagai contoh, strategi itu sendiri merupakan contoh multidimensi. Jika kita menggambar hasil uji ulang setiap parameter sebagai titik (perhatikan gambar di bawah), maka setiap parameter merupakan dimensi dari strategi ini, dan pada akhirnya semua kombinasi parameter membangun bentuk permukaan multidimensi yang kompleks ini (seperti gunung).

Gambar 5-25
Seperti yang ditunjukkan di atas, ini adalah bagan kinerja strategi dengan dua parameter. Saat parameter berubah, tingkat pengembalian akhir juga berubah secara signifikan, dan permukaannya sangat terdistorsi, membentuk "puncak" dan "palung" dengan ketinggian yang berbeda. Biasanya tempat pertama dalam hasil optimasi adalah titik tertinggi dari seluruh permukaan. Namun, dari perspektif sensitivitas parameter, objektivitas, dll., terkadang hasil ini mungkin bukan yang "optimal". Karena pasar terus berubah.
Oleh karena itu, prinsip penting dari optimasi parameter adalah memilih dataran tinggi parameter daripada pulau parameter. Yang disebut dengan parameter plateau mengacu pada keberadaan rentang parameter yang lebih luas di mana strategi dapat mencapai kinerja yang baik. Secara umum, ia membentuk distribusi normal dengan pusat dataran tinggi. Yang disebut pulau parameter berarti bahwa strategi akan berkinerja baik hanya jika nilai parameter berada dalam rentang yang sangat kecil. Jika parameter menyimpang dari nilai ini, kinerja strategi akan menurun secara signifikan.

Gambar 5-26
Dataran Tinggi Parameter
Mengambil gambar di atas sebagai contoh, distribusi parameter strategi yang baik haruslah berupa dataran tinggi parameter. Bahkan ketika pengaturan parameter menyimpang, profitabilitas strategi masih dapat dijamin. Parameter tersebut sangat stabil, yang dapat membuat strategi lebih universal ketika menghadapi berbagai kondisi pasar dalam operasi aktual di masa mendatang.

Gambar 5-27
Pulau Parameter
Mengambil gambar di atas sebagai contoh, jika kinerja backtest menunjukkan pulau parameter, ketika parameter bergeser sedikit, profitabilitas strategi akan sangat berkurang. Parameter tersebut sering kali sulit untuk mengatasi kondisi pasar yang terus berubah dalam transaksi aktual karena universalitasnya yang buruk.
Oleh karena itu, jika kinerja parameter di dekatnya jauh lebih buruk daripada kinerja parameter optimal, maka parameter optimal ini mungkin merupakan hasil dari over-fitting, yang secara matematis dapat dianggap sebagai solusi tunggal daripada solusi maksimum yang dicari. Dari sudut pandang matematika, singularitas tidak stabil. Dalam kondisi pasar yang tidak pasti di masa mendatang, begitu karakteristik pasar berubah, parameter optimal dapat menjadi parameter terburuk.
Tambahkan filter
Banyak strategi tren yang dapat memahami tren dengan baik dan memperoleh laba besar saat pasar sedang tren. Namun, dalam jangka panjang, hasil akhirnya adalah untung kecil atau rugi. Apa masalahnya?
Alasannya adalah strategi ini terus melakukan perdagangan berulang kali di pasar yang bergejolak, dan sebagian besar perdagangan yang bergejolak itu adalah kerugian atau keuntungan kecil. Pasar berada dalam pasar yang bergejolak sekitar 70% dari waktu. Kerugian kecil yang berkelanjutan dalam jangka panjang menyebabkan hilangnya semua keuntungan sebelumnya.

Gambar 5-28
Solusinya adalah menambahkan filter. Ada banyak jenis filter di pasaran, termasuk filter untung rugi, filter nilai risiko, filter pola tren, filter indikator teknis, dll. Misalnya, menambahkan filter rata-rata pergerakan periode besar dapat mengurangi jumlah transaksi di pasar yang fluktuatif dan menyaring setengah dari transaksi yang salah.
Memperlancar kurva pendanaan
Kuantifikasi mengejar metode perolehan laba yang stabil dan berkelanjutan, yang merupakan hal yang diinginkan oleh sebagian besar pedagang. Tidak seorang pun ingin memperoleh laba 50% tahun ini, rugi 30% tahun depan, dan memperoleh laba 40% tahun berikutnya. Mereka lebih suka menerima laba tahunan 20%, tetapi laba tersebut dapat bertahan lebih dari sepuluh tahun. Inilah yang dapat dilakukan oleh investasi kuantitatif. Karena investasi kuantitatif adalah model perdagangan dengan kinerja berkelanjutan.
Untuk mencapai kurva modal yang lancar, perlu dibangun portofolio investasi dengan beragam strategi, beragam variasi, beragam siklus, dan beragam parameter. Namun, semakin banyak belum tentu lebih baik. Ada efek marjinal yang semakin berkurang di sini. Semakin banyak yang Anda tambahkan ke portofolio di awal, semakin baik diversifikasinya. Namun, ketika strategi mencapai orde besaran tertentu, efek dari hasil diversifikasi yang semakin berkurang mulai terlihat. Keuntungan dari kombinasi adalah diversifikasi. Meskipun tingkat pengembalian keseluruhan bukanlah yang tertinggi, namun merupakan yang paling stabil.
Menyerahlah mencari Holy Grail
Apakah perdagangan kuantitatif dapat menemukan Cawan Suci adalah pertanyaan yang dipertimbangkan oleh banyak pedagang. Beberapa pedagang bahkan langsung memasuki pasar dengan apa yang disebut strategi sempurna setelah melakukan uji ulang sederhana. Saya berharap dapat memenangkan setiap pertempuran dan menjadi seorang kuantitatif profesional yang dapat mengatasi semua rintangan.
Namun apakah ada Holy Grail? Sebenarnya sangat sederhana, jawabannya adalah tidak. Sebenarnya, tidak sulit untuk memahaminya. Jika pasar ini benar-benar memiliki aturan, maka orang-orang dengan IQ yang lebih tinggi, pendidikan yang lebih tinggi, dan kerja keras akan dapat menemukan aturan tersebut. Apakah mereka menggunakan analisis matematika, monopoli informasi, atau metode analisis lainnya, mereka pada akhirnya akan menghasilkan sebagian besar uang di pasar. Dalam jangka panjang, orang-orang ini akan memonopoli pasar perdagangan hingga pasar tidak dapat lagi beroperasi secara normal.
Meringkaskan
Jika waktu perdagangan cukup lama, siapa pun mungkin menghadapi berbagai tren pasar selama proses perdagangan, dan tren ini tidak mungkin terulang persisnya. Sebagai pedagang kuantitatif, selain memeriksa dan mengoptimalkan strategi perdagangan Anda sendiri dengan benar, Anda juga perlu terus memantau kondisi pasar dan terus meningkatkan strategi Anda sebagai respons terhadap perubahan pasar.
Pada saat yang sama, Anda juga harus menyadari bahwa keuntungan dan kerugian berasal dari sumber yang sama. Kerugian adalah bagian dari keseluruhan strategi perdagangan. Bahkan strategi perdagangan terbaik pun dapat mengalami serangkaian kerugian. Jika terjadi kerugian dalam setiap perdagangan, aturan dan strategi perdagangan Anda tidak boleh dipertanyakan. Setidaknya jangan mengubah kerangka logika strategis Anda dengan mudah kecuali kerangka logika Anda memang salah sejak awal.
Pekerjaan rumah
- Bangun portofolio investasi berdasarkan karakteristik strategi Anda sendiri dan lakukan backtest menggunakan alat kuantitatif penemu
- Cobalah untuk mengoptimalkan strategi perdagangan kuantitatif Anda berdasarkan konten bagian ini
5.6 Membangun pemikiran probabilistik dan meningkatkan pola perdagangan Anda
ringkasan
Perdagangan adalah ilmu dan seni. Ada banyak metode dalam perdagangan, apakah itu investasi nilai, analisis teknis, titik aktif peristiwa, lindung nilai arbitrase, dan sebagainya, semuanya tampak logis secara sekilas, tetapi masuk akal secara teori. Namun pada kenyataannya, keduanya sering kali saling bertentangan. Terkadang, ketelitian sains tidak dapat menjelaskan imajinasi liar seni.
Meskipun berbagai metode perdagangan memiliki titik awal yang berbeda, semua jalan mengarah ke Roma. Keuntungan dari investasi nilai adalah bahwa margin keamanan dapat ditetapkan untuk fluktuasi harga berdasarkan nilai; keuntungan dari analisis teknis adalah bahwa tiga asumsi utama membuat transaksi menjadi ilmiah.
Akan tetapi, semuanya memiliki satu fitur umum, yaitu: mereka hanya dapat membuat prediksi kasar tentang analisis harga di masa mendatang, tetapi bukan prediksi akurat. Bahkan jika analisis fundamental digabungkan dengan analisis teknis, hal itu tidak dapat memecahkan masalah peningkatan "presisi", jadi perdagangan adalah permainan probabilitas dari awal hingga akhir.
Permainan Keberuntungan
Sesungguhnya perdagangan bukan sekadar permainan probabilitas. Dalam kehidupan seseorang, mulai dari hal-hal kecil seperti menyeberang jalan (lampunya hijau, apakah aman untuk menyeberang jalan sekarang?) dan teman seperti apa yang harus dipilih (apakah teman ini dapat diandalkan?); hingga hal-hal besar seperti karier seperti apa yang harus dijalani (apakah perdagangan profesional benar-benar karier yang bagus?) dan dengan siapa harus menikah (apakah kami akan bahagia bersama?), semuanya adalah permainan probabilitas untuk menilai risiko dan keuntungan. Karena kita tidak mempunyai kemampuan untuk meramal masa depan, setiap kali kita melakukan sesuatu, betapapun yakinnya kita, selalu ada risiko dan kita tidak dapat 100% yakin.
Alasan penting mengapa banyak orang membuat kesalahan dalam perdagangan adalah kurangnya pemikiran probabilistik dan terlalu emosional daripada rasional saat berdagang. Emosionalitas sebenarnya adalah naluri primitif kita. Di pasar, naluri primitif ini dapat merangsang banyak kelemahan manusia dan memperkuatnya secara eksponensial. Inilah sebabnya mengapa kebanyakan orang datang ke pasar dan akhirnya gagal.
Alasan kegagalan transaksi
Alasan 1: Karena sifat manusia
Sebagian besar orang mempunyai kelemahan: mereka suka mengambil keuntungan kecil dan takut menderita kerugian kecil. Begitu ada sedikit keuntungan di pasar, mereka segera mencairkannya dan keluar dari pasar dengan membawa keuntungan; begitu ada kerugian, mereka bertahan pada posisi yang merugi itu dengan harapan bisa mendapatkan kembali uang mereka secara kebetulan. Akibatnya, kerugian kecil perlahan-lahan terakumulasi menjadi kerugian besar.
Harga naik atau turun, atau tetap sama. Dalam jangka panjang, tanpa memperhitungkan biaya transaksi dan slippage, kemungkinan menghasilkan uang atau kehilangan uang adalah sekitar 50%. Oleh karena itu, metode perdagangan kebanyakan orang menjadi strategi ekspektasi negatif dengan keuntungan terbatas dan risiko tak terbatas. Pernyataan penyelesaian transaksi mereka harus seperti ini: untung kecil>>......>>untung kecil>>rugi besar.
Dalam kehidupan nyata, ini sangat mirip dengan pemikiran orang miskin dan pemikiran orang kaya. Orang miskin cenderung menghindari risiko dan takut kehilangan uang. Saya menyukai pekerjaan yang memberikan penghasilan stabil dan mencari stabilitas. Sekalipun Anda tidak sepenuhnya yakin untuk melakukan sesuatu, Anda tidak boleh melakukannya. Di permukaan, tampaknya tidak ada yang salah dengan melakukan hal ini, tetapi ada peluang dan risiko besar di baliknya.
Orang kaya lebih berani mengambil risiko, karena tahu bahwa risiko dan keuntungan selalu berbanding lurus. Hanya risiko yang melahirkan peluang. Mereka menilai risiko secara rasional dan berani bertaruh ketika risiko dapat dikendalikan.
Alasan 2: Saya suka menghasilkan uang dengan cepat
Sebuah lembaga asing pernah melakukan statistik, yang menunjukkan bahwa dalam jangka panjang, laba tahunan atas aset bersih sebagian besar industri tidak mungkin melebihi 15%. Sebaliknya, banyak investor ritel merasa malu untuk menyapa orang lain jika mereka mendapat keuntungan 15% di pasar. Orang-orang suka menghasilkan uang dengan cepat, sehingga mereka terlibat dalam perdagangan besar-besaran dan perdagangan jangka pendek.
Posisi Berat
Posisi yang berat, leverage yang tinggi, dan alokasi modal semuanya sangat menggoda, tetapi juga sangat berbahaya. Kalau Anda berhasil, Anda akan berhasil; kalau Anda gagal, Anda akan hancur. Jika Anda memiliki strategi perdagangan dengan rasio kemenangan 50%, dan Anda beroperasi dengan posisi penuh dan perdagangan margin, jika Anda beruntung, Anda mungkin menang lebih dari sepuluh kali berturut-turut, dan kekayaan Anda juga memungkinkan berubah dari perubahan kuantitatif menjadi perubahan kualitatif.
Tetapi jika Anda melakukan kesalahan sekali saja, semuanya akan kembali ke nol. Sekalipun Anda hanya bertransaksi dengan posisi yang besar tanpa alokasi modal apapun, tetap ada risiko akun Anda menjadi nol, sebab Anda tidak bisa menjamin tidak akan mengalami kerugian lebih dari belasan kali berturut-turut pada situasi pasar berikutnya. Bahkan perdagangan besar-besaran dapat mengubah strategi perdagangan yang awalnya diharapkan menjadi strategi dengan kemenangan dan kerugian yang tidak seimbang.
Jangka pendek
Satu-satunya seni bela diri di dunia yang tidak dapat dikalahkan adalah kecepatan. Dalam dunia perdagangan, perdagangan harian manual, perdagangan jangka pendek intraday, dan perdagangan frekuensi tinggi kuantitatif selalu sangat misterius. Saya tidak meragukan orang-orang yang berdagang dengan melihat stopwatch, tetapi saya mencoba membujuk Anda untuk berhenti berdagang jangka pendek dari perspektif lain.
Bilamana kita menilai apakah suatu metode layak diterapkan, kita hendaknya tidak hanya melihat mereka yang berhasil menerapkan metode tersebut, tetapi juga mereka yang gagal menerapkan metode tersebut. Dengan kata lain, Anda tidak dapat berasumsi bahwa membeli tiket lotere adalah strategi dengan ekspektasi positif hanya karena beberapa orang memenangkan jackpot.
Lebih jauh lagi, melihat peringkat produk ekuitas swasta, selama tiga tahun terakhir, berapa banyak dari 100 teratas yang terlibat dalam spekulasi sehari-hari atau perdagangan jangka pendek? Tidak diragukan lagi bahwa tingkat keberhasilan investasi jangka pendek sangat rendah. Sekalipun berhasil, metode menghasilkan uang dengan cepat ini sulit dipertahankan dalam jangka panjang. Jika Anda tidak berbakat, berhati-hatilah saat menggunakan trik semacam ini, lagipula, hanya ada satu Simmons.
Alasan 3: Bias
Jika memungkinkan, saya sarankan Anda menghabiskan 100 menit menonton film - "12 Angry Men". Sebuah film yang dibuat ulang oleh empat negara: versi Amerika pertama pada tahun 1957, versi Jepang pada tahun 1991, versi Rusia pada tahun 1997, dan versi Cina pada tahun 2014. Meskipun film ini tidak dapat mengajarkan Anda cara berdagang, film ini mengajarkan Anda cara melihat sesuatu dan belajar mengenal diri sendiri, yang mana hal ini sangatlah penting.
Karena pengalaman manusia terbatas, maka kognisi manusia pun terbatas. Setiap orang memiliki bias, pada tingkat yang lebih besar atau lebih kecil, berdasarkan pengalaman mereka sendiri. Seringkali, prasangka telah menjadi kebiasaan kebanyakan orang, dan mereka menganggap remeh untuk menilai banyak hal berdasarkan emosi mereka sendiri.
Kembali ke pasar, apakah penilaian Anda terhadap pasar didasarkan pada analisis fundamental atau analisis teknis, hal itu sebenarnya tidak penting. Jika pandangan Anda berbeda dari pandangan mayoritas di pasar, harga akan cenderung menguntungkan mayoritas pasar, dan pasar tidak akan beroperasi sesuai dengan pandangan Anda.
Oleh karena itu, dalam bertransaksi, kita harus ingat untuk "menilai, tetapi jangan mengandalkan penilaian". Pada akhirnya, penilaian harus didasarkan pada fakta dan harga. Satu-satunya kekuatan yang mendorong naik turunnya harga adalah apa yang diharapkan kebanyakan orang akan terjadi di masa mendatang. Penilaian Anda tidak memiliki bobot di pasar, jadi jangan pernah biarkan penilaian Anda membentuk bias Anda sendiri.
Alasan 4: Mengejar kesempurnaan.
Pelaku pasar meliputi para ahli dari semua lapisan masyarakat, termasuk fisika, statistik, matematika, astronomi, dll. Banyak orang mencoba menggunakan pengetahuan profesional mereka untuk menjelaskan pasar ini.
Namun, pelaku utama di pasar adalah manusia, dan manusia sendiri memiliki keterbatasan kognitif, yang berarti bahwa pasar itu sendiri salah dan tidak sempurna. Jadi bagaimana kita bisa menggunakan metode "sempurna" ini untuk menjelaskan pasar? Bukankah ini bertentangan dengan sifat pasar?
Di atas mencantumkan alasan mengapa sebagian besar orang yang datang ke pasar akhirnya gagal. Selain alasan utama yang disebutkan di atas, masih banyak faktor lain, yang tidak tercantum di sini satu per satu. Pendek kata, kecuali keyakinan Anda pada kemenangan, segala hal lainnya merupakan batu sandungan yang menghalangi Anda dari kesuksesan.
Mereka yang menghasilkan uang di pasar karena keberuntungan pada akhirnya akan mengembalikannya ke pasar seiring berjalannya waktu. Oleh karena itu, pasar berjangka merupakan permainan dengan jumlah negatif. Hanya dengan mengubah cara berpikir dan menetapkan strategi perdagangan Anda sendiri, Anda dapat memiliki kemungkinan untuk berhasil.
Apa itu pemikiran probabilistik?
Berpikir probabilistik adalah nama yang keren, sederhananya, itu adalah berpikir perjudian. Anda mendengarnya dengan benar, berdagang adalah perjudian. Ketika mendengar tentang perjudian, mungkin yang terlintas di pikiran kita adalah "seseorang yang kehilangan segalanya karena berjudi, kabur karena terlilit hutang, atau tidak punya keluarga lagi", dan sebaiknya kita menjauhinya.
Memang ada sebagian penjudi di masyarakat yang terobsesi dengan perjudian. Namun perjudian ≠ penjudi. "Perjudian" mungkin adalah salah satu kata yang paling disalahpahami. Bila strategi Anda adalah ekspektasi negatif, Anda seorang penjudi; jika strategi Anda adalah ekspektasi positif, Anda sedang berjudi.
Jika kita hilangkan makna negatif dari "perjudian" dan memahaminya sebagai suatu kegiatan yang melibatkan pengambilan risiko tertentu dengan imbalan keuntungan tertentu, maka kehidupan di mana-mana sebenarnya adalah "perjudian". Jurusan apa yang dipilih di sekolah, apakah akan membeli rumah, apakah akan memulai sebuah proyek, apakah akan bekerja atau memulai sebuah usaha, dan sebagainya.
Bahkan menaruh uang di bank adalah sebuah pertaruhan karena Anda tidak yakin apakah akan ada inflasi di masa mendatang atau apakah bank akan bangkrut (lihat krisis utang Yunani). Singkatnya, dari lahir sampai mati, setiap proses kehidupan adalah pertaruhan.
Cara menang dalam jangka panjang
Konsep perjudian perlu diselesaikan lebih lanjut: bagaimana seseorang bisa menang dalam jangka panjang? Sebelum mempelajari strategi kemenangan jangka panjang, mari kita pelajari terlebih dahulu prinsip-prinsip dari strategi kemenangan jangka panjang tersebut. Selain mesin cetak uang, apa lagi yang bisa menjamin kemenangan jangka panjang?
Itulah yang terjadi di kasino: bakarat, rolet, mesin slot, blackjack, dan lain-lain. Tidak peduli bagaimana metode permainan berubah, kasino akan menang pada akhirnya. Sebenarnya ada rahasia tersembunyi di sini yang tidak pernah diungkapkan kasino: hukum bilangan besar.
Cara Kerja Sic Bo
Tiga dadu, bertaruh pada ukuran, 4-10 kecil, 11-17 besar, jika Anda bertaruh dengan benar, Anda menang uang. Ada semacam dadu yang berputar-putar di Sic Bo, yaitu, ketika poin pada tiga dadu sama, bandar kasino akan menang. Peluang dadu yang berputar-putar muncul adalah 2,8%. Maka peluang munculnya angka besar dan angka kecil masing-masing adalah 48,6%. Kasino mengandalkan probabilitas 2,8% ini. Jika setiap penjudi bertaruh 100 yuan di setiap permainan, kasino akan menang 280 yuan setelah memainkan 100 permainan.
(0.486+0.028)100100-0.486100100=280
Namun, strategi kasino ini memiliki celah. Jika seorang pemain besar bertaruh puluhan miliar secara tiba-tiba dan menang, kasino tersebut akan bangkrut secara tiba-tiba. Oleh karena itu, kasino akan menetapkan batas taruhan, dan tidak ada taruhan lebih lanjut yang dapat ditempatkan di babak ini jika batasnya terlampaui. Dengan cara ini, meskipun penjudi cukup beruntung untuk memenangkan uang untuk sementara waktu, dalam jangka panjang, ia akan tetap kalah karena probabilitas. Dalam permainan Sic Bo yang jumlahnya tak terbatas, penjudi akan kehilangan 2,8% dari uangnya.
Hukum bilangan besar
Keuntungan pemilik kasino hanya 2% lebih besar daripada penjudi. Dalam satu kali perjudian, pemilik kasino bisa saja mengalami kerugian atau bahkan mengalami kerugian terus-menerus. Namun, pemilik kasino tidak akan takut dengan kerugian, karena ia tahu bahwa alasan mengapa ia dapat menghasilkan uang adalah karena "hukum bilangan besar" sedang bekerja. Selama orang terus berjudi, ia hanya membutuhkan sedikit keuntungan sebesar 2% untuk mempertahankan keuntungan yang stabil dalam jangka panjang.
Jadi kasino tidak takut Anda menang uang, tetapi takut Anda tidak datang. Anda bahkan pernah mendengar bank bangkrut selama bertahun-tahun, tetapi kapan Anda pernah mendengar kasino bangkrut? Dalam jangka panjang, kasino selalu menjadi pemenang. Inilah alasan mengapa perjudian akan menang dalam jangka panjang.
Contoh serupa tentang kemenangan dalam jangka panjang meliputi: berbagai lotere. Dana kumpulan hadiah lotere telah terkumpul semakin banyak sejak lotere diluncurkan, dan uang ini tentu saja berasal dari mayoritas pemain lotere. Tahukah Anda berapa peluang menang 5 juta di Double Color Ball? Jawabannya adalah satu di 17,7 juta.
Perubahan dalam probabilitas
Misalkan ada sebuah koin yang beratnya sama pada kedua sisinya, maka peluang untuk melempar kata (belakang) atau bunga (depan) adalah 50%, dan setiap lemparan koin tidak bergantung pada hasil sebelumnya. Jika Anda melempar koin 10.000 kali berturut-turut, peluang munculnya sisi kepala adalah sekitar 50%.
Tetapi jika Anda hanya melemparkannya 10 kali, kemungkinan mendapatkan hasil positif akan berubah, dan kemungkinannya mungkin tidak 50%. Oleh karena itu, dealer kasino harus memastikan bahwa strategi ekspektasi positif ini dipicu cukup sering agar strategi ekspektasi positif ini efektif. Ini juga menjadi alasan mengapa lembaga ekuitas swasta tidak dapat menghentikan strategi ketika mereka memulai strategi perdagangan kuantitatif kecuali ada kondisi khusus.
Cara menggunakan "hukum bilangan besar" untuk menciptakan strategi kemenangan jangka panjang di pasar keuangan akan menjadi konten seri kursus kami berikutnya, jadi nantikanlah!
Meringkaskan
Di atas telah kami jelaskan kepada Anda bagaimana memandang trading secara ilmiah dari aspek probabilitas, sebab-sebab kegagalan trading, mindset trading yang benar, prinsip menang jangka panjang dalam perjudian, dan lain sebagainya. Saya yakin, jika Anda belajar dengan baik, perubahan dalam cara berpikir akan menjadi perubahan dalam perilaku Anda, dan perubahan dalam perilaku akan menjadi perubahan dalam kesuksesan Anda.
Pekerjaan rumah
- Mengapa perdagangan merupakan permainan probabilitas?
- Apa alasan lain untuk kegagalan transaksi?
- 1










