Monday 7 August 2017

Mql4 codebase moving average


Pemrograman dalam Bahasa Algoritma MQL4 Saat ini, komputer pribadi menjadi sangat diperlukan untuk semua orang. Pesatnya perkembangan internet dan kinerja komputer modern membuka pemandangan baru di berbagai bidang aktivitas manusia. Pada awal sepuluh tahun yang lalu, perdagangan pasar keuangan hanya tersedia untuk bank dan untuk komunitas spesialis terbatas. Saat ini, siapapun bisa bergabung dengan dunia trader profesional dan memulai trading mandiri setiap saat. Ratusan ribu pedagang di seluruh dunia telah menilai MetaTrader 4 Client Terminal atas kelebihannya. Penggunaan bahasa pemrograman tertanamnya, MQL4, mengangkat para pedagang ke tingkat perdagangan yang baru - untuk perdagangan otomatis. Sekarang, seorang pedagang dapat menerapkan gagasannya sebagai program aplikasi - menulis indikator khusus, naskah untuk melakukan operasi tunggal, atau membuat Expert Advisor - sebuah sistem perdagangan otomatis (robot perdagangan). Expert Advisor (EA) dapat bekerja secara 247 basis tanpa adanya intervensi - melacak harga keamanan, mengirim pesan elektronik, SMS ke telepon genggam Anda, dan juga melakukan banyak hal bermanfaat lainnya. Keuntungan utama dari aplikasi ini adalah kemungkinan untuk melakukan trading sesuai dengan algoritma yang ditetapkan oleh trader. Setiap gagasan yang dapat dideskripsikan dalam bahasa algoritmik (perpotongan dua rata-rata bergerak atau pemrosesan sinyal digital, tiga layar dengan analisis fraktal Elder atau Peters, jaringan saraf atau konstruksi geometris) dapat dikodekan dalam aplikasi dan kemudian digunakan dalam perdagangan praktis. . Pengembangan aplikasi untuk Terminal Klien MetaTrader 4 membutuhkan pengetahuan MQL4. Buku teks sekarang ini akan membantu Anda membuat Expert Advisors, skrip dan indikator Anda sendiri dan menjelma di dalamnya gagasan Anda algoritma trading yang menguntungkan. Buku teks ini ditujukan untuk sejumlah besar pembaca tanpa pengalaman dalam pemrograman yang ingin belajar bagaimana mengembangkan aplikasi perdagangan otomatis untuk Terminal Klien MetaTrader 4. Buku teks dirancang sedemikian rupa sehingga membuat pembelajaran menjadi lebih mudah dan konsekuen. MetaTrader 4 - Ahli Bergerak Rata-rata - pakar MetaTrader 4 Ahli Bergerak Rata-rata untuk membentuk sinyal perdagangan menggunakan satu moving average. Pembukaan dan penutupan posisi dilakukan saat rata-rata bergerak memenuhi harga pada bar yang baru terbentuk (indeks batang sama dengan 1). Ukuran lot akan dioptimalkan sesuai dengan algoritma khusus. Penasihat ahli menganalisis persetujuan rata-rata bergerak dan grafik harga pasar. Pemeriksaan dilakukan oleh fungsi CheckForOpen (). Jika moving average memenuhi bar sedemikian rupa sehingga yang pertama lebih tinggi dari harga Open tapi lebih rendah dari harga Close, posisi BUY akan dibuka. Jika moving average memenuhi bar sedemikian rupa sehingga yang pertama lebih rendah dari harga Open tapi lebih tinggi dari harga Close, maka posisi SELL akan dibuka. Manajemen Uang yang digunakan dalam expert sangat sederhana, namun efektif: kontrol atas setiap volume posisi dilakukan tergantung hasil transaksi sebelumnya. Algoritma ini diterapkan oleh fungsi LotsOptimized (). Ukuran lot dasar dihitung berdasarkan risiko maksimum yang diijinkan: Parameter MaximumRisk menampilkan persentase risiko dasar untuk setiap transaksi. Biasanya memiliki nilai antara 0,01 (1) dan 1 (100). Misalnya, jika margin bebas (AccountFreeMargin) sama dengan 20.500 dan aturan pengelolaan modal yang diresepkan untuk menggunakan risiko 2, ukuran lot dasar akan membuat 20500 0,02 1000 0,41. Hal ini sangat penting untuk mengontrol akurasi ukuran lot dan untuk menormalkan hasilnya dengan nilai yang diijinkan. Biasanya, banyak pecahan dengan langkah 0,1 diperbolehkan. Transaksi yang memiliki volume 0,41 tidak akan dilakukan. Untuk menormalkan, fungsi NormalizeDouble () digunakan dengan akurasi hingga 1 karakter setelah titik. Hal ini menghasilkan jumlah dasar 0,4. Perhitungan lot dasar berdasarkan margin bebas memungkinkan peningkatan volume operasi tergantung pada keberhasilan perdagangan, yaitu melakukan perdagangan dengan reinvestasi. Ini adalah mekanisme dasar pengelolaan modal wajib untuk meningkatkan efisiensi perdagangan. DecreaseFactor adalah sejauh mana ukuran lot akan berkurang setelah perdagangan tidak menguntungkan. Nilai normal adalah 2,3,4,5. Jika transaksi sebelumnya tidak menguntungkan, volume selanjutnya akan turun dengan faktor DecreaseFactor untuk menunggu periode yang tidak menguntungkan. Inilah faktor utama dalam algoritma pengelolaan modal. Idenya sangat sederhana: jika trading berhasil meningkat, ahli bekerja dengan lot dasar menghasilkan keuntungan maksimal. Setelah transaksi pertama yang tidak menguntungkan, ahli akan mengurangi kecepatan sampai terjadi transaksi positif baru. Algoritma ini memungkinkan untuk menonaktifkan pengurangan kecepatan, karena melakukannya, seseorang harus menentukan DecreaseFactor 0. Jumlah transaksi terakhir yang tidak menguntungkan dihitung dalam sejarah perdagangan. Banyak dasar akan dihitung ulang berdasarkan basis ini: Dengan demikian, algoritma memungkinkan untuk secara efektif mengurangi risiko yang terjadi sebagai akibat dari serangkaian transaksi yang tidak menguntungkan. Ukuran lot wajib diperiksa untuk ukuran lot minimum yang diijinkan pada akhir fungsi karena Perhitungan yang sebelumnya dibuat bisa menghasilkan banyak 0: Pakar terutama ditujukan untuk bekerja dengan periode harian, dan dalam mode pengujian - untuk melakukan dengan harga yang mendekati. Ini akan diperdagangkan hanya pada pembukaan bar baru, oleh karena itu mode pemodelan tick setiap tidak diperlukan. Hasil pengujian ditunjukkan dalam laporan. Indikator Kustom ROC (Price Rate of Change) Telah diketahui, semua indikator memiliki relevansi aplikasi - ini digunakan untuk membantu seorang pedagang mengorientasikan pergerakan harga saat ini dan meramalkan setidaknya sampai batas tertentu masa depan. Pergerakan harga Bila pengalamannya cukup besar, seseorang dapat berdagang dengan orientasi karakter Moving Average, misalnya, cukup ikuti arahannya. Namun, Moving Average mencerminkan dinamika perubahan harga pasar hanya kuota generalquot, karena memiliki kelemahan yang sangat serius - lag. Indikator ROC yang dijelaskan di sini memiliki beberapa keunggulan dibandingkan dengan MA sederhana - memiliki lag yang lebih kecil dan lebih ilustratif. Mari kita lihat bagaimana MA dengan periode rata-rata yang berbeda mencirikan pergerakan harga. Ara. 125 menunjukkan dua garis indikator seperti: merah satu - MA dengan periode rata-rata sama dengan 21 bar dan MA biru dengan periode rata-rata 5 bar. Anda dapat dengan mudah melihat bahwa MA dengan periode rata-rata yang lebih kecil lebih dekat ke grafik dan memiliki lag yang lebih kecil. Namun, cukup sulit untuk menggunakan garis ini untuk mengkarakterisasi pasar, karena terlalu bergelombang, yaitu sangat sering berubah arah, sehingga memberi banyak sinyal palsu. MA dengan periode rata-rata yang lebih besar tidak begitu bergelombang, yaitu tidak memberikan banyak sinyal palsu, namun memiliki kelemahan lain - lag yang lebih besar. Baris ketiga hadir pada Gambar. 125 adalah garis indikator laju perubahan (oranye). Garis ini memiliki keuntungan yang nyata dibandingkan dengan MA manapun: ia memiliki kelambatan yang cukup kecil dan diperhalus dengan baik. Mari membahas garis rinciannya. Garis indikator ini dibangun atas dasar tingkat perubahan MA (21). Pada bagian A-B tingkat perubahan MA tumbuh. Ini berarti setiap titik MA pada bagian yang ditunjukkan tidak hanya lebih tinggi dari yang sebelumnya, tapi lebih tinggi dengan nilai yang lebih besar dari nilai analog untuk titik sebelumnya. Misalnya, jika pada bar dengan nilai indeks 271 MA (21) adalah 1,3274, pada bar dengan indeks 272 - 1,3280, pada bar 273 - 1,3288, nilai antara batang dengan indeks 271 dan 272 MA meningkat sebesar 6 poin, antara 272 Dan 273 - 8 poin. Jadi MA tidak hanya tumbuh, namun tingkat perubahannya juga meningkat. Pada bagian dari peningkatan tingkat perubahan (A-B) MA gua di atas dan fragmen kecil dari bagian ini dapat digambarkan sebagai bagian dari lingkaran dengan radius tertentu r1. Saat MA mendekati titik flex B, jari-jari lingkaran yang membatasi bagian terakhir tumbuh dan pada titik B sama dengan tak terhingga. Yaitu. Pada titik B MA berubah menjadi garis lurus, yang ditandai dengan laju pertumbuhan konstan, itulah sebabnya garis oranye berhenti meningkat. Pada bagian B-C MAs berkembang melambat, tapi terus berlanjut. Meskipun MA terus tumbuh dengan kecepatan positif, tingkat pertumbuhan MA menjadi lebih rendah, oleh karena itu kurva V bergerak ke bawah. Setiap fragmen kecil di bagian MA semacam ini membatasi lingkaran radius r2 di bawah MA. Pada titik C MA berhenti tumbuh, yaitu kecepatannya sama dengan nol. Dalam contoh ini untuk membangun garis oranye MA digunakan sebagai jalur pendukung. Disini pengertian untuk mendukung MA harus ditentukan. Pada konstruksi biasa dari setiap grafik di pesawat biasanya sistem koordinat Cartesian digunakan, dan sebagai garis start untuk sumbu X konstruksi digunakan. Dalam kasus kami, garis seperti itu bukan sumbu lurus yang digunakan, tapi MA dengan periode rata-rata tertentu (dalam hal ini MA (21), garis merah), disebut MA pendukung. Tingkat perubahan MA sebanding dengan perbedaan antara MA merah dan V. V. jeruk. Jika garis oranye di atas MA, kecepatan MA positif jika di bawah, negatif, pada titik silang tingkat V dan MA pertumbuhan MA sama dengan nol. Bagian C-D dapat digambarkan mirip dengan bagian A-B, namun kecepatan pertumbuhan MA adalah nilai negatif. Saat penting di sini adalah bahwa MA tumbuh selama keseluruhan interval E-C, sementara kurva V memiliki ekstrem khas dan sangat jelas pada titik K. Analisis visual pada grafik menunjukkan bahwa garis indikator ROC menggambarkan puncak dan dasar grafik daripada MA manapun. Dalam pemrograman indikator untuk menghitung tingkat perubahan MA, sebuah teknologi sederhana digunakan. Rate adalah ukuran yang memiliki nilai pembilangnya dari parameter yang berubah dan penyebutnya - periode waktu, selama parameter berubah. Dalam konteks indikator ini (lihat Gambar 126), ini adalah perbedaan antara MAc (nilai MA saat ini) dan MAp (nilai sebelumnya) pada interval sama dengan beberapa bar BarsV. Mengetahui bahwa perhitungan tingkat untuk perkembangan harga sejarah dilakukan pada satu interval yang sama (jumlah bar), penyebutnya dapat dihilangkan, yaitu seseorang dapat menilai tentang tingkat harga perubahan dengan perbedaan antara MAc dan MAp pada Bar saat ini dan sebelumnya. Indikator khusus yang dianalisis menghitung 6 garis indikator di semua. Array indikator Line0 berisi nilai MA pendukung, yang relatif sesuai dengan semua garis indikator lainnya. Berikut tiga indikator array (Line1, Line2 dan Line3) berisi nilai dari harga perubahan harga berdasarkan MA dengan periode rata-rata yang berbeda. Array indikator Line4 ditujukan untuk membangun garis rata-rata (rata-rata aritmatika Line1, Line2 dan Line3), dan Line5 - untuk membuat garis rata-rata tingkat yang sama, namun merapikannya. Saat membuat keputusan trading trader biasanya memperhitungkan karakter perkembangan harga tidak hanya pada arus, tapi juga pada jangka waktu terdekat. Untuk memahami lebih baik bagaimana ketiga indikator indikator ROC dibangun, mari perhatikan detail berikut ini. MA dengan periode rata-rata tertentu yang dibangun pada jangka waktu tertentu tercermin pada jangka waktu terdekat dengan periode rata-rata kurang dari nilainya, dengan jangka waktu lebih besar. Misalnya, jika pada bagan keamanan M30 MA dengan periode rata-rata 400 tercermin, juga akan tercermin (dengan gambar dan nilai absolut yang sama) pada grafik H1 dengan periode rata-rata 200, pada grafik H4 dengan periode 50 dan seterusnya. . Meskipun, akan ada beberapa ketidakakuratan yang terkait dengan jumlah data yang lebih besar yang diperhitungkan pada kerangka waktu yang lebih kecil. Namun, dalam kebanyakan kasus ketidaktepatan ini cukup kecil. Garis oranye yang dibangun berdasarkan indikator array Line1 mencerminkan perubahan tingkat pada jangka waktu saat ini. Garis hijau berdasarkan Line2 tercermin (dalam jangka waktu yang sama) seperti garis oranye akan tercermin dalam jangka waktu terdekat. Garis coklat tercermin dalam kerangka waktu saat ini karena warna oranye bisa tercermin pada kerangka waktu yang lebih besar berikutnya. Jadi dengan menggunakan indikator yang dijelaskan ROC tiga garis dapat tercermin pada grafik - garis yang mencerminkan tingkat harga perubahan dalam jangka waktu saat ini, yang lebih besar terdekat dan kerangka waktu yang lebih besar berikutnya. Indikator khusus roc. mq4 (Price Rate of Change) untuk jangka waktu saat ini, kerangka waktu yang lebih besar dan lebih besar terdekat. Untuk menghitung deret indikator dari tiga garis garis MA dengan periode rata-rata yang berbeda digunakan. MA periode rata-rata untuk jangka waktu saat ini diatur oleh pengguna di variabel eksternal PeriodMA1, dan periode rata-rata MA pendukung - dalam variabel eksternal PeriodMA0. Periode rata-rata MA, untuk mana tingkat dihitung, periode rata-rata untuk mendukung MA dan periode, di mana tingkat diukur, dihitung untuk kerangka waktu yang lebih tinggi di blok 6-7. Koefisien yang sesuai untuk menghitung nilai-nilai ini didefinisikan dalam blok 5-6. Misalnya, jika indikator dilekatkan pada grafik M30, koefisien K2 dan K2 akan sama dengan 2 dan 8, karena rentang waktu terdekat H1 dua kali lebih besar dari M30, rentang waktu yang lebih tinggi berikutnya adalah H4 yang delapan kali lebih besar dari M30. Perhitungan di start () sangat sederhana. Pada blok 12-13 nilai MA pendukung dihitung untuk jangka waktu saat ini (garis indikator hitam). Pada blok 13-14 nilai dari array indikator Line1 didefinisikan untuk konstruksi garis ROC pada jangka waktu saat ini (garis oranye). Tingkat di sini didefinisikan sebagai perbedaan nilai MA yang dianalisis pada bar saat ini dan di bar, indeksnya adalah oleh Sh1 lebih besar dari yang sekarang, yaitu (MAc - MAp). Nilai dari array indikator Baris1 pada bar saat ini terdiri dari nilai MA pendukung dan tingkat karakterisasi nilai (di sini K adalah koefisien skala yang ditetapkan dalam variabel eksternal): Perhitungan analog dilakukan untuk membangun garis tingkat selama dua Kerangka waktu lainnya (blok 14-16). Dukungan MA untuk array ini tidak ditunjukkan oleh indikator. Pada blok 16017 nilai dari indikator array Line4 didefinisikan untuk membangun garis rata-rata (garis biru), yang merupakan rata-rata aritmatika sederhana mereka. Pada blok 17-18 perhitungan dilakukan untuk satu garis rata-rata yang lebih rata - merapikan satu (garis merah tebal, indikator array Line5). Smoothing dilakukan dengan cara rata-rata sederhana: nilai elemen dari array indikator Line5 pada bar saat ini adalah nilai aritmatika rata-rata beberapa nilai terakhir dari indikator array Line4. Sebagai hasil dari penggunaan metode ini garis indikator menjadi kurang bergelombang, namun pada saat bersamaan memiliki beberapa lag. Jumlah bar untuk smoothing diatur dalam variabel eksternal AverBars. Mulai indikator Anda akan melihat 6 garis indikator di jendela grafik: garis hitam - MA pendukung untuk membangun garis harga pada garis waktu garis oranye saat ini - tingkat harga perubahan pada garis waktu saat ini garis hijau - tingkat harga perubahan pada yang terdekat Garis waktu yang lebih tinggi garis coklat - tingkat harga perubahan pada garis waktu garis biru yang lebih tinggi berikutnya - garis rata-rata tingkat perubahan harga garis merah - garis rata-rata merapikan tingkat perubahan harga. Ara. 127. Indikator kustom roc. mq4 memungkinkan untuk melacak pada satu grafik layar perubahan tingkat pada rentang waktu terdekat dan lebih tinggi saat ini terdekat dan rata-ratanya. Indikator roc. mq4 dapat dilampirkan ke jendela keamanan apapun dengan jangka waktu tertentu. Untuk setiap kerangka waktu, aturan yang sama berlaku: garis oranye mencerminkan tingkat pada jangka waktu saat ini, hijau - pada kerangka waktu terdekat yang lebih besar, berwarna coklat - pada rentang waktu yang lebih besar berikutnya. Anda dapat dengan mudah memeriksanya: lampirkan indikator ke jendela grafik dan lihat gambar garis dalam kerangka waktu saat ini dan jangka waktu terdekat (lihat Gambar 128 dan Gambar 129). Ara. 128. Gambar garis ke 3 (coklat) pada kerangka waktu saat ini (M15) identik dengan gambar garis 2 (hijau) pada rentang waktu yang lebih tinggi (M30, Gambar 129) dan gambar garis (oranye) pertama Pada rentang waktu yang lebih tinggi berikutnya (H1, Gambar 129). Ara. 129. Gambar garis 2 (garis hijau) pada kerangka waktu saat ini (M30) identik dengan gambar garis ke 3 (coklat) pada kerangka waktu yang lebih kecil (M15, Gambar 128) dan gambar garis (oranye) pertama Pada rentang waktu yang lebih tinggi (H1). Ada satu keganjilan pada indikator yang dianalisis roc. mq4. Setiap garis tarif tidak hanya membawa nilai tingkat perubahan harga, tapi juga bergantung pada karakter perubahan MA pendukung. Di satu sisi teknologi ini memungkinkan menampilkan garis tarif langsung pada grafik, yang sangat nyaman. Di sisi lain, jika nilai tingkat perubahan harga terlalu kecil, faktor utama dalam pembangunan garis tarif adalah nilai MA pendukung, yang tidak diinginkan, karena masing-masing MA memiliki ketertinggalan tertentu. Indikator khusus berikutnya adalah analog penuh dari indikator roc. mq4. Tapi digambar di jendela yang terpisah. Hal ini memungkinkan penghitungan nilai garis kecepatan untuk rentang waktu yang berbeda tidak bergantung pada MA pendukung, namun relatif terhadap garis nol horisontal. Dengan demikian, kode program juga sedikit berubah: tidak perlu menghitung suporter pendukung dan menggunakan koefisien skala. Indikator ubahsuaian rocseparate. mq4 ROC (Harga Tingkat Perubahan) untuk jangka waktu saat ini, kerangka waktu tertinggi terdekat dan yang lebih tinggi berikutnya. Ditampilkan di jendela terpisah. Jika kita mengamati secara penuh garis indikator yang ditarik di jendela terpisah dan di jendela grafik, kita akan melihat beberapa perbedaan yang dihasilkan dari penggunaan metode yang berbeda selama penghitungan. Untuk perhitungan garis indikator yang digambar di jendela utama yang mendukung MA digunakan, untuk garis pada jendela terpisah tidak ada MA pendukung tersebut. Ini juga alasan mengapa ada konkurensi yang ketat dari garis silang garis tingkat dan mendukung MA di roc. mq4 dan titik silang garis tingkat dengan garis nol di indikator rocseparate. mq4. Ara. 130. Indikator kustom rocseparate. mq4 memungkinkan untuk melihat di jendela terpisah bagan perubahan tingkat pada jangka waktu saat ini, kerangka waktu terdekat terdekat dan yang lebih tinggi berikutnya, serta rata-rata mereka.

No comments:

Post a Comment