2.4 Cara menulis strategi dagangan di platform FMZ Quant

Penulis:Kebaikan, Dicipta: 2019-06-25 12:04:22, Dikemas kini: 2023-11-13 19:50:01

img

Cara menulis strategi dagangan di platform FMZ Quant

Ringkasan

Setelah mempelajari bahagian-bahagian sebelumnya, kita akhirnya bersedia untuk menulis strategi perdagangan kuantitatif. Ini akan menjadi langkah yang paling penting dalam kemasukan anda ke dalam perdagangan kuantitatif dari perdagangan manual. Sebenarnya, ia tidak begitu misterius. Menulis strategi tidak lebih daripada merealisasikan idea anda dengan kod. Bahagian ini akan melaksanakan strategi perdagangan kuantitatif dari awal, selepas kajian, semua orang akan biasa dengan cara menulis strategi pada sistem FMZ Quant.

Bersedia.

Pertama, buka laman web rasmi FMZ Quant, log masuk ke akaun anda. klik pada DashboardstrategyAdd Strategy. sila ambil perhatian bahawa sebelum mula menulis kod, anda perlu memilih jenis bahasa pengaturcaraan. dalam bahagian ini kita akan menggunakan JavaScript. pilih dari menu drop-down. selain itu, platform FMZ Quant juga Sokongan untuk Python, C ++, dan pengaturcaraan visual.

Idea strategi

Dalam bab sebelumnya, saya memperkenalkan strategi purata bergerak. iaitu: jika harga lebih tinggi daripada harga purata 10 hari yang lalu, buka kedudukan panjang. jika harga lebih rendah daripada harga purata 10 hari yang lalu, pendekkan. Walau bagaimanapun, walaupun harga boleh mencerminkan secara langsung keadaan pasaran, masih akan ada banyak isyarat terobosan palsu; oleh itu, kita mesti menaik taraf dan memperbaiki strategi ini.

Pertama, pilih purata bergerak tempoh yang lebih besar untuk menilai arah trend. Sekurang-kurangnya separuh daripada isyarat terobosan palsu telah disaring. Purata bergerak kitaran besar adalah perlahan, tetapi ia akan lebih stabil. Kemudian, untuk meningkatkan kadar kejayaan kedudukan pembukaan, kita menambah satu lagi syarat. Purata bergerak kitaran besar ini sekurang-kurangnya ke atas; akhirnya, hubungan kedudukan relatif antara harga, purata bergerak jangka pendek dan purata bergerak jangka panjang digunakan untuk membentuk strategi perdagangan yang lengkap.

img

Logika Strategi

Dengan idea strategi di atas, kita boleh cuba membina logika strategi ini. logik di sini bukan untuk membiarkan anda mengira undang-undang pergerakan langit, ia tidak begitu rumit. ia tidak lebih daripada menyatakan idea strategi sebelumnya dalam perkataan.

  • Posisi panjang terbuka: Jika pada masa ini tidak ada kedudukan, dan harga penutupan lebih besar daripada purata bergerak jangka pendek, dan harga penutupan lebih besar daripada purata bergerak jangka panjang, dan purata bergerak jangka pendek lebih besar daripada purata bergerak jangka panjang, dan purata bergerak jangka panjang meningkat.

  • Posisi pendek terbuka: Jika pada masa ini tidak ada kedudukan, dan harga penutupan lebih rendah daripada purata bergerak jangka pendek, dan harga penutupan lebih rendah daripada purata bergerak jangka panjang, dan purata bergerak jangka pendek lebih rendah daripada purata bergerak jangka panjang, dan purata bergerak jangka panjang menurun.

  • Penutupan Posisi Panjang: Jika kini memegang kedudukan panjang, dan harga penutupan adalah lebih rendah daripada purata bergerak jangka panjang, atau purata bergerak jangka pendek adalah lebih rendah daripada purata bergerak jangka panjang, atau purata bergerak jangka panjang menurun.

  • Posisi Pendek Tutup: Jika kedudukan pendek semasa dipegang, dan harga penutupan lebih besar daripada purata bergerak jangka panjang, atau purata bergerak jangka pendek lebih besar daripada purata bergerak jangka panjang, atau purata bergerak jangka panjang meningkat.

Di atas adalah logik keseluruhan strategi, jika kita menukar versi teks strategi ini ke dalam kod, ia akan termasuk: pemerolehan sebut harga pasaran, pengiraan penunjuk, meletakkan pesanan untuk membuka dan menutup kedudukan, ketiga-tiga langkah ini.

M Strategi Bahasa

Dalam strategi ini, kita hanya perlu mendapatkan harga penutupan. Dalam bahasa M, API untuk mendapatkan harga penutupan adalah: CLOSE, yang bermaksud anda hanya perlu menulis CLOSE di kawasan pengekodan untuk mendapatkan harga penutupan baris K terkini.

Dalam strategi ini, kita akan menggunakan dua indikator, iaitu: purata bergerak jangka pendek dan purata bergerak jangka panjang. Kita menganggap bahawa purata bergerak jangka pendek adalah purata bergerak 10 tempoh dan purata bergerak jangka panjang adalah purata bergerak 50 tempoh. Bagaimana untuk menggunakan kod untuk mewakili kedua-dua ini? Sila 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 sama ada purata bergerak 50 tempoh naik atau turun, tetapi bagaimana kita mengekspresikannya dalam kod? Fikirkan dengan teliti, menilai sama ada purata bergerak naik atau tidak, adakah purata bergerak semasa garis K lebih besar daripada purata bergerak garis K sebelumnya? atau adakah ia lebih tinggi daripada dua garis K sebelumnya? Jika jawapannya ya, maka kita boleh mengatakan bahawa purata bergerak melanda. Kita juga boleh menilai jatuh dengan kaedah 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 bahawa pada baris 8 dan 9 kod di atas, perkataan AND, adalah Operator Logikal. yang bermaksud apabila kedua-dua belah pihak syarat and benar, keseluruhan ayat adalah benar, jika tidak, ia adalah salah.

Langkah terakhir adalah untuk meletakkan pesanan, anda hanya perlu memanggil API pesanan FMZ Quants untuk melaksanakan operasi beli dan jual selepas kod logik. Sila lihat di bawah:

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 bahawa baris 13 dan 14 di atas, perkataan OR, yang merupakan pengendali logik lain, dalam bahasa M bermaksud or, terjemahkannya ke dalam bahasa Inggeris : jika harga penutupan garis K semasa kurang daripada purata bergerak 50-periode K semasa, atau purata bergerak 10-periode K semasa kurang daripada purata bergerak 50-periode K semasa, nilainya dikira sebagai Ya. Dan letakkan pesanan dengan segera; jika tidak, pengiraan adalah tidak dan tidak melakukan apa-apa.

Sila ambil perhatian bahawa AND dan OR adalah semua pengendali logik dalam bahasa M:

  • AND ialah apabila semua syarat adalah ya, dan syarat akhir adalah ya;

  • OR adalah apabila selagi mana-mana syarat adalah ya, syarat akhir adalah ya.

Ringkasnya

Di atas adalah keseluruhan proses menulis strategi dagangan di platform FMZ Quant dengan menggunakan bahasa pengaturcaraan M. Terdapat tiga langkah secara keseluruhan: dari mempunyai idea strategi, untuk pemikiran strategi dan menggunakan teks untuk menerangkan logik, dan akhirnya melaksanakan strategi dagangan lengkap dengan kod. Walaupun ini adalah strategi yang mudah, proses pelaksanaan khusus adalah sama dengan strategi yang kompleks, kecuali bahawa strategi dan struktur data strategi adalah berbeza. Oleh itu, selagi anda memahami proses strategi kuantitatif dalam bahagian ini, anda boleh menjalankan penyelidikan dan amalan strategi kuantitatif di platform FMZ Quant.

Latihan selepas sekolah

  1. Cuba melaksanakan strategi dalam bahagian ini sendiri.

  2. Berdasarkan strategi dalam seksyen ini, tambahkan fungsi stop-loss dan mengambil keuntungan.

Pengumuman Bahagian Seterusnya

Dalam membangunkan strategi perdagangan kuantitatif, bahasa pengaturcaraan seperti senjata, bahasa pengaturcaraan yang baik dapat membantu anda mendapatkan hasil dua kali ganda dengan separuh usaha. Sebagai contoh, terdapat lebih daripada selusin bahasa Python, C ++, Java, C #, EasyLanguage, dan M yang paling biasa digunakan dalam dunia perdagangan kuantitatif. Senjata mana yang harus anda pilih untuk berperang di medan perang? Di bahagian seterusnya kita akan memperkenalkan bahasa pengaturcaraan yang biasa ini, serta ciri-ciri setiap bahasa pengaturcaraan itu sendiri.


Berkaitan

Lebih lanjut