Friday 14 July 2017

Pindah Rata Ahli Penasihat Kode


Biasanya, dua moving averages dapat digunakan untuk membuat strategi forex (EA untuk MT4) dengan aturan berikut: Buy bila moving average bergerak rata-rata berada di atas moving average moving average Sell bila moving average jangka panjang berada di atas moving average moving average. Pada grafik berikut dari Terminal MetaTrader, garis kuning adalah moving average (periode9) jangka pendek dan garis merah adalah moving average jangka panjang (Periode 18). Menyadari grafik, kita bisa menulis ulang aturan trading atau sinyal forex seperti: Beli bila garis kuning berada di atas garis merah Jual bila garis kuning berada di bawah garis merah Alih-alih menghabiskan waktu lama mengkodekan strategi forex ini, dengan Molanis Strategy Builder Anda dapat membuat diagram perdagangan yang mewakili strategi rata-rata bergerak dalam beberapa menit. Cukup seret dan lepaskan dua blok Analisis Teknis, satu blok Beli dan satu blok Jual. Hubungkan mereka dan atur parameter blok untuk mendapatkan diagram seperti berikut ini: Diagram perdagangan ini memiliki dua jalur perdagangan. Yang kiri disorot. Ini berjalan dari blok START ke blok END. Seseorang bisa membacanya seperti: Beli 1 lot EURCAD (dengan 100 pip Take Profit dan 50 pip Stop Loss) bila moving average bergerak pendek (9) berada di atas moving average moving average (18). Ingatlah untuk membaca diagram perdagangan dalam arah yang berlawanan dengan arus perdagangan. Jalur perdagangan yang benar bisa dibaca sebagai: Jual 1 lot EURCAD (dengan 100 pip Take Profit dan 50 pip Stop Loss) bila moving average jangka panjang (18) berada di atas moving average moving average (9). Membangkitkan kode MQL untuk MetaTrader hanya dengan satu klik Pada Diagram Diagram Trading, klik Menghasilkan Kode MQL4 untuk mendapatkan jendela Kode MQL4. Molanis Strategy Builder memungkinkan Anda untuk membuka expert advisor Anda secara langsung dengan MetaTrader atau menyimpannya sebagai file MQ4. Jangan lewatkan tutorial video kami onSimple Expert Advisor Soal 29. Buatlah Expert Expert Advisor. Argumen Awal Sebelum memulai program Expert Advisor, perlu mendefinisikan prinsip umum program masa depan. Tidak ada aturan pembuatan peraturan yang ketat. Namun, begitu membuat program, programmer biasanya terus memperbaikinya. Untuk dapat dengan mudah memahami program di masa depan, harus dibuat sesuai dengan skema yang dipikirkan dengan baik dan mudah dimengerti (sangat penting jika sebuah program akan diperbaiki lebih lanjut oleh programmer lain). Program yang paling mudah adalah program yang terdiri dari blok fungsional, yang masing-masing bertanggung jawab atas perhitungannya. Untuk membuat sebuah algoritma dari Expert Advisor trading, mari kita analisa apa yang harus dilakukan sebuah program operasi. Salah satu data terpenting dalam pembentukan order perdagangan adalah informasi tentang pesanan yang sudah ada di terminal klien. Beberapa strategi perdagangan hanya memungkinkan satu tatanan searah. Umumnya, jika strategi trading memungkinkan, beberapa pesanan bisa dibuka di terminal pada saat bersamaan, meski jumlahnya cukup terbatas. Bila menggunakan strategi apapun, keputusan perdagangan harus dilakukan dengan mempertimbangkan situasi saat ini. Sebelum keputusan perdagangan dibuat dalam sebuah program, perlu diketahui perintah perdagangan apa yang telah dibuka atau ditempatkan. Pertama-tama sebuah program harus berisi blok perintah akuntansi yang merupakan salah satu yang pertama dijalankan. Selama keputusan eksekusi eksekusi EA harus dilakukan, pelaksanaannya mengarah pada pelaksanaan operasi perdagangan. Bagian kode yang bertanggung jawab atas pembentukan order perdagangan lebih baik ditulis di blok terpisah. Expert Advisor dapat membentuk permintaan perdagangan untuk membuka pesanan baru yang menunggu keputusan atau pasar, menutup atau memodifikasi pesanan yang ada atau tidak melakukan tindakan sama sekali. EA juga harus menghitung harga pesanan tergantung keinginan pengguna. Keputusan perdagangan harus dibuat dalam sebuah program berdasarkan kriteria perdagangan. Keberhasilan keseluruhan program tergantung pada kebenaran kriteria perdagangan yang terdeteksi dalam program ini. Ketika menghitung kriteria perdagangan, sebuah program dapat (dan harus) memperhitungkan semua informasi yang berguna. Misalnya, Expert Advisor dapat menganalisa kombinasi nilai indikator teknis, waktu siaran berita penting, waktu sekarang, nilai dari beberapa tingkat harga, dll. Untuk kenyamanan, bagian program yang bertanggung jawab atas perhitungan kriteria trading harus ditulis secara terpisah. blok. Penasihat Expert trading tentu harus mengandung blok pengolahan kesalahan. Menganalisis kesalahan yang mungkin terjadi dalam pelaksanaan operasi perdagangan memungkinkan, di satu sisi, untuk mengulangi permintaan perdagangan dan, di sisi lain, memberi tahu pengguna tentang kemungkinan situasi konflik. Struktur Penasihat Ahli Sederhana Berikut adalah skema struktural dari Expert Advisor sederhana yang dibangun berdasarkan beberapa blok fungsional, di setiap blok bagian terpisah dari perhitungan. Pada tahap pengembangan EA berikut belum ada kode program. Pada saat yang sama, algoritma sebuah program hampir banyak terbentuk. Bagaimana EA yang dibangun di atas dasar skema yang ditawarkan akan beroperasi dapat dengan mudah dipahami hanya dengan melihat skema dan mengarahkan pada nama blok dan susunan relasi (kontrol lewat) di antara keduanya. Setelah program mulai kontrol dilewatkan ke blok pengolahan awal. Di blok ini beberapa parameter umum dapat dianalisis. Misalnya, jika tidak ada cukup bar di jendela (bar yang diperlukan untuk menghitung parameter indikator teknis), EA tidak akan dapat beroperasi secara memadai. Dalam kasus seperti itu, seorang EA harus menghentikan operasinya sebelum menginformasikan pengguna tentang hal itu dan melaporkan tentang alasan penghentian. Jika tidak ada kontraindikasi karakter umum, kontrol dilewatkan ke blok akuntansi pesanan. Di blok perintah akuntansi jumlah dan kualitas pesanan yang ada di terminal klien untuk keamanan (ke jendela yang dilipat EA) terdeteksi. Dalam hal ini perintah blok sekuritas lainnya harus dieliminasi. Jika strategi trading yang terprogram hanya membutuhkan pesanan pasar saja (dan tidak menggunakan perintah tertunda), fakta adanya pending order harus terdeteksi. Jika sebuah strategi mengakui hanya satu order pasar dan sebenarnya ada beberapa perintah, fakta ini juga harus diketahui. Tugas dari blok akuntansi pesanan (dalam skema ini) adalah dalam menentukan apakah situasi perdagangan saat ini sesuai dengan yang diharapkan, yaitu di mana EA dapat beroperasi dengan memadai. Jika situasinya sesuai, kontrol harus diteruskan ke blok berikutnya untuk melanjutkan operasi EAs jika tidak, operasi EAs harus dihentikan dan fakta ini harus dilaporkan ke pengguna. Jika tidak ada perintah di terminal atau jumlah dan kualitas pesanan yang ada sesuai dengan yang diharapkan, kontrol dilewatkan ke blok kriteria penentuan kriteria. Di blok ini semua kriteria yang diperlukan untuk membuat keputusan perdagangan dihitung, yaitu kriteria untuk pembukaan, penutupan dan modifikasi pesanan. Kontrol lebih lanjut diteruskan ke blok perintah penutup. Mudah dimengerti mengapa dalam skema yang ditawarkan blok perintah penutupan dijalankan lebih awal dari pada blok perintah pembuka. Selalu lebih masuk akal untuk memproses pesanan pertama yang ada (close or modify) dan baru setelah itu untuk membuka pesanan baru. Umumnya, benar dipandu oleh keinginan untuk memiliki pesanan sesedikit mungkin. Selama eksekusi blok ini semua pesanan, dimana kriteria penutupan telah diaktifkan, harus ditutup. Setelah semua perintah yang diperlukan telah ditutup, kontrol dilewatkan ke blok perhitungan ukuran pesanan baru. Ada banyak algoritma untuk menghitung volume pesanan. Yang paling sederhana adalah menggunakan ukuran lot tetap konstan. Lebih mudah menggunakan algoritma ini dalam sebuah program untuk strategi pengujian. Metode yang lebih populer untuk menentukan ukuran pesanan adalah mengatur jumlah lot tergantung pada jumlah margin bebas, misalnya 30-40 darinya. Jika margin gratis tidak cukup, program ini menghentikan operasinya karena menginformasikan pengguna tentang alasannya. Setelah jumlah lot untuk membuka order baru didefinisikan, control dilewatkan ke order opening block. Jika salah satu kriteria yang dihitung sebelumnya menunjukkan perlunya membuka pesanan jenis tertentu, permintaan perdagangan untuk membuka pesanan terbentuk di blok ini. Ada juga analisa kesalahan dalam expert Advisor. Jika operasi perdagangan gagal, kontrol (hanya dalam kasus ini) dilewatkan ke blok pemrosesan kesalahan. Jika kesalahan yang dikembalikan oleh server atau terminal klien tidak penting, satu upaya lagi dilakukan untuk melakukan operasi perdagangan. Jika kesalahan penting dikembalikan (misalnya, akun diblokir), EA harus menghentikan operasinya. Ingat, di MQL4 tidak ada kemungkinan program menghentikan operasi EAs di jendela keamanan (berbeda dari skrip, lihat Fungsi Khusus). Apa yang bisa dilakukan dengan cara program adalah penghentian start (). Pada awal mula fungsi start () pada tick baru nilai flag-flag tertentu yang melarang perdagangan (dalam hal ini dimungkinkan sebagai hasil kesalahan kritis) dapat dianalisis dan kontrol dapat dilewatkan untuk penghentian Operasi fungsi khusus sehingga pembentukan permintaan perdagangan baru tidak diijinkan. Dalam skema yang ditawarkan, nilai bendera dianalisis dalam blok pemrosesan awal. Strategi Perdagangan Harga pasar terus bergerak. Kondisi pasar pada suatu saat tertentu dapat dicirikan dengan syarat baik sebagai tren - perubahan harga searah yang kuat (naik atau turun), atau sebagai pergerakan harga datar datar dengan deviasi lemah dari rata-rata tertentu. Karakteristik pasar ini bersyarat, karena tidak ada kriteria yang jelas, sesuai dengan tren atau datar yang bisa diidentifikasi. Misalnya, gerakan lateral panjang dengan penyimpangan kuat yang bisa dilacak baik ke flat maupun tren. Umumnya diasumsikan bahwa pasar terutama dalam keadaan pergerakan lateral dan tren biasanya berlangsung 15-20 dari waktu. Semua strategi perdagangan juga dapat dibagi menjadi dua kelompok utama. Kelompok pertama berisi strategi berorientasi datar. Gagasan utama strategi tersebut adalah bahwa setelah harga deviasi yang jelas harus kembali ke posisi sebelumnya, itulah sebabnya pesanan dibuka ke arah yang berlawanan dengan pergerakan harga terakhir. Strategi kelompok kedua adalah strategi tren, saat pesanan dibuka ke arah yang sama seperti pergerakan harga garam. Ada strategi yang lebih rumit (gabungan). Strategi tersebut memperhitungkan berbagai faktor yang menjadi ciri pasar akibatnya perdagangan bisa dilakukan baik secara flat maupun trend. Tidak sulit menerapkan trading sesuai dengan strategi ini atau strategi itu secara teknis - MQL4 berisi semua sarana yang diperlukan untuk itu. Pekerjaan utama dalam penciptaan strategi sekali sendiri terdiri dari pencarian kriteria trading. Kriteria Trading Dalam contoh ini kita akan mencoba membangun Expert Advisor, yaitu salah satu yang akan membuka perintah dalam arah pergerakan harga. Jadi, kita perlu menemukan di antara berbagai indikator teknis yang mendeteksi tren awal. Salah satu metode pencarian kriteria perdagangan yang paling sederhana adalah berdasarkan analisis kombinasi MA dengan periode rata-rata yang berbeda. Ara. 111 dan Gambar. 112 menunjukkan posisi dua MA berbeda (dengan periode rata-rata 11 dan 31) pada pangsa pasar yang berbeda. Rata-rata dengan periode rata-rata kecil (garis merah) mendekati grafik harga, berkelok-kelok dan bergerak. Moving averages dengan periode rata-rata yang lebih besar (garis biru) lebih inert, memiliki lag lebih besar dan berada jauh dari harga pasar. Mari memperhatikan tempat-tempat di mana MA dengan periode rata-rata yang berbeda melintas dan mencoba untuk memutuskan, apakah fakta penyeberangan MA dapat digunakan sebagai kriteria pembacaan. Ara. 111. Penyeberangan MA (11) dan MA (31) saat arah pergerakan harga berubah. Pada Gambar. 111 kita melihat bagian pasar dimana perintah pembukaan ke arah pergerakan harga pada persimpangan MA dibenarkan. Pada titik A garis merah menyilang yang biru dari bawah ke atas, setelah itu harga pasar terus berkembang untuk beberapa lama. Selanjutnya penyeberangan MA terbalik menunjukkan arah pergerakan harga berubah. Jika kita membuka order Buy di titik A dan menutupnya di B, kita akan mendapatkan keuntungan sebanding dengan selisih harga A dan B. Ara. 112. Penyeberangan MA (11) dan MA (31) saat arah pergerakan harga berubah. Pada saat bersamaan ada saat-saat lain di pasar saat MA melintas, namun hal ini tidak menyebabkan kenaikan harga atau penurunan yang cukup jauh (Gambar 112). Pesanan yang dibuka pada persimpangan MA pada saat seperti itu akan mengakibatkan kerugian. Jika Sell dibuka di A dan ditutup di B, trading tersebut akan membawa kerugian. Hal yang sama dapat dikatakan tentang order Buy yang dibuka di B dan ditutup pada C. Keberhasilan keseluruhan strategi yang diterapkan atas dasar persimpangan MA bergantung pada jumlah suku cadang yang dapat dicirikan sebagai tren dan flat. Di flat frequent MA crossing adalah acara reguler yang mengganggu setiap strategi trend. Banyak sinyal palsu sebagai aturan yang menyebabkan kerugian. Itulah mengapa penandatanganan MA ini dengan periode rata-rata yang berbeda - dapat digunakan untuk membangun strategi trading yang dikombinasikan dengan tanda lain yang membuktikan sebuah tren. Dalam contoh ini (untuk membangun Expert Advisor sederhana) kita harus menolak menggunakan tanda ini. Kami akan menggunakan tanda lain. Menganalisis secara visual karakter perubahan harga di pasar, kita dapat melihat bahwa kenaikan atau kenaikan harga satu arah yang panjang sering muncul sebagai akibat dari pergerakan pendek yang kuat. Dengan kata lain, jika dalam waktu singkat terjadi pergerakan yang kuat, kita dapat mengharapkan kelanjutannya dalam jangka menengah. Ara. 113 menunjukkan periode pasar ketika pergerakan yang kuat mengakibatkan kelanjutan perubahan harga ke arah yang sama. Sebagai pergerakan kuat kuota, kita bisa menggunakan perbedaan MA dengan periode rata-rata yang berbeda. Semakin kuat pergerakannya, semakin besar lag lag MA dengan periode rata-rata yang lebih besar dari MA dengan periode rata-rata yang kecil. Selain itu, pergerakan harga terputus-putus yang kuat dengan return lebih lanjut tidak menghasilkan perbedaan besar antara MA, yaitu banyak sinyal palsu tidak muncul. Misalnya, lonjakan harga sebesar 50 poin dengan return lebih lanjut (di tengah pada Gambar 113) memerlukan peningkatan perbedaan antara MA hanya sebesar 20 poin. Pada saat yang sama gerakan yang benar-benar kuat (yang biasanya tidak disertai koreksi yang cukup besar) di titik A menghasilkan selisih kenaikan hingga 25 - 30 poin. Jika order Beli dibuka saat nilai perbedaan antara MA tercapai, misalnya di A, kemungkinan besar pesanan akan menguntungkan saat harga mencapai nilai Stop order yang telah ditentukan sebelumnya. Mari kita gunakan nilai ini sebagai kriteria perdagangan di Expert Advisor kami. Jumlah Pesanan Dalam contoh ini kami menganalisis Expert Advisor yang mengakui kehadiran hanya satu pesanan pasar, pending order tidak diberikan. Pendekatan semacam itu dibenarkan tidak hanya dalam contoh tertentu, tapi bisa dijadikan dasar untuk strategi apa pun. Pending order biasanya digunakan saat pengembang memiliki kriteria yang cukup andal untuk meramalkan perubahan harga di masa depan dengan probabilitas tinggi. Jika tidak ada kriteria seperti itu, tidak perlu menggunakan pending order. Situasi ketika beberapa perintah berlawanan untuk satu keamanan terbuka juga tidak bisa dianggap masuk akal. Itu tertulis sebelumnya bahwa dari sisi ekonomis berlawanan perintah dianggap tidak masuk akal, terutama jika harga pesanan sama (lihat Menutup dan Menghapus Pesanan). Dalam kasus seperti ini, kita harus menutup satu pesanan dengan yang lain dan menunggu sebuah sinyal untuk membuka satu pesanan pasar ke arah tertentu. Hubungan Kriteria Perdagangan Dari posisi ini, menjadi jelas mengapa hubungan antara kriteria perdagangan. Ara. 114 menunjukkan tiga varian korelasi kriteria perdagangan, bila masing-masing kriteria penting (valid). Tindakan (pembukaan dan penutupan order pasar) berlangsung searah jarum jam pada gambar berikut. Ara. 114. Korelasi kriteria pembukaan dan penutup kriteria (a dan b - benar, c - salah). Varian yang paling populer dari kriteria trading yang terbentuk dengan benar adalah varian a. Setelah dibuka order pasar Buy diadakan sampai saat ketika kriteria yang membutuhkan pemicu penutupannya. Setelah itu jeda terjadi saat tidak ada perintah yang dibuka. Selanjutnya order market Sell bisa dibuka. Ketentuan untuk menutup order Sell (sesuai dengan kriteria yang terbentuk dengan benar) terjadi lebih awal, dari pada kondisi untuk membuka order Buy. Namun, order Buy bisa dibuka sekali lagi, jika kriteria trading membutuhkan ini. Namun menurut varian ini pesanan pasar tidak bisa dibuka jika ada order pasar terbuka yang berlawanan arah. Korelasi kriteria serupa ada pada varian b. Perbedaannya adalah bahwa kriteria untuk membuka order pasar sekaligus merupakan kriteria untuk menutup order yang berlawanan. Varian ini seperti varian a tidak memungkinkan beberapa perintah dibuka di terminal sekaligus pada satu keamanan. Varian kriteria korelasi salah. Menurut bukaan varian order pasar ini diperbolehkan bila perintah sebaliknya belum ditutup, yang tidak masuk akal. Ada beberapa kasus yang jarang terjadi bila varian ini dibenarkan sebagian. Membuka tatanan berlawanan terkadang dapat diterima untuk mengkompensasi kerugian yang terjadi pada koreksi kecil setelah pergerakan harga yang kuat. Dalam kasus seperti itu, urutan yang berlawanan dapat dibuka dengan nilai yang sama atau lebih kecil dari yang sudah ada dan kemudian ditutup saat koreksi selesai. Taktik semacam itu memungkinkan untuk tidak mengganggu perintah quotmainquot yang dibuka dalam arah tren. Secara umum beberapa perintah satu arah juga dimungkinkan. Hal ini dapat dibenarkan ketika pesanan yang dibuka sebelumnya dilindungi oleh perintah Stop dan kriteria yang menunjukkan perkembangan harga ke arah yang sama dipicu sekali lagi. Namun, saat membuat strategi semacam itu, pengembang harus sepenuhnya sadar bahwa jika terjadi perubahan harga yang tajam, urutan pesanan yang dihentikan mungkin tidak tereksekusi oleh beberapa broker pada sentuhan harga pertama. Dan kerugiannya akan proporsional dengan total nilai pesanan pasar satu arah. Dalam contoh kita, kita menggunakan varian b dari korelasi kriteria perdagangan. Semua pesanan pasar terbuka ditutup baik dengan stop order atau setelah kriteria pembukaan order dengan pemicu arah yang berlawanan (inilah kriteria penutupan Buy bertepatan dengan pembukaan Sell dan sebaliknya). Ukuran Perintah yang Dibuka Dalam ukuran pesanan strategi perdagangan apapun harus cukup terbatas. Dalam kasus sederhana, ukuran pesanan tetap digunakan dalam Expert Advisor. Sebelum memulai operasi EA, pengguna dapat mengatur ukuran pesanan di masa depan dan membiarkannya tidak berubah selama beberapa waktu. Selanjutnya jika perubahan saldo, pengguna dapat menetapkan nilai baru dari jumlah lot dari pesanan yang dibuka. Ukuran pesanan yang terlalu kecil memberi kepercayaan lebih pada operasi pada perubahan pasar yang tidak dapat diprediksi, namun keuntungan jika berhasil tidak begitu besar. Jika ukuran pesanan terlalu besar, keuntungan besar bisa didapat, tapi EA seperti itu akan terlalu berisiko. Biasanya ukuran pesanan yang dibuka sudah diatur jadi, persyaratan margin itu tidak melebihi 2-35 persen dari saldo atau margin bebas (jika strategi hanya mengizinkan satu pesanan terbuka, saldo dan margin bebas saat ini sebelum pembukaan pesanan akan menjadi sama). Dalam contoh ini kedua varian tersebut diimplementasikan. Seorang pengguna dapat memilih untuk menunjukkan nilai pesanan secara langsung atau menetapkan nilainya dalam persentase dari margin bebas. Rincian Pemrograman Trend sederhana Expert Advisor tradingexpert. mq4 yang dibangun berdasarkan argumen sebelumnya dapat terlihat seperti ini: Menggambarkan Variabel Satu kriteria lagi dalam estimasi program adalah keterbacaannya. Sebuah program dianggap ditulis dengan benar, jika mudah dibaca oleh pemrogram lain, itulah sebabnya semua bagian program utama dan momen utama yang menjadi ciri strategi harus dikomentari. Ini juga mengapa disarankan untuk mendeklarasikan dan mengomentari semua variabel di awal program. Pada blok 1-2 variabel eksternal dan global dijelaskan. Menurut aturan, variabel eksternal dan global harus dibuka sebelum penggunaan pertama mereka (lihat Jenis Variabel), itulah sebabnya mereka dinyatakan di bagian kepala program. Semua variabel lokal dari fungsi start () dikumpulkan dan dijelaskan di bagian fungsi atas (blok 2-3) segera setelah header fungsi. Aturan mendeklarasikan variabel lokal tidak memerlukannya, tapi juga tidak melarang. Jika programmer menghadapi kesulitan dalam memahami makna suatu variabel saat membaca program, dia bisa merujuk ke bagian program atas dan mengetahui makna dan jenis variabel apapun. Hal ini sangat nyaman dalam praktek pemrograman. Blok pengolahan awal Dalam contoh ini preprocessing terdiri dari dua bagian (blok 3-4). Program menghentikan operasi jika tidak ada cukup banyak bar di jendela keamanan dalam kasus seperti itu sehingga tidak mungkin untuk mendeteksi dengan benar nilai rata-rata bergerak yang diperlukan untuk menghitung kriteria. Selain itu disini nilai variabel Kerja dianalisis. Dalam operasi EA normal, nilai variabel selalu benar (diset selama inisialisasi). Jika kesalahan kritis terjadi dalam operasi program, false ditugaskan ke variabel ini dan start () menyelesaikan operasinya. Nilai ini tidak akan berubah di masa depan, karena itulah kode berikut tidak dijalankan. Dalam kasus seperti ini, operasi program harus dihentikan dan alasan kesalahan kritis harus terdeteksi (jika diperlukan, pusat penanganan harus dihubungi). Setelah situasi terpecahkan, program bisa dimulai sekali lagi, misal EA bisa dilampirkan ke jendela keamanan. Perintah Akuntansi Expert Advisor yang dijelaskan memungkinkan bekerja hanya dengan satu pesanan pasar. Tugas dari perintah blok akuntansi (blok 4-5) adalah untuk menentukan karakteristik pesanan yang terbuka, jika ada. Dalam lingkaran yang melewati pesanan untuk semua pasar yang ada dan pesanan yang tertunda diperiksa, yaitu dari yang pertama (int i1) sampai yang terakhir (iampltOrdersTotal ()). Pada setiap iterasi siklus urutan berikutnya dipilih oleh fungsi OrderSelect (). Pemilihannya dibuat dari sumber perintah yang terbuka dan tertunda (SELECTBYPOS). Jika seleksi berhasil dilaksanakan (misalnya ada satu pesanan lagi di terminal), lanjutkan perintah ini dan situasinya harus dianalisis: apakah pesanan dibuka untuk keamanan, di mana EA beroperasi, apakah pesanannya adalah pasar atau tertunda Hal itu juga harus diperhitungkan saat menghitung pesanan. Di telepon: semua perintah yang dibuka untuk keamanan lain dieliminasi. Operator terus menghentikan iterasi dan karakteristik dari perintah tersebut tidak diproses. Tapi jika pesanan dibuka untuk keamanan, ke jendela EA dilampirkan, selanjutnya dianalisis. Jika OrderType () mengembalikan nilai lebih dari 1 (lihat Jenis Trades), urutan yang dipilih adalah yang tertunda. Namun dalam Expert Advisor ini pengelola pending order tidak disediakan. Artinya eksekusi start () harus dihentikan, karena terjadi situasi konflik. Dalam kasus seperti setelah pesan tentang penghentian operasi start () eksekusi dihentikan oleh operator return. Jika cek terakhir menunjukkan bahwa pesanan yang dianalisis adalah pesanan pasar, jumlah pesanan untuk keamanan dihitung dan dianalisis. Untuk pesanan pertama dari semua karakteristik yang diperlukan ditentukan. Jika pada iterasi selanjutnya order counter (variable Total) menemukan second market order, situasinya juga dianggap sebagai konflik, karena EA tidak bisa mengelola lebih dari satu market order. Dalam kasus seperti start () eksekusi dihentikan setelah menampilkan pesan yang sesuai. Sebagai hasil dari pelaksanaan perintah blok akuntansi (jika semua cek berhasil), variabel Total mempertahankan nilai nolnya jika tidak ada pesanan pasar, atau mendapatkan nilai 1 jika ada pesanan pasar untuk keamanan kita. Dalam kasus terakhir beberapa variabel ditetapkan dalam korespondensi dengan karakteristik pesanan (jumlah, jenis, harga pembukaan, tingkat stop dan nilai pesanan) juga mendapatkan nilainya. Menghitung Kriteria Perdagangan Dalam contoh definisi kriteria perdagangan yang dianalisis (blok 5-6) dihitung berdasarkan basis perbedaan antara Moving Averages dengan periode rata-rata yang berbeda. Menurut kriteria yang diterima, sebuah grafik adalah bull-directed jika nilai MA saat ini dengan periode lebih kecil lebih besar dari nilai MA dengan periode yang lebih besar, dan perbedaan antara nilai lebih besar dari nilai tertentu. Pada pergerakan bear MA dengan periode lebih kecil lebih rendah dari MA dengan periode yang lebih besar dan selisihnya juga lebih besar dari nilai kritis tertentu. Pada nilai awal blok MA dengan periode rata-rata PeriodMA1 dan PeriodMA2 dihitung. Fakta signifikansi dari setiap kriteria perdagangan dinyatakan melalui nilai variabel yang sesuai. Variabel OpnB dan OpnS menunjukkan kriteria yang memicu pembukaan order Beli dan Jual, variabel Cls dan ClsS - untuk penutupan. Misalnya, jika kriteria pembukaan Buy tidak dipicu, nilai OpnB tetap salah (ditetapkan pada inisialisasi variabel) jika dipicu, OpnB mendapatkan nilai true. Dalam hal ini kriteria penutupan Sell bertepatan dengan itu untuk pembukaan Buy, kriteria untuk membuka Sell bertepatan dengan itu untuk closing Buy. Kriteria perdagangan yang diterima dalam contoh ini hanya digunakan untuk tujuan pendidikan dan tidak boleh dianggap sebagai pedoman saat melakukan trading di akun sebenarnya. Penutupan Penutupan Telah ditulis sebelumnya bahwa Expert Advisor ini ditujukan untuk operasi hanya dengan satu order pasar dibuka untuk keamanan, ke jendela mana EA dilampirkan. Untuk saat ketika kontrol dalam program dilewatkan ke blok penutup pesanan, diketahui dengan pasti bahwa pada saat ini tidak ada perintah untuk keamanan, atau hanya ada satu pesanan pasar. Itulah mengapa kode di blok penutup perintah ditulis sehingga hanya satu pesanan yang bisa ditutup dengan sukses. Blok ini didasarkan pada loop tak terbatas sementara, badannya terdiri dari dua bagian yang analog: satu untuk menutup pesanan Beli, satu lagi untuk menutup order Sell. Sementara digunakan di sini untuk tujuan bahwa jika terjadi kegagalan operasi perdagangan, hal itu dapat diulang sekali lagi. Di header operator pertama jika kondisi penutupan order Buy dihitung (order Sell ditutup dengan cara yang sama). Jika jenis pesanan yang dibuka sebelumnya sesuai dengan Buy (lihat Jenis Perdagangan) dan tanda penutupan Buy relevan, kontrol dilewatkan ke badan jika operator di mana permintaan untuk menutup terbentuk. Sebagai harga penutupan pesanan dalam fungsi OrderClose () nilai dari kutipan dua sisi yang sesuai dengan jenis pesanan ditunjukkan (lihat Persyaratan dan Keterbatasan dalam Membuat Perdagangan). Jika operasi perdagangan berhasil dijalankan, setelah pesan tentang penutupan pesanan ditunjukkan saat ini sementara iterasi dihentikan dan eksekusi blok penutup pesanan selesai. Tetapi jika operasi gagal, fungsi yang ditetapkan pengguna untuk memproses kesalahan FunError () disebut (blok 10-11). Pengolahan Kesalahan Sebagai parameter berlalu di FunError () kode kesalahan terakhir yang dihitung oleh GetLastError () digunakan. Bergantung pada kode kesalahan FunError () mengembalikan 1 jika kesalahan tidak kritis dan operasi dapat diulang, dan 0 jika kesalahannya sangat penting. Kesalahan kritis dibagi menjadi dua jenis - yaitu, setelah eksekusi program dapat dilanjutkan (misalnya, kesalahan umum) dan kesalahan yang terjadi, setelah pelaksanaan operasi perdagangan apa pun harus dihentikan (misalnya, akun yang diblokir). Jika setelah operasi perdagangan yang tidak berhasil, fungsi yang ditetapkan pengguna kembali 1, arus sementara iterasi dihentikan dan selama iterasi selanjutnya, upaya lain dilakukan untuk menjalankan operasi - untuk menutup pesanan. Jika fungsi kembali 0, start saat ini () eksekusi dihentikan. Pada start centang berikutnya () akan dimulai oleh terminal klien lagi dan jika kondisi untuk penutupan pesanan dipertahankan, upaya lain untuk menutup pesanan akan dilakukan. Jika selama proses kesalahan ditemukan bahwa eksekusi program lebih lanjut tidak masuk akal (misalnya program beroperasi pada versi terminal klien lama) selama start berikutnya, pelaksanaan start fungsi khusus () akan dihentikan di blok pemrosesan awal saat Menganalisis nilai variabel Kerja. Menghitung Jumlah Banyak untuk Pesanan Baru Jumlah banyak bisa dihitung sesuai dengan setting pengguna mengikuti salah satu dari dua varian tersebut. Varian pertama adalah nilai konstan tertentu yang ditetapkan oleh pengguna. Menurut varian kedua, jumlah lot dihitung berdasarkan jumlah yang sama dengan persentase tertentu (ditetapkan oleh pengguna) dari margin bebas. Pada awal blok penentuan jumlah lot untuk pesanan baru (blok 7-8) nilai yang diperlukan dari beberapa variabel dihitung - jumlah lot and lot lot lot yang minimal disiapkan oleh broker, margin bebas dan harga Satu lot untuk keamanan Dalam contoh berikut ini disediakan. Jika pengguna telah menetapkan nilai non-nol tertentu dari variabel eksternal Lts, misalnya 0,5, diterima sebagai jumlah lot saat permintaan perdagangan untuk membuka pesanan terbentuk. Jika 0 ditugaskan ke Lts, jumlah lot Lts didefinisikan berdasarkan variabel Prots (persentase), bebas margin dan kondisi yang ditetapkan oleh broker. Setelah dihitung, dilakukan pengecekan. Jika nilai ini lebih rendah dari nilai minimum yang diijinkan, nilai minimum yang diijinkan diterima. Tetapi jika margin bebas tidak cukup, setelah pesan yang sesuai, start () eksekusi dihentikan. Perintah Pembukaan Blok pembuka (blok 8-9) seperti barang pembuka adalah loop tak terbatas. Di header operator pertama jika kondisi untuk membuka order Beli dihitung: jika tidak ada perintah untuk keamanan (variabel Total sama dengan 0) dan tanda untuk membuka order Beli relevan (OpnB benar), kontrol Dilewatkan ke jika badan operator untuk membuka pesanan. Dalam kasus seperti ini, setelah harga disegarkan, harga untuk tingkat stop dihitung. Nilai level stop awalnya ditentukan oleh pengguna di variabel eksternal StopLoss dan TakeProfit. Dalam kasus umum, pengguna dapat menetapkan nilai untuk parameter ini lebih kecil yang diizinkan oleh broker. Selain broker bisa mengubah jarak minimum yang diijinkan setiap saat (ini adalah kasus yang sering terjadi pada pergerakan pasar yang kuat, misalnya sebelum rilis berita penting). Itulah mengapa sebelum masing-masing tingkat buka stop level harus dihitung dengan mempertimbangkan nilai-nilai yang ditetapkan pengguna dan nilai minimum yang diijinkan oleh broker. Untuk menghitung tingkat stop fungsi yang ditentukan pengguna NewStop () digunakan sebagai parameter yang dilewatkan, nilai stop level yang ditetapkan oleh pengguna digunakan. Di NewStop () pertama jarak minimum yang diperbolehkan saat ini dihitung. Jika nilai yang ditetapkan oleh pengguna sesuai dengan persyaratan broker, nilai ini dikembalikan. Jika lebih kecil dari nilai yang diijinkan, nilai yang diperbolehkan oleh broker digunakan. Harga permintaan berhenti dihitung dari kutipan dua sisi yang sesuai (lihat Persyaratan dan Keterbatasan dalam Pembuatan Perdagangan). Permintaan perdagangan untuk membuka pesanan terbentuk dengan menggunakan fungsi OrderSend (). Untuk perhitungan harga pembukaan pesanan dan harga stop request, nilai quote dua sisi sesuai dengan tipe pesanan yang digunakan. Jika operasi perdagangan berhasil (yaitu server mengembalikan jumlah pesanan yang dibuka) setelah pesan tentang pembukaan pesanan yang berhasil ditampilkan. Start () eksekusi selesai Jika pesanan tidak dibuka dan terminal klien mengembalikan kesalahan, kesalahan diproses sesuai dengan algoritma yang dijelaskan sebelumnya. Beberapa Keanehan Kode Analisis Expert Advisor yang dianalisis berorientasi pada implementasi strategi tertentu. Perhatikan, beberapa baris program berisi variabel dan perhitungan yang akan diubah, jika strategi tersebut diubah. Misalnya, sesuai dengan strategi yang diterima, Expert Advisor dikembangkan untuk bekerja hanya dengan satu pesanan. Hal ini memungkinkan untuk menggunakan variabel Ticket baik untuk identifikasi nomor pesanan penutupan (di blok penutupan 6-7) dan untuk identifikasi keberhasilan eksekusi operasi perdagangan saat membuka pesanan (di blok pembukaan 8-9 ). Dalam hal ini solusi semacam itu bisa diterima. However, if we take the analyzed code as the basis for the implementation of another strategy (for example allow opposite orders) we will have to introduce one or several variables to be able to recognize numbers of opened orders and identify the success of trade operations. In further strategy modifications we will have to change come program lines containing part of logics contained in the source strategy. Namely in the order accounting block we will not have to terminate the program operation if there are several open orders for a security. Besides, conditions for opening and closing orders will alslo change. This will entail the code changing in blocks of opening and closing orders. On the basis of this analysis we can easily conclude that the described simple Expert Advisor is not perfect. In a general case, for the implementation of order accounting one should use a universal function based on using data arrays and not containing logics of a certain strategy. The same can be said about the blocks of opening and closing orders. A more complete program must contain a main analytical function, all other user-defined functions must be subordinate to it. This analytical function must contain a program code, in which all conditions for the implementation of any strategy are analyzed all subordinate functions must perform limited actions. The function of accounting orders must only account orders, functions of opening and closing orders must only open and close orders, and the analytical function must quotthinkquot and manage all other functions, i. e. call them when needed. The Moving Average Cross Expert Advisor The moving average cross is one of the most popular basic trading strategies. Ini menggunakan dua atau lebih rata-rata bergerak pada periode yang berbeda untuk menentukan arah tren. Bila rata-rata bergerak lebih cepat berada di atas rata-rata bergerak yang lebih lambat (slow moving average), posisi long dibuka, dan sebaliknya untuk posisi short. Rata-rata pergerakan rata-rata bergerak melampaui tren panjang dan berkelanjutan sebagai strategi perdagangan jangka menengah. Strategi berdasarkan cross rata-rata bergerak selalu sering diminta oleh klien kami, dan itulah sebabnya kami menawarkan penasihat ahli lintas rata-rata bergerak. Anda sekarang dapat membeli penasihat ahli yang populer ini selama lebih dari 50 dari sebelumnya 45, penasihat ahli rata-rata Moving Average Cross sekarang hanya 19,95 sampai 3 Moving Average Lines. Gunakan dua rata-rata bergerak, atau tambahkan yang ketiga untuk menyaring tren jangka panjang. Moving Average Types. Sederhana. Eksponensial Merapikan atau Linear Tertimbang. Data harga Pilih dari Close, Open, High, Low, Median, Typical atau Weighted Close. Shift . Pergeseran garis rata-rata bergerak ke depan atau ke belakang. Beberapa Jangka Waktu. Setiap rata-rata bergerak dapat diatur ke setiap kerangka waktu bagan. Pengelolaan Uang - Ukuran lot dihitung secara otomatis sehingga risiko maksimum per perdagangan terbatas pada persentase ekuitas Anda. Trailing Stop Break Even Stop - Secara otomatis mengatur stop loss seiring perdagangan bergerak ke keuntungan. Tetapkan tingkat keuntungan minimum, langkah demi langkah berhenti secara bertahap dan lebih banyak Timer Perdagangan Harian - Batasi perdagangan intraday Anda hingga jam dimana pasar paling aktif. Anda dapat menutup semua pesanan secara terbuka di penghujung hari. Kontrol Pesanan Manual - Tempatkan pesanan manual pada bagan Anda dengan komentar dagang tertentu, dan MA Cross EA akan mengikuti stop loss dan menutup pesanan secara otomatis di atas sebuah salib yang berlawanan. Jalankan Sekali Per Bar atau Setiap Tick. Pilih seberapa sering untuk memeriksa kondisi pembukaan dan penutupan pesanan. Anda bisa berdagang setiap kutu, atau hanya di tutup masing-masing bar. Close On Cross - Tutup posisi yang saat ini dibuka pada moving average cross ke arah yang berlawanan. Jika dinonaktifkan, pesanan hanya akan ditutup dengan stop loss atau secara manual. Kuat. Penanganan dan pemberitahuan kesalahan penuh, coba lagi requote, dan masih banyak lagi. Sepenuhnya kompatibel dengan broker ECN dan 5 digit. Tanda - Pilih antara peringatan audio, dialog lansiran bawaan, peringatan email atau pemberitahuan yang dikirim ke ponsel cerdas Anda. You can purchase the Moving Average Cross EA instantly for only 19.95

No comments:

Post a Comment