2.4 Cara menulis strategi trading di platform FMZ Quant

Penulis:Kebaikan, Dibuat: 2019-06-25 12:04:22, Diperbarui: 2023-11-13 19:50:01

img

Cara menulis strategi trading di platform FMZ Quant

Ringkasan

Setelah mempelajari bagian-bagian sebelumnya, akhirnya kami siap untuk menulis strategi perdagangan kuantitatif. Ini akan menjadi langkah terpenting dalam masuk Anda ke perdagangan kuantitatif dari perdagangan manual. Sebenarnya, itu tidak begitu misterius. Menulis strategi tidak lebih dari merealisasikan ide Anda dengan kode. Bagian ini akan menerapkan strategi perdagangan kuantitatif dari awal, setelah studi, semua orang akan terbiasa dengan cara menulis strategi pada sistem FMZ Quant.

Siap.

Pertama, buka situs web resmi FMZ Quant, masuk ke akun Anda. klik pada DashboardstrategyAdd Strategy. harap dicatat bahwa sebelum mulai menulis kode, Anda perlu memilih jenis bahasa pemrograman. di bagian ini kita akan menggunakan JavaScript. pilih dari menu drop-down. selain itu, platform FMZ Quant juga Dukungan untuk Python, C ++, dan pemrograman visual.

Ide strategi

Dalam bab sebelumnya, saya memperkenalkan strategi rata-rata bergerak. yaitu: jika harga lebih tinggi dari harga rata-rata 10 hari terakhir, buka posisi panjang. jika harga lebih rendah dari harga rata-rata 10 hari terakhir, pendekkan. Namun, meskipun harga dapat langsung mencerminkan status pasar, masih akan ada banyak sinyal terobosan palsu; oleh karena itu, kita harus meningkatkan dan meningkatkan strategi ini.

Pertama, pilih rata-rata bergerak periode yang lebih besar untuk menilai arah tren. Setidaknya setengah dari sinyal terobosan palsu telah disaring. Rata-rata bergerak siklus besar lambat, tetapi akan lebih stabil. Kemudian, untuk meningkatkan tingkat keberhasilan posisi pembukaan, kita menambahkan kondisi lain. Rata-rata bergerak siklus besar ini setidaknya ke atas; akhirnya, hubungan posisi relatif antara harga, rata-rata bergerak jangka pendek dan rata-rata bergerak jangka panjang digunakan untuk membentuk strategi perdagangan yang lengkap.

img

Logika Strategi

Dengan ide-ide strategi di atas, kita bisa mencoba membangun logika strategi ini. logika di sini bukan untuk membiarkan Anda menghitung hukum gerakan langit, itu tidak begitu rumit. itu tidak lebih dari mengekspresikan ide-ide strategi sebelumnya dalam kata-kata.

  • Open long position: Jika saat ini tidak ada posisi, dan harga penutupan lebih besar dari rata-rata bergerak jangka pendek, dan harga penutupan lebih besar dari rata-rata bergerak jangka panjang, dan rata-rata bergerak jangka pendek lebih besar dari rata-rata bergerak jangka panjang, dan rata-rata bergerak jangka panjang naik.

  • Open short position: Jika saat ini tidak ada posisi, dan harga penutupan lebih rendah dari rata-rata bergerak jangka pendek, dan harga penutupan lebih rendah dari rata-rata bergerak jangka panjang, dan rata-rata bergerak jangka pendek lebih rendah dari rata-rata bergerak jangka panjang, dan rata-rata bergerak jangka panjang menurun.

  • Tutup Posisi Panjang: Jika saat ini memegang posisi panjang, dan harga penutupan lebih rendah dari rata-rata bergerak jangka panjang, atau rata-rata bergerak jangka pendek lebih rendah dari rata-rata bergerak jangka panjang, atau rata-rata bergerak jangka panjang menurun.

  • Close Short Position: Jika posisi pendek saat ini dipegang, dan harga penutupan lebih besar dari rata-rata bergerak jangka panjang, atau rata-rata bergerak jangka pendek lebih besar dari rata-rata bergerak jangka panjang, atau rata-rata bergerak jangka panjang naik.

Di atas adalah logika dari seluruh strategi, jika kita mengubah versi teks dari strategi ini ke dalam kode, itu akan mencakup: akuisisi kutipan pasar, perhitungan indikator, menempatkan pesanan untuk membuka dan menutup posisi, tiga langkah ini.

M Strategi Bahasa

Yang pertama adalah untuk mendapatkan penawaran pasar. Dalam strategi ini, kita hanya perlu mendapatkan harga penutupan. Dalam bahasa M, API untuk mendapatkan harga penutupan adalah: CLOSE, yang berarti Anda hanya perlu menulis CLOSE di area pengkodean untuk mendapatkan harga penutupan garis K terbaru.

Hal berikutnya adalah menghitung indikator. Dalam strategi ini, kita akan menggunakan dua indikator, yaitu: rata-rata bergerak jangka pendek dan rata-rata bergerak jangka panjang. Kita berasumsi bahwa rata-rata bergerak jangka pendek adalah rata-rata bergerak 10 periode dan rata-rata bergerak jangka panjang adalah rata-rata bergerak 50 periode. Bagaimana menggunakan kode untuk mewakili keduanya? Silakan lihat di bawah:

MA10:=MA(CLOSE,10); // Get the 10-cycle moving average of the latest K-line and save the result in variable MA10
MA50:=MA(CLOSE,50); // Get the 50-cycle moving average of the latest K-line and save the result in variable MA50

Dalam perdagangan manual, kita dapat melihat sekilas apakah rata-rata bergerak 50 periode naik atau turun, tetapi bagaimana kita mengekspresikannya dalam kode? Pikirkan dengan hati-hati, menilai apakah rata-rata bergerak naik atau tidak, apakah rata-rata bergerak saat ini dari garis K lebih besar dari rata-rata bergerak dari garis K sebelumnya? atau apakah lebih tinggi dari dua garis K sebelumnya? Jika jawabannya ya, maka kita dapat mengatakan bahwa rata-rata bergerak sedang melonjak. Kita juga dapat menilai penurunan dengan metode yang sama.

MA10:=MA(CLOSE,10); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10
MA50:=MA(CLOSE,50); //Get the 50-cycle moving average of the latest K line and save the result to variable MA10

MA10_1:=REF(MA10,1); //Get the 10-cycle moving average of the pervious K line and save the result to variable MA10_1
MA50_1:=REF(MA50,1); //Get the 50-cycle moving average of the pervious K line and save the result to variable MA50_1
MA10_2:=REF(MA10,2); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10_2
MA50_2:=REF(MA50,2); //Get the 50-cycle moving average of the latest K line and save the result to variable MA50_2
MA50_ISUP:=MA50>MA50_1 AND MA50_1>MA50_2; //Determine whether the current 50-line moving average of the K line is rising
MA50_ISDOWN:=MA50<MA50_1 AND MA50_1<MA50_2; //Determine whether the current 50-line moving average of the K line is falling

Perhatikan bahwa pada baris 8 dan 9 kode di atas, kata AND, adalah Operator Logis. yang berarti ketika kedua sisi kondisi and benar, seluruh kalimat adalah benar, jika tidak, itu adalah salah. Jika hanya satu sisi kondisi benar, secara keseluruhan, itu masih salah. Terjemahkan ke dalam bahasa Inggris: Jika rata-rata bergerak 50-periode dari garis K saat ini lebih besar dari rata-rata bergerak 50-periode dari garis K sebelumnya, dan rata-rata bergerak 50-periode dari garis K sebelumnya lebih besar dari garis K sebelum garis K 50-periode, maka hitung nilai sebagai yes; jika tidak, hitung nilai sebagai no dan berikan hasilnya menjadi MA50_ISUP.

Langkah terakhir adalah menempatkan pesanan, Anda hanya perlu memanggil FMZ Quants order API untuk mengeksekusi operasi beli dan jual setelah kode logika.

MA10:=MA(CLOSE,10); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10
MA50:=MA(CLOSE,50); //Get the 50-cycle moving average of the latest K line and save the result to variable MA10

MA10_1:=REF(MA10,1); //Get the 10-cycle moving average of the pervious K line and save the result to variable MA10_1
MA50_1:=REF(MA50,1); //Get the 50-cycle moving average of the pervious K line and save the result to variable MA50_1
MA10_2:=REF(MA10,2); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10_2
MA50_2:=REF(MA50,2); //Get the 50-cycle moving average of the latest K line and save the result to variable MA50_2
MA50_ISUP:=MA50>MA50_1 AND MA50_1>MA50_2; //Determine whether the current 50-line moving average of the K line is rising
MA50_ISDOWN:=MA50<MA50_1 AND MA50_1<MA50_2; //Determine whether the current 50-line moving average of the K line is falling

CLOSE>MA10 AND CLOSE>MA50 AND MA10>MA50 AND MA50_ISUP,BK; //open long position
CLOSE<MA10 AND CLOSE<MA50 AND MA10<MA50 AND MA50_ISUP,SK; //open short position
CLOSE<MA50 OR MA10<MA50,SP;//close long position
CLOSE>MA50 OR MA10>MA50,BP;//close short position

Perhatikan bahwa baris 13 dan 14 di atas, kata OR, yang merupakan operator logis lainnya, dalam bahasa M berarti or, menerjemahkannya ke dalam bahasa Inggris : jika harga penutupan garis K saat ini lebih rendah dari rata-rata bergerak 50 periode garis K saat ini, atau rata-rata bergerak 10 periode garis K saat ini lebih rendah dari rata-rata bergerak 50 periode garis K saat ini, nilainya dihitung sebagai Ya. Dan tempatkan pesanan segera; jika tidak perhitungan adalah tidak dan tidak melakukan apa-apa.

Harap dicatat bahwa AND dan OR adalah semua operator logis dalam bahasa M:

  • AND adalah ketika semua kondisi adalah ya, dan kondisi akhir adalah ya;

  • OR adalah ketika selama salah satu kondisi adalah ya, kondisi akhir adalah ya.

Untuk meringkas

Di atas adalah seluruh proses menulis strategi trading di platform FMZ Quant dengan menggunakan bahasa pemrograman M. Ada tiga langkah secara total: dari memiliki ide strategi, pemikiran strategi dan menggunakan teks untuk menggambarkan logika, dan akhirnya menerapkan strategi trading lengkap dengan kode. Meskipun ini adalah strategi sederhana, proses implementasi spesifik mirip dengan strategi yang kompleks, kecuali bahwa strategi dan struktur data dari strategi berbeda. Oleh karena itu, selama Anda memahami proses strategi kuantitatif di bagian ini, Anda dapat melakukan penelitian dan praktik strategi kuantitatif di platform FMZ Quant.

Latihan setelah sekolah

  1. Cobalah untuk menerapkan strategi di bagian ini sendiri.

  2. Berdasarkan strategi dari bagian ini, tambahkan fungsi stop loss dan take profit.

Pemberitahuan bagian berikutnya

Dalam pengembangan strategi perdagangan kuantitatif, bahasa pemrograman seperti senjata, bahasa pemrograman yang baik dapat membantu Anda mendapatkan hasil dua kali lipat dengan setengah usaha. Misalnya, ada lebih dari selusin bahasa Python, C ++, Java, C #, EasyLanguage, dan M yang paling umum digunakan di dunia perdagangan kuantitatif. Senjata apa yang harus Anda pilih untuk bertarung di medan perang?


Berkaitan

Lebih banyak