Condition Scanner (CS)
Ide di balik potongan kode yang terlampir adalah sebagai berikut:
Kamu membayangkan satu set kondisi. Kamu menulis kode untuk menguji kondisi tersebut. Kemudian, kamu menyematkan kode tersebut ke dalam potongan kode ini. Hanya perlu melakukan beberapa modifikasi sederhana.
Hasilnya adalah beberapa indikator. Satu indikator akan menunjukkan secara historis di grafik saat kondisi tersebut muncul. Indikator lainnya akan menampilkan di panel apakah, untuk semua instrumen dan kerangka waktu yang kamu minati, kondisi tersebut telah muncul saat ini. Ini menghemat waktu kamu dari harus memindai pasangan dan kerangka waktu secara manual untuk mencari kondisi yang kamu inginkan.
Cara Instalasi:
Salin konten dari empat folder (Indikator, Include, Templates, Profiles) ke dalam folder yang setara di instalasi kamu. Tidak ada yang berbahaya di dalamnya - hanya indikator dan sebagainya.
Keluarlah dan masuk kembali ke program MetaQuotes.
Contoh Fungsi Scanner:
Contoh ini berdasarkan Power Pro (pengidentifikasi setup = "PP") yang sebelumnya dibahas oleh Russ Horn. Ini adalah strategi breakout band di mana batas atas adalah EMA dari high dan batas bawah adalah EMA dari low. Saya tidak memberikan dukungan terhadap strategi ini - ini hanya sebagai contoh dari apa yang bisa kamu kembangkan.
Di sistem kamu, ganti ke profil cspp. Mungkin membutuhkan beberapa detik untuk tampilan pertama kali, tetapi setelah itu tidak akan membebani sumber daya komputer.
Kamu seharusnya melihat layar yang mirip dengan ini:

Contoh di atas terdiri dari:
- indikator di grafik dengan 4 plot,
- indikator di jendela terpisah yang menunjukkan EMA dari RSI,
- indikator di jendela terpisah yang menunjukkan di mana kondisi yang menyarankan perdagangan long atau short terjadi secara historis,
- dan indikator panel yang menunjukkan di mana kondisi yang sama baru saja terjadi atau sedang terjadi di berbagai pasangan dan kerangka waktu.
Kode Umum untuk Semua Scan:
Utils.mqh berisi beberapa fungsi utilitas yang dapat digunakan di indikator, EA, dll.
cs_Chart.mqh berisi hampir semua kode yang masuk ke dalam indikator grafik saat ini.
cs_Panel.mqh berisi hampir semua kode yang masuk ke dalam indikator tampilan panel.
Kode Khusus untuk Strategi PP (Power Pro):
csPP_0.mq4 menampilkan indikator "chart-window" yang relevan.
csPP_1.mq4 menampilkan indikator "separate-window" yang relevan.
csPP_Chart.mq4 adalah indikator yang menunjukkan apa yang terjadi secara historis di grafik saat ini.
csPP_Panel.mq4 adalah indikator yang menunjukkan situasi saat ini di semua pasangan dan kerangka waktu yang kamu minati.
csPP_GetBarFlag.mqh adalah kode yang "disertakan" dalam indikator Chart dan Panel. Ini adalah bagian yang menentukan apakah ada kondisi yang menarik di bar tertentu.
Kode Khusus untuk Strategi MAX (Moving Average Crossover):
csMAX_0.mq4 adalah indikator kustom yang menampilkan dua moving averages. Ini sepenuhnya mandiri.
Tidak ada csMAX_1 yang setara karena, tidak seperti PP, tidak ada kebutuhan untuk tampilan jendela terpisah.
csMAX_Chart.mq4, csMAX_Panel.mq4, dan csMAX_GetBarFlag.mqh melakukan hal yang setara seperti untuk strategi PP di atas.
Kode dengan ID yang Dimulai dengan csXXXX:
Ini adalah template yang dapat digunakan saat mengembangkan scan tambahan.
Cara Saya Dalam Mengkode untuk Kondisi Baru:
Saya memutuskan pengidentifikasi strategi (misalnya PB untuk pinbars).
Saya mengatur jendela saya seperti di atas di bagian "Contoh Fungsi Scanner", menghapus indikator yang ada.
Jika scan baru saya bergantung pada indikator di grafik, saya membangunnya menggunakan csXXXX_0.mq4 sebagai pola. Saya ingat untuk 'save as...' csPB_0.mq4. Saya menerapkan indikator kustom saya ke grafik di sebelah kiri.
Jika saya memerlukan indikator jendela terpisah, saya juga membangunnya. Saya ingat untuk 'save as...' csPB_1.mq4. Saya menerapkannya ke grafik di sebelah kiri.
Saya membangun indikator kustom daripada menggunakan indikator standar sehingga saya dapat merujuknya di tempat lain menggunakan fungsi iCustom. Dengan cara ini, jika saya berubah pikiran tentang parameter dasar strategi saya (misalnya metode moving average), saya hanya perlu mengubah indikator kustom saya. Jika saya menggunakan indikator standar, saya harus mengubahnya dan kemudian mencari di dalam kode saya untuk menyesuaikan perubahan pikiran saya.
Saya mengambil csXXXX_Chart.mq4, mengganti semua instance 'XXXX' dengan pengidentifikasi strategi saya 'PB', dan menyimpan kode sebagai csPB_Chart.mq4. Ini belum bisa dikompilasi karena ada beberapa kode "include" yang masih harus ditulis.
Sekarang untuk menyediakan kode "include".
Jika kondisi yang ingin saya uji sangat mudah, saya cukup menggunakan file "include" csXXXX_GetBarFlag.mqh, mengkode apa yang saya inginkan, dan 'save as...' csPB_GetBarFlag.mqh. Namun, jika pengkodeannya rumit, saya kembali ke csPB_Chart.mq4 yang telah saya buat sebelumnya, saya mengomentari baris kode yang sekarang berbunyi "#include
Sekarang file 'csPB_Chart.mq4' dapat dikompilasi dan diterapkan ke grafik di sebelah kiri.
Pada titik ini, saya menyimpan template untuk grafik di sebelah kiri sebagai csPB-CHART.tpl. Ini mencakup semua indikator kustom di grafik, indikator kustom di jendela terpisah, dan plot hasil yang berlaku untuk grafik saat ini.
Saya memuat file 'csXXXX_Panel.mq4', mengganti semua instance "XXXX" dengan "PB", lalu 'save as...' "csPB_Panel.mq4". File terakhir ini dikompilasi dan diterapkan ke grafik di sebelah kanan. Ini mungkin sedikit lambat saat pertama kali diterapkan tetapi tidak menggunakan banyak sumber daya saat berjalan.
Saya menyimpan csPB_panel.tpl sebagai template untuk grafik di sebelah kanan.
Saya biasanya menyimpan csPB sebagai profil.
Beberapa Aspek dari Perangkat Lunak:
Kode ditulis sebagai indikator sehingga, ketika panel ditampilkan dan kamu ingin melihat pasangan dan kerangka waktu tertentu, kamu cukup memilih pasangan dari jendela Market Watch, seret dan jatuhkan ke ruang grafik saat ini dan ubah kerangka waktu sesuai. Template akan mengurus sisanya.
Dalam upaya mengurangi beban komputer, saya melakukan dua hal.
Pertama, saat berurusan dengan array time-series, saya biasanya hanya melihat kembali 200 bar.
Kedua, perangkat lunak tampilan panel tidak menguji kondisi pengguna di setiap tick. Ini menggunakan mekanisme timer sehingga pengujian diterapkan hanya pada bar[0] jika bar[0] telah terbentuk 90%, jika tidak, pengujian diterapkan pada bar[1]. Jika bar[1] memiliki fokus (yaitu, bar[0] kurang dari 90% terbentuk), ia diuji sekali dan waktu perubahan ke bar[0] dihitung. Untuk setiap tick selanjutnya yang datang sampai waktu perubahan tercapai, tidak ada yang terjadi. Saya tidak 100% yakin bahwa saya telah mengkode ini dengan benar, tetapi sepertinya berfungsi dengan baik.
Selanjutnya, garis atas panel menunjukkan tanggal dan waktu terakhir kali pengujian kondisi terjadi. Juga, dalam contoh yang diberikan di sini, simbol netral akan menunjukkan nol jika bar[0] dalam fokus dan '1' jika bar[1] dalam fokus.
Postingan terkait
- Panduan Lengkap MetaCOT 2 CFTC ToolBox untuk Analisis COT di MT4
- Master Tools: Alat Indikator untuk MetaTrader 4 yang Harus Dimiliki
- Indikator Open Range Breakout untuk MetaTrader 5: Strategi Trading yang Efektif
- Memprediksi Harga Selanjutnya dengan Jaringan Saraf: Panduan Lengkap untuk Trader
- Indikator Alerts pada New Bar untuk MetaTrader 4: Panduan Lengkap