Halo para trader! Banyak di antara kita yang ingin tahu:
Bagaimana cara mendeteksi keberadaan bar baru?
Sebenarnya, ini sangat sederhana, terutama jika kamu ingin mendeteksi bar baru dalam timeframe saat ini.
void start(){ static datetime tmp; if (tmp != Time[0]) { tmp = Time[0]; // lakukan kode kamu di sini } }
Tapi, bagaimana dengan event di timeframe lainnya? Ini tidak terlalu sulit, hanya ada beberapa pembatasan:
MT4 tidak mendukung event onBar, tetapi kamu bisa memasukkan waktu ke dalam array dan memeriksa waktu tersebut setiap tick. Jika sudah mencapai waktu yang tepat, jalankan event bar baru.
Artinya, jika kamu menjalankan backtest di timeframe M5, kamu bisa menangkap event M6, M7, sampai D1.
Mengapa kamu hanya bisa mendeteksi tren naik? Pertanyaannya adalah: bagaimana cara menghasilkan data tick menggunakan MetaTrader? A1, A2, A3,...
Sampai timeframe D1, itu lebih sulit karena minggu dimulai pada contoh: Minggu 20:45 (tergantung broker) dan awal bulan bisa dimulai di tengah minggu... dll.
Saya rasa informasi ini tidak terlalu relevan, jadi saya tidak mempublikasikannya.
Namun, ada topik untuk pertanyaan ini, tetapi saya rasa banyak orang tidak membaca artikel dan forum, jadi saya mempublikasikan kode ini.
Beberapa penjelasan:
Di fungsi init, kamu mengisi array waktu dengan waktu awal:
curIndex = utils.periodToPeriodIndex(Period()); times[curIndex] = Time[0]; for(int i=curIndex + 1; i < MAX; i++) times[i] = times[curIndex] - MathMod(times[curIndex], utils.periodIndexToPeriod(i) * 60);
Dan di fungsi start, kamu memeriksa apakah cukup waktu yang telah berlalu, kemudian menjalankan event:
if (times[curIndex] != Time[0]) { times[curIndex] = Time[0]; onBar(Period()); for(int i=curIndex + 1; i < MAX; i++) { int period = utils.periodIndexToPeriod(i), seconds = period * 60, time0 = times[curIndex] - MathMod(times[curIndex], seconds); if (times[i] != time0) { times[i] = time0; onBar(period); } } }
Selanjutnya, tulis kode kamu di:
void onTick() {
}
dan
void onBar(int period) { }
Itu saja untuk kali ini, teman-teman.
Update 1.1: Terima kasih kepada WHRoeder atas kode yang jelas.
Postingan terkait
- MQL5 Wizard: Mengoptimalkan Sinyal Perdagangan dengan Morning/Evening Stars dan MFI
- MQL5 Wizard: Membuat EA dengan Sinyal Trading Berdasarkan Pola Morning/Evening Stars dan Stochastic
- Menggunakan MQL5 Wizard untuk Sinyal Trading Berdasarkan Pola Candlestick dan CCI
- MQL5 Wizard: Menggunakan Sinyal Trading Berbasis Morning/Evening Stars dan RSI untuk MetaTrader 5
- MQL5 Wizard: Membuat Expert Advisor dengan Sinyal Trading Bullish/Bearish Meeting Lines dan CCI