Backtesting Forex Mt4 Programmer
Leon Lodewyks: Saya bertanya-tanya apakah seseorang bisa membantu saya? Saya telah menulis, apa yang saya anggap sebagai EA yang sangat sederhana, tetapi ketika mencoba untuk melakukan back-test EA ini menggunakan MT4, backtester tampaknya bekerja untuk beberapa perdagangan dan kemudian berhenti (dengan berlari sampai akhir tanpa melakukan perdagangan lebih lanjut). Hal ini hampir seperti kehabisan memori, tapi aku tidak tahu bagaimana untuk memeriksa apakah ini adalah kasus. Sebagai contoh, jika saya ingin menguji kembali kode dari tanggal 1 Januari 2016 sampai hari ini, mungkin akan melakukan beberapa perdagangan pada bulan Januari sampai dengan tanggal 10 Januari dan kemudian menunjukkan bahwa ia tidak akan melakukan perdagangan lain untuk Sisa tahun ini, tapi jika Anda menetapkan tanggal mulai di kemudian hari, itu akan menempatkan perdagangan. Mungkinkah ada yang menyarankan apa masalahnya, karena ini membuatku gila. Anda harus memposting kode Anda jika Anda ingin kami dapat membantu Anda. Kita hanya bisa menebak apa masalahnya. Alain. Disebutkan baris 128 dan 278, tapi saya pikir dia hanya bercanda untuk membuat titik bahwa kita hanya bisa menebak apa masalahnya bisa karena Anda belum memberikan kode apapun untuk melihat. Namun, pastikan juga bahwa Anda benar-benar memiliki data riwayat yang tersedia untuk periode yang sedang diuji. Anda harus memposting kode Anda jika Anda ingin kami dapat membantu Anda. Kita hanya bisa menebak apa masalahnya. Alain. Disebutkan baris 128 dan 278, tapi saya pikir dia hanya bercanda untuk membuat titik bahwa kita hanya bisa menebak apa masalahnya bisa karena Anda belum memberikan kode apapun untuk melihat. Namun, pastikan juga bahwa Anda benar-benar memiliki data riwayat yang tersedia untuk periode yang sedang diuji. Leon Lodewyks 2016.12.06 15:37 2016.12.06 15:37:40 4 Anda harus memposting kode Anda jika Anda ingin kami dapat membantu Anda. Kita hanya bisa menebak apa masalahnya. Alain. Disebutkan baris 128 dan 278, tapi saya pikir dia hanya bercanda untuk membuat titik bahwa kita hanya bisa menebak apa masalahnya bisa karena Anda belum memberikan kode apapun untuk melihat. Namun, pastikan juga bahwa Anda benar-benar memiliki data riwayat yang tersedia untuk periode yang sedang diuji. ha ha. Terima kasih aku benar-benar merindukan lelucon :) Sakitkan kode, saya pikir ini mungkin kesalahan MT4 generik, jadi saya tidak memposting kode. Leon Lodewyks 2016.12.06 15:39 2016.12.06 15:39:55 5 Maaf - inilah kodenya. Saya telah mendownload tickdata dan mencobanya, tapi juga hanya dengan mendownload data melalui pusat sejarah. Keduanya, perilaku yang sama. Extern double Lots 0.01 extern double SL 50 extern double TP 50 extern int Magic 1 datetime Timeopen 3600 datetime Timebar 0 double p, r1, r2, r3, s1, s2, s3 double todayhigh iHigh (Symbol (), PERIODD1. 0) double todaylow ILow (Symbol (), PERIODD1. 0) double kemarinclose iClose (Symbol (), PERIODD1. 1) double kemarinhigh iHigh (Symbol (), PERIODD1. 1) double kemarinlow iLow (Symbol (), PERIODD1. 1) p (kemarin kemarin kemarin Kemarin tutup) 3 r1 (2 p) - yesterdaylow r2 p (kemarin kemarin - kemarin) r3 (2 p) (kemarin kemarin (2 kemarin)) s1 (2 p) - memiliki satu minggu penuh (2 p) Sebelumnya (2 kemarin) - kemarinlow) double previousCandleClosePrice iClose (Symbol (), PERIODCURRENT. 1) double Pivot NormalizeDouble (p, Digit) double Resistance1 NormalizeDouble (r1, Digits) double Resistance2 NormalizeDouble (r2, Digits) double Resistance3 NormalizeDouble (r3 , Digit) double Support1 NormalizeDouble (s1, Digi Ts) double Support2 NormalizeDouble (s2, Digits) double Support3 NormalizeDouble (s3, Digit) Pivot Point jika (sebelumnyaCandleClosePrice lt Pivot ampamp Pivot Tanya ampamp (TimeCurrent () - Waktu 0) ltTimeopen) int ticket OrderSend (Symbol (), OPSELL, Lots , Bid. 5. Tanya (SL 10 Point), Tanya - (TP 10 Point), Pivot Point Sell, Magic, 0, Green) Print (Pivot Level: Pivot) if (ticket gt 0) Timeopen TimeCurrent () - Waktu 0 masukkan string baru (Interval toko dari waktu pembukaan bar dengan masuk sampai saat keluar) Timebar Time 0 masukkan string baru (ingat waktu pembukaan bar yang masuk pertama) Cetak (Pivot Point Sell Ditempatkan) yang lain Cetak (Kesalahan menempatkan Perdagangan: GetLastError ()) Print (Mencoba membuka order di: Bid with SL di (Ask SL) dan TP at (Ask - TP)) return (0) if (previousCandleClosePrice gt Pivot ampamp Pivot Bid ampamp (TimeCurrent () - Time 0) ltTimeopen) (Order 10), Bid (TP 10 Point), Pivot Point Buy, Magic, 0, Green) Print (Pivot Level: Pivot) jika (tiket) Gt 0) Timeopen TimeCurrent () - Waktu 0 masukkan string baru (interval toko dari waktu pembukaan bar dengan entri sampai saat keluar) Timebar Time 0 masukkan string baru (ingat openin G waktu bar yang masuk pertama) Print (Pivot Point Buy Placed) lain Cetak (Kesalahan dalam menempatkan Perdagangan:. GetLastError ()) Print (Mencoba membuka order di: Tanya dengan SL di (Bid-SL) dan TP at (BidTP)) return (0) Resistance 1 if (previousCandleClosePrice lt Resistance1 ampamp Resistance1 Tanya ampamp (TimeCurrent () - Time 0) Tanyakan (SL 10 Point), Tanya - (TP 10 Point), Perlawanan 1 Jual, Sihir, 0, Hijau) jika (ticketResistance1 gt 0) Timeopen (Waktu loncatan) TimeCurrent () - Waktu 0 masukkan string baru (interval toko dari waktu pembukaan bar dengan entri sampai saat keluar) Timebar Time 0 masukkan string baru (ingat waktu pembukaan bilah yang memiliki entri pertama) yang lain Cetak (Kesalahan menempatkan Perdagangan: GetLastError ()) Print (Mencoba membuka order di: Bid with SL at (Ask SL) dan TP at (Ask - TP)) return (0) Resistance 2 if (previousCandleClosePrice lt Resistance2 ampamp Resistance2 Tanya ampamp (TimeCurrent () - Time 0) ltTimeopen) int ticketResistance2 OrderSend (Simbol (), OPSELL, Lots, Bid 5. Tanya (SL 10 Point), Ask - (TP 10 Point), Resistance 2 Sell, Magic, 0, Green) if (ticketResistance2 gt 0) Timeopen TimeCurrent () - Waktu 0 masukkan string baru (interval toko dari waktu pembukaan bar dengan entri sampai Exit moment) Timebar Time 0 masukkan string baru (ingat waktu pembukaan bar yang masuk 1) lain Cetak (Error puts Trade:. GetLastError ()) Print (Mencoba membuka order di: Bid with SL di (Ask SL) dan TP at (Ask - TP)) return (0) Resistance 3 if (previousCandleClosePrice lt Resistance3 ampamp Resistance3 Tanya ampamp (TimeCurrent () - Time 0 ) Tanyakan (SL 10 Point), Tanya - (TP 10 Point), Perlawanan 3 Jual, Sihir, 0, Hijau) jika (ticketResistance3 gt 0) Timeopen TimeCurrent () - Waktu 0 masukkan string baru (interval toko dari waktu pembukaan bar dengan entri sampai saat keluar) Timang Waktu 0 masukkan string baru (ingat waktu pembukaan bilah yang memiliki entri pertama) yang lain Cetak (Kesalahan menempatkan Perdagangan : GetLastError ()) Print (Mencoba membuka order di: Bid with SL di (Ask SL) dan TP at (Ask - TP)) return (0) if (previousCandleClosePrice gt Support1 ampamp Support1 Bid ampamp (TimeCurrent () - Time 0 ) LtTimeopen) int ticketSupport1 OrderSend (Symbol (), OPBUY, Lots, Ask 5. Bid - (SL 10 Point), Bid (T P 10 Point), Dukungan 1 Buy, Magic, 0, Green) if (ticketSupport1 gt 0) Timeopen TimeCurrent () - Waktu 0 masukkan string baru (interval toko dari waktu pembukaan bar dengan entri sampai saat keluar) Timebar Time 0 Masukkan string baru (ingat waktu pembukaan bar yang masuk pertama) lain Cetak (Kesalahan menempatkan Perdagangan:. GetLastError ()) Print (Mencoba membuka order di: Tanya dengan SL di (Bid-SL) dan TP at (BidTP)) return (0) if (previousCandleClosePrice gt Support2 ampamp Support2 Bid ampamp (TimeCurrent () - Time 0) ltTimeopen) (Tick 10), Support 2 Buy, Magic, 0, Green) jika (ticketSupport2 gt 0) Timeopen TimeCurrent (Simbol), OPBUY, Lots, Ask 5. Bid - (SL 10 Point) ) - Waktu 0 masukkan string baru (interval toko dari waktu pembukaan bar dengan entri sampai saat keluar) Timebar Time 0 masukkan string baru (ingat waktu pembukaan bilah yang memiliki entri 1) yang lain Cetak (Kesalahan menempatkan Perdagangan: GetLastError ()) Return (0) if (previousCandleClosePrice gt Support3 ampamp Support3 Bid ampamp (TimeCurrent () - Time 0) ltTimeopen) int ticketSupport3 OrderSend (Symbol (), OPBUY, Lots, Ask 5. Bid - (SL 10 Point), Bid (TP 10 Point), Dukungan 3 Buy, Magic, 0, Green) if (ticketSupport3 gt 0) Timeopen TimeCurrent () - Waktu 0 masukkan string baru (Interval toko dari waktu pembukaan bar dengan masuk sampai saat keluar) Timebar Time 0 masukkan string baru (ingat waktu pembukaan bilah yang memiliki entri 1) yang lain Cetak (Kesalahan menempatkan Perdagangan:. GetLastError ()) Print (Mencoba membuka order di: Tanya dengan SL di (Bid-SL) dan TP at (BidTP)) return (0) Leon Lodewyks 2016.12.06 17:11 2016.12.06 17:11:35 10 Juga, Apa yang ada dengan Timeopen TimeCurrent () - Time 0 dan TimeCurrent () - Time 0) ltTimeopen) Ini akan sampai pada suatu titik ketika Anda bisa mendapatkan perbedaan Zero (atau satu, atau nilai yang sangat kecil) dan kemudian Anda tidak lagi bisa memesan. EDIT: Mempertimbangkan kembali situasi ini, ini mungkin penyebab utama masalah Anda. Ini sebenarnya beberapa kode yang saya ambil dari bawah untuk mencegah EA trading lebih dari satu kali di bar yang sama. Profitabilitas sistem perdagangan didefinisikan tidak hanya oleh logika dan presisi dalam menganalisa dinamika instrumen keuangan, namun juga dengan kualitas algoritma kinerja logika ini. Pemicu salah adalah khas untuk kinerja kualitas rendah dari logika utama robot trading. Cara memecahkan masalah yang ditentukan dipertimbangkan dalam artikel ini. Mengkaji ulang Optimalisasi Tidak ditanyakan. Itu hanya pertanyaan retoris (pertanyaan dengan jawaban di dalam pertanyaan). Tentu saja tidak, kita tidak bisa. Tapi kami bekerja dengan tester ini dan tidak punya pilihan. 1. Beberapa orang mengatakan: tidak percaya pada tester strategi mt4. Untuk memahami EA tertentu yang Anda butuhkan untuk mengujinya di demo selama beberapa tahun (5 atau 8 tahun). 2. Orang lain (programmer) mengatakan bahwa tidak percaya pada pengujian demo juga. Anda perlu menggunakan uang sungguhan (selama 5 atau 8 tahun) untuk mengatakan: EA yang saya (programmer) buat ini bagus (atau buruk). Dalam hal ini kita memiliki yang berikut: programmer mengusulkan beberapa EA, penguji mengeluarkan uang mereka sendiri untuk membuktikan bahwa pemrogram bekerja. Dan tidak ada yang bertanggung jawab untuk apapun tentu saja. 3. Orang lain mengatakan bahwa itu tidak cukup bahkan. Karena kita perlu menguji uang riil dengan menggunakan broker berbeda dan kerangka waktu yang berbeda juga (tapi tidak ada yang mengatakan dari mana mendapatkan uang ini.). 3. Beberapa orang menggunakan tester strategi mt4 untuk mengatakan sesuatu tentang EA tertentu. Apa pilihan Anda Bagaimana orang-orang yang melakukan pengujian Selama melakukan backtesting kita mungkin memiliki beberapa kasus: - Misalnya, beberapa EA sedang menguji dengan sangat baik, sangat baik: tidak berarti apa-apa bagi saya karena kode EA dapat disesuaikan oleh programmer yang akan diuji Baiklah. - Jika EA menunjukkan hasil yang sangat buruk selama backtesting, saya akan melihat ide asli yang mencoba memperbaiki sesuatu dalam gagasan asli. - Jika EA sedang menguji tapi terkadang bagus dan terkadang buruk (misalnya: pengujian yang bagus selama data bulan Oktober, dan buruk selama bulan September, bagus untuk bulan Agustus dll) EA ini sangat menarik bagi saya. Karena saya mengerti bahwa tidak mungkin memiliki hasil bagus yang stabil selamanya (karena pasar berubah dan semuanya berubah tapi kami menggunakan indikator yang sama dan EA yang sama dan tidak mengubah apapun). Saya pikir strategi tester adalah filter yang bagus, ini menunjukkan jika sebuah strategi memiliki janji, mengungkapkan kekuatan dan kelemahan EA yang diberikan. Optimalisasi membantu mengurangi kelemahan dan memanfaatkan kekuatan. Uji coba demo langsung memastikan bahwa dengan harga real time live, EA secara efisien berkomunikasi dengan server Brokers mengeksekusi sebagaimana mestinya. Uji real time real membuktikan EA, dengan hasil nyata. Apakah itu menguntungkan atau tidak Dengan mt4, seseorang mampu menjalani tes uang riil dengan ukuran lot sekecil 100, atau satu sen per pip. Mengingat broker seperti IBFX membayar bunga atas akun demo, namun tidak pada akun live mini, saya yakin penting untuk menjalani tes uang riil dengan ukuran lot terkecil yang diijinkan untuk memastikan EA dapat mengatasi semua hambatan yang disajikan kepadanya, misalnya. , Biaya swap, pertengahan hari membangun upgrade, isp interuptions, nfp days, dll, dll hey. Keluhan saya dengan ea baik mereka baik-baik saja tapi mereka tidak tahu apa yang akan terjadi dalam harga masa depan hanya sejarah masa lalu jadi 1 ahli mungkin bekerja dengan baik 1 atau 2 tahun maka mungkin bekerja seperti halnya saya memiliki buku di Denmark dan strategi yang paling umum Adalah sebagai simpel sebagai moving average di atas di bawah tapi di sini u rindu beberapa MT atas dan bawah dan backtesting saya baru ke forum ini dan ingin memulai dengan beberapa pertanyaan mengenai backtesting im MT. Saya membaca di internet, bahwa hasil backtest MT tidak dapat diandalkan. Ada yang bisa benar-benar mengkonfirmasi ini apakah ada bug serius di MT yang bisa saya bayangkan, bahwa alasan mengapa hal ini dalam kebanyakan kasus hanyalah pemrograman sistem yang buruk. Bagaimana penanganan bar di MT katakanlah kita melihat bar harian. Apakah tester strategi hanya melihat OHLC atau apakah melihat setiap tanda centang secara internal fakta ini penting untuk diketahui. Perilaku akan berbeda dalam 2 skenario ini, jika kita memiliki 2 atau lebih sinyal pada bar harian yang sama. Saya baru mengenal forum ini dan bahasa inggris bukan bahasa ibu saya. Pertama-tama saya akan mengucapkan selamat kepada Anda untuk kualitas posting yang tinggi. Tidak biasa di forum lain yang pernah saya kunjungi. Saya bermain forex dan coding EA selama beberapa bulan. Masalah utama saya adalah mengapa saya memperoleh keuntungan yang lebih tinggi (bahkan 1000month) ketika mendukung EA saya daripada hidup saya telah mencoba banyak strategi yang berbeda dan tidak ada hasil yang nyata saat tampil hebat di backtest. Dukungan mengatakan bahwa backtester hanya menggunakan data OHLC tapi itu tidak benar karena saya melihat perubahan harga di dalam bar pada tester strategi. Ngomong-ngomong, saya menggunakan Metatrader 3.83 membangun 6231 dari InterbankFX. Ada yang bisa membantu Thanks in advance Dari pengalaman saya tester strategi MT3 memiliki setidaknya satu bug serius. Bug itu menyerang Anda, jika Anda menggunakan limit order (OPSELLSTOP, OPBUYSTOP). Misalnya, jika batas buy anda melebihi harga sebenarnya, maka tester strategi akan mengeksekusi order ini dengan harga aktual. Dalam kehidupan nyata perdagangan ini tidak akan terjadi, karena batas beli tidak tercapai. Seperti saya katakan, ini dari exprience saya. Mungkin beberapa orang lain bisa mengonfirmasi hal ini Untuk memastikan Anda bisa mentransfer EA Anda ke MT4 dan tes ist ada di sana. Hasil harus lebih realistis. Ya, Iomme. Saya setuju dengan kamu. Ive memiliki perasaan seperti itu terjadi. Saya melihat perintah berhenti diproses lebih mudah daripada mode live. Tapi aku bukan satu-satunya masalah dengan ST. Aku curiga bahkan perintah normal yang fullfiled agak lebih mudah seperti tidak ada selip atau semacamnya. The EAs saya telah menulis kulit kepala untuk keuntungan di ST membuat keuntungan besar tapi sering mendapatkan harga yang tidak valid atau pergi stoploss dalam mode live. Saya ingin tahu bagaimana sebenarnya mengembang hasil simulasi dan mengadaptasi EA untuk mendapatkan bagian dari keuntungan yang bagus itu. Lomme: Dari pengalaman saya tester strategi MT3 setidaknya memiliki satu bug serius. Bug itu menyerang Anda, jika Anda menggunakan limit order (OPSELLSTOP, OPBUYSTOP). Misalnya, jika batas buy anda melebihi harga sebenarnya, maka tester strategi akan mengeksekusi order ini dengan harga aktual. Dalam kehidupan nyata perdagangan ini tidak akan terjadi, karena batas beli tidak tercapai. Seperti saya katakan, ini dari exprience saya. Mungkin beberapa orang lain bisa mengonfirmasi hal ini Untuk memastikan Anda bisa mentransfer EA Anda ke MT4 dan tes ist ada di sana. Hasil harus lebih realistis.
Comments
Post a Comment