Indikator Teknis

Menggunakan Buffer Jam dalam MetaTrader 5 untuk Pengumpulan Data Trading
MetaTrader5
Menggunakan Buffer Jam dalam MetaTrader 5 untuk Pengumpulan Data Trading

Tujuan Bagi trader yang ingin melakukan pengolahan data, indikator sederhana ini dapat sangat membantu. Dengan memanfaatkan buffer jam sebagai array biner, Anda bisa mengumpulkan data untuk berbagai keperluan, seperti modeling ekonomi. Indikator ini juga memungkinkan Anda untuk menambahkan kolom dummy untuk jam yang sedang dikumpulkan saat menggunakan fungsi seperti CopyBuffer. Ini adalah kode sederhana yang memudahkan pengumpulan data, misalnya untuk tujuan Machine Learning, sehingga Anda memiliki variabel dummy siap pakai (buffer 0 hingga 23), atau variabel jam (buffer 24) untuk digunakan dalam modeling. Penjelasan Kode Dimulai dengan mendeklarasikan jumlah buffer dan jumlah plot sebanyak 25: #property indicator_chart_window #property indicator_buffers 25 #property indicator_plots 25 Penamaan Buffer Mendefinisikan label buffer untuk jendela data: #property indicator_label1 &nbsp;&nbsp;"Jam 00" #property indicator_label2 &nbsp;&nbsp;"Jam 01" #property indicator_label3 &nbsp;&nbsp;"Jam 02" #property indicator_label4 &nbsp;&nbsp;"Jam 03" #property indicator_label5 &nbsp;&nbsp;"Jam 04" #property indicator_label6 &nbsp;&nbsp;"Jam 05" #property indicator_label7 &nbsp;&nbsp;"Jam 06" #property indicator_label8 &nbsp;&nbsp;"Jam 07" #property indicator_label9 &nbsp;&nbsp;"Jam 08" #property indicator_label10 "Jam 09" #property indicator_label11 "Jam 10" #property indicator_label12 "Jam 11" #property indicator_label13 "Jam 12" #property indicator_label14 "Jam 13" #property indicator_label15 "Jam 14" #property indicator_label16 "Jam 15" #property indicator_label17 "Jam 16" #property indicator_label18 "Jam 17" #property indicator_label19 "Jam 18" #property indicator_label20 "Jam 19" #property indicator_label21 "Jam 20" #property indicator_label22 "Jam 21" #property indicator_label23 "Jam 22" #property indicator_label24 "Jam 23" #property indicator_label25 "Jam" Deklarasi Buffer Kemudian mendeklarasikan buffer serta variabel integer untuk jam dalam sehari yang akan dihitung nanti. double hourBuffer0[]; double hourBuffer1[]; double hourBuffer2[]; double hourBuffer3[]; double hourBuffer4[]; double hourBuffer5[]; double hourBuffer6[]; double hourBuffer7[]; double hourBuffer8[]; double hourBuffer9[]; double hourBuffer10[]; double hourBuffer11[]; double hourBuffer12[]; double hourBuffer13[]; double hourBuffer14[]; double hourBuffer15[]; double hourBuffer16[]; double hourBuffer17[]; double hourBuffer18[]; double hourBuffer19[]; double hourBuffer20[]; double hourBuffer21[]; double hourBuffer22[]; double hourBuffer23[]; double hourBuffer[]; int bar_hour; Indeks dan Penggambaran Plot Set indeks untuk semua buffer sebagai data, dan matikan penggambaran menggunakan loop. (Mencoba melakukan pengindeksan dengan loop menyebabkan kesalahan karena Anda tidak dapat mengoper hourBuffer[q] melalui SetIndexBuffer, maka dilakukan satu per satu; tetapi looping tampaknya berhasil untuk PlotIndexSetInteger, yang sangat membantu). &nbsp;&nbsp; // Menetapkan buffer ke indeks, sembunyikan dari grafik, tampilkan di Jendela Data &nbsp;&nbsp; SetIndexBuffer(0, hourBuffer0, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(1, hourBuffer1, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(2, hourBuffer2, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(3, hourBuffer3, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(4, hourBuffer4, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(5, hourBuffer5, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(6, hourBuffer6, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(7, hourBuffer7, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(8, hourBuffer8, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(9, hourBuffer9, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(10, hourBuffer10, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(11, hourBuffer11, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(12, hourBuffer12, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(13, hourBuffer13, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(14, hourBuffer14, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(15, hourBuffer15, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(16, hourBuffer16, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(17, hourBuffer17, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(18, hourBuffer18, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(19, hourBuffer19, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(20, hourBuffer20, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(21, hourBuffer21, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(22, hourBuffer22, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(23, hourBuffer23, INDICATOR_DATA); &nbsp;&nbsp; SetIndexBuffer(24, hourBuffer, INDICATOR_DATA); &nbsp;&nbsp; for(int i = 0; i < 24; i++) &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp; PlotIndexSetInteger(i, PLOT_DRAW_TYPE, DRAW_NONE); &nbsp;&nbsp;&nbsp;&nbsp; PlotIndexSetInteger(i, PLOT_SHOW_DATA, true); &nbsp;&nbsp; } &nbsp;&nbsp; return(INIT_SUCCEEDED); } Loop Fungsi OnCalculate dan Program Selanjutnya kita beralih ke fungsi OnCalculate: Disini kita mengatur semua buffer kembali ke nol, dan hanya mengubah buffer yang sesuai dengan jam saat ini menjadi satu. Mungkin ada keuntungan efisiensi yang bisa didapatkan di sini, tetapi itu untuk nanti. &nbsp;&nbsp;&nbsp;&nbsp;if(rates_total 0 ? prev_calculated - 1 : 0); &nbsp;&nbsp;&nbsp;&nbsp;for(int i = start; i < rates_total; i++) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Hitung jam (0..23) untuk bar i &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bar_hour = (int)((time[i] % 86400) / 3600); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 1) Set SEMUA 24 buffer untuk bar i ke 0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer0[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer1[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer2[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer3[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer4[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer5[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer6[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer7[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer8[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer9[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer10[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer11[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer12[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer13[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer14[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer15[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer16[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer17[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer18[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer19[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer20[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer21[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer22[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer23[i] = 0.0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hourBuffer[i] = EMPTY_VALUE; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 2) Sekarang set HANYA buffer yang sesuai menjadi 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(bar_hour) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0: hourBuffer0[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 1: hourBuffer1[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2: hourBuffer2[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 3: hourBuffer3[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 4: hourBuffer4[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 5: hourBuffer5[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 6: hourBuffer6[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 7: hourBuffer7[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 8: hourBuffer8[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 9: hourBuffer9[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 10: hourBuffer10[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 11: hourBuffer11[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 12: hourBuffer12[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 13: hourBuffer13[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 14: hourBuffer14[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 15: hourBuffer15[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 16: hourBuffer16[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 17: hourBuffer17[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 18: hourBuffer18[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 19: hourBuffer19[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 20: hourBuffer20[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 21: hourBuffer21[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 22: hourBuffer22[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 23: hourBuffer23[i] = 1.0; hourBuffer[i] = bar_hour; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string localHourText = HourToText(bar_hour); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comment("Jam saat ini: ", localHourText); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;// Mengembalikan jumlah bar yang diproses &nbsp;&nbsp;&nbsp;&nbsp;return(rates_total); } Fungsi untuk Menambahkan Rasa pada Komentar Dan yang terakhir, program untuk komentar: Ini pada dasarnya adalah pemeriksaan debugging tetapi saya tetap membiarkan komentar ini ada. string HourToText(int bh) { string TextHour; switch(bh) { &nbsp;&nbsp; case 0: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "12 am"; // jam tengah malam dalam format 12 jam &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 1: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "1 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 2: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "2 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 3: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "3 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 4: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "4 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 5: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "5 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 6: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "6 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 7: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "7 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 8: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "8 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 9: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "9 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 10: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "10 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 11: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "11 am"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 12: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "12 pm"; // jam siang dalam format 12 jam &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 13: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "1 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 14: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "2 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 15: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "3 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 16: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "4 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 17: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "5 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 18: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "6 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 19: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "7 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 20: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "8 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 21: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "9 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 22: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "10 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; case 23: &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "11 pm"; &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp; default: &nbsp;&nbsp;&nbsp;&nbsp;// Jika 'bh' di luar jangkauan (0..23) &nbsp;&nbsp;&nbsp;&nbsp;TextHour = "Tidak Dikenal"; &nbsp;&nbsp;&nbsp;&nbsp;break; } return TextHour; } Perhatikan bahwa ini hanya ditampilkan melalui jendela data saat ini. Selamat Natal dan Tahun Baru 2025 untuk semua!

2024.12.25
Indikator Fibonacci Bollinger Bands untuk MetaTrader 5
MetaTrader5
Indikator Fibonacci Bollinger Bands untuk MetaTrader 5

Indikator Fibonacci Bollinger Bands ini merupakan konversi dari Pine Script (oleh Rashad) ke dalam bahasa MQL5. Indikator ini menggabungkan kekuatan Bollinger Bands dengan level Fibonacci untuk membantu trader dalam mengidentifikasi zona support dan resistance yang dinamis dengan lebih efektif. Fitur Utama: Secara otomatis menghitung level Fibonacci pada Bollinger Bands. Memberikan perspektif unik untuk trading breakout dan reversal. Sepenuhnya kompatibel dengan MetaTrader 5. Cocok untuk trader yang mencari alat analisis teknikal yang lebih canggih. Unduh dan coba sekarang juga! Berikut adalah kode Pine Script: study(shorttitle="FBB", title="Fibonacci Bollinger Bands", overlay=true) length = input(200, minval=1) src = input(hlc3, title="Sumber") mult = input(3.0, minval=0.001, maxval=50) basis = vwma(src, length) dev = mult * stdev(src, length) upper_1= basis + (0.236*dev) upper_2= basis + (0.382*dev) upper_3= basis + (0.5*dev) upper_4= basis + (0.618*dev) upper_5= basis + (0.764*dev) upper_6= basis + (1*dev) lower_1= basis - (0.236*dev) lower_2= basis - (0.382*dev) lower_3= basis - (0.5*dev) lower_4= basis - (0.618*dev) lower_5= basis - (0.764*dev) lower_6= basis - (1*dev) plot(basis, color=fuchsia, linewidth=2) p1 = plot(upper_1, color=white, linewidth=1, title="0.236") p2 = plot(upper_2, color=white, linewidth=1, title="0.382") p3 = plot(upper_3, color=white, linewidth=1, title="0.5") p4 = plot(upper_4, color=white, linewidth=1, title="0.618") p5 = plot(upper_5, color=white, linewidth=1, title="0.764") p6 = plot(upper_6, color=red, linewidth=2, title="1") p13 = plot(lower_1, color=white, linewidth=1, title="0.236") p14 = plot(lower_2, color=white, linewidth=1, title="0.382") p15 = plot(lower_3, color=white, linewidth=1, title="0.5") p16 = plot(lower_4, color=white, linewidth=1, title="0.618") p17 = plot(lower_5, color=white, linewidth=1, title="0.764") p18 = plot(lower_6, color=green, linewidth=2, title="1") Contoh MQL5:

2024.12.04
Panduan Menggunakan Kalender Ekonomi untuk Backtesting di MetaTrader 5
MetaTrader5
Panduan Menggunakan Kalender Ekonomi untuk Backtesting di MetaTrader 5

Kalender Ekonomi MetaTrader 5 dan Masalah Sinkronisasi Untuk mempersingkat cerita: kalender ekonomi bawaan MetaTrader 5 tidak (sepenuhnya) sinkron dengan kutipan historis. Kutipan diberi cap waktu sesuai dengan zona waktu yang berlaku di server pada saat pembentukan setiap bar yang bersangkutan. Setelah bar terbentuk, mereka tetap tidak berubah, termasuk cap waktunya. Di sisi lain, kalender ekonomi memberikan informasi tentang peristiwa (masa lalu, sekarang, dan mendatang) yang terkait dengan zona waktu server saat ini. Karena banyak broker mengikuti jadwal zona waktu tertentu, termasuk mengaktifkan dan menonaktifkan mode daylight saving, cap waktu dari peristiwa historis dapat bergeser satu jam relatif terhadap bar yang terkait, selama sekitar setengah tahun. Lebih lanjut lagi, broker kadang-kadang mengubah zona waktu lebih radikal daripada hanya beralih DST. Kutipan historis kemudian dapat tampak bergeser beberapa jam ke kiri atau kanan relatif terhadap waktu peristiwa ekonomi yang awalnya terjadi pada mereka, tetapi sekarang dilaporkan oleh kalender dalam zona waktu server yang diperbarui. Perlu diingat bahwa berita datang dari berbagai negara dengan jadwal DST mereka sendiri dan server Anda dapat berada di wilayah dengan jadwal yang berbeda, waktu rilis berita dapat secara visual "melompat" ke depan dan belakang pada grafik dengan cara yang lebih aneh (misalnya, selama beberapa minggu di musim semi dan musim gugur). Pentingnya Backtesting dengan Kalender Ekonomi Semuanya mungkin tampak tidak begitu penting saat online, tetapi bagaimana jika kita ingin menguji strategi berbasis berita? Ya, Anda bisa mengatakan bahwa kalender tidak didukung secara asli di penguji MetaTrader, tetapi banyak trader menyukai perdagangan berita dan semua orang yang tidak seharusnya mengikuti berita untuk sekadar menjauh dari pasar sebelum menjadi liar saat berita keluar. Oleh karena itu, backtesting dengan kalender itu penting. Sangat logis untuk mengekspor kalender ke penyimpanan eksternal (file, database) dan kemudian mengimpornya ke penguji. Salah satu alat pengarsipan untuk pengalaman kalender-di-pengujian telah dipresentasikan dalam buku algotrading. Solusi untuk Masalah Desinkronisasi Dan di sinilah kita menghadapi masalah desinkronisasi kutipan historis dengan peristiwa historis. Demi kesederhanaan, masalah ini telah dibiarkan tidak terpecahkan dalam buku tersebut. Sekarang, ini sudah teratasi berkat versi yang diperluas dari CalendarCache.mqh dan indikator showcase CalendarMonitorCachedTZ.mq5. Ini hanya versi yang sedikit diubah dari CalendarMonitorCached.mq5 dari buku tersebut. Indikator ini memantau peristiwa berita dan secara dinamis memperbarui tabel di grafik dengan beberapa peristiwa masa lalu dan yang akan datang. Semua pekerjaan yang terkait dengan koreksi waktu dilakukan di latar belakang - di pustaka publik lainnya TimeServerDST.mqh. Untuk pemahaman yang lebih baik tentang bagaimana koreksi waktu bekerja, Anda dapat menggunakan skrip CalendarCSVForDates.mq5 dan membandingkan file CSV dengan dan tanpa koreksi berdampingan. Penggunaan Indikator dan File Cache Indikator ini memiliki input string CalendarCacheFile, di mana Anda dapat memberikan nama file kalender untuk ditulis atau dibaca. Ketika indikator ini dipasang pada grafik online dengan CalendarCacheFile yang kosong, ia bekerja dengan kalender bawaan secara langsung. Ketika indikator dijalankan dengan nama tertentu di CalendarCacheFile dan file tersebut tidak ada, indikator mengekspor catatan kalender ke dalam file cache (membuat file) dan keluar. Ini adalah tahap di mana cap waktu harus/dapat dikoreksi (lihat FixCachedTimesBySymbolHistory di bawah). Ketika indikator dijalankan dengan nama file cache yang ada di CalendarCacheFile, ia memuat cache dan bekerja dengan salinan ini sama seperti dengan kalender bawaan. Ini sangat berguna untuk penguji. Jangan lupa bahwa penguji memerlukan spesifikasi file tambahan, dalam hal ini - file kalender online yang telah disiapkan, dalam direktif #property tester_file ATAU Anda harus menempatkan file kalender ke dalam folder umum C:/Users//AppData/Roaming/MetaQuotes/Terminal/Common/. Tentu saja, cache juga dapat dimuat ke dalam EA selama backtest dan optimasi. Input string FixCachedTimesBySymbolHistory diproses dengan cara berikut. Jika kosong, indikator menyimpan cache tanpa koreksi waktu. Untuk mengaktifkan koreksi waktu selama ekspor, Anda harus menentukan simbol yang akan digunakan untuk mendeteksi zona waktu historis server secara empirik. Ini bekerja berdasarkan riwayat kutipan H1, lebih disukai "XAUUSD" atau "EURUSD". Dengan bantuan input ini, hanya beberapa baris yang ditambahkan ke versi baru indikator: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(StringLen(FixCachedTimesBySymbolHistory)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cache[].adjustTZonHistory(FixCachedTimesBySymbolHistory, true); Metode adjustTZonHistory diperkenalkan khusus ke dalam kelas CalendarCache untuk penyesuaian cap waktu dan implementasinya menggunakan internal dari TimeServerDST.mqh. Metode ini hanya boleh dipanggil secara online (tidak dalam penguji). Normalnya, metode ini harus dipanggil pada objek cache yang diisi dari kalender bawaan, segera setelah pengisian. Jika tidak, jika cache dimuat dari file kalender, atau jika metode sudah dipanggil sebelumnya, konten cache mungkin sudah disesuaikan. Maka Anda akan menerapkan perbaikan pada perbaikan dan mendapatkan cap waktu yang salah. Parameter kedua (true) menginstruksikan metode untuk menulis batasan perubahan yang diterapkan ke dalam log. Sesuatu seperti ini: Koreksi waktu dimulai pada 2021.07.19 00:30:00 2021.07.19 00:30:00: 148786 -10800 selisih=-3600 2021.11.08 01:50:00: 135918 -7200 OK 2022.03.14 04:30:00: 161085 -10800 selisih=-3600 2022.11.07 04:00:00: 165962 -7200 OK 2023.03.13 01:50:00: 168500 -10800 selisih=-3600 2023.11.06 01:50:00: 169270 -7200 OK 2024.03.11 01:50:00: 181258 -10800 selisih=-3600 2024.11.04 02:30:00: 208469 -7200 OK Setiap baris berisi waktu dan ID dari sebuah peristiwa tempat ketidaksesuaian baru terdeteksi, offset waktu server pada peristiwa tersebut, dan perbedaan yang harus diterapkan pada semua cap waktu berikutnya untuk menghilangkan bias dalam waktu server pada saat pengarsipan kalender. Pembaruan dan Perbaikan File mqh yang terlampir (CalendarFilter.mqh, CalendarCache.mqh, QuickSortStructT(Ref).mqh) mengandung perbaikan bug dan peningkatan dibandingkan versi aslinya dari buku. Pembaruan 11.11.2024 - perbaikan bug kecil dan pembaruan di CalendarFilter.mqh, CalendarCache.mqh; 22.11.2024 - perbaikan bug kecil dan peningkatan di CalendarCache.mqh.

2024.11.11
Indikator Garis Ekstrem untuk MetaTrader 5: Tinggi dan Rendah yang Akurat
MetaTrader5
Indikator Garis Ekstrem untuk MetaTrader 5: Tinggi dan Rendah yang Akurat

Hai para trader! Kali ini, kita akan membahas tentang sebuah indikator yang sangat membantu dalam menganalisis harga ekstrem di MetaTrader 5. Indikator ini berfungsi menandai titik-titik ekstrem dengan garis-garis yang jelas, memudahkan kita dalam melihat pergerakan harga. Indikator ini menggunakan input periode untuk menentukan tinggi tertinggi dan rendah terendah selama periode tersebut. Yang menarik, indikator ini tidak hanya mengandalkan data OHLC (Open, High, Low, Close), tetapi juga mempertimbangkan harga bid dan ask dari setiap bar. Dengan menggunakan angka lookback, kita dapat membatasi pemrosesan pada sejumlah bar tertentu, sehingga analisis menjadi lebih efisien. Salah satu fitur menarik dari indikator ini adalah kemampuannya untuk tidak menampilkan garis di area yang mengalami break of structure (perubahan struktur pasar) seperti saat harga menembus level tertinggi atau terendah yang sebelumnya. Garis akan menghilang pada periode tersebut, sehingga hanya menampilkan garis di area support dan resistance yang valid. Fitur ini dapat diatur sesuai preferensi kita, jadi jika kita mau, indikator ini juga bisa menampilkan garis pada harga ekstrem dan menunjukkan kemiringan garis saat pasar sedang trending naik atau turun. ---------------------------------------------------- Apa yang Baru di Versi 2.0 Optimisasi yang baru membuat indikator ini hanya menghitung tick dari bar saat ini, sehingga dapat berjalan dengan lancar di timeframe yang lebih tinggi. Penghapusan buffer yang tidak diperlukan, membuat indikator ini lebih ringan dan efisien.

2024.11.09
Menggunakan Indikator Hammer untuk Mendeteksi Pembalikan Harga di MetaTrader 5
MetaTrader5
Menggunakan Indikator Hammer untuk Mendeteksi Pembalikan Harga di MetaTrader 5

Indikator Hammer adalah alat yang sangat berguna bagi trader di MetaTrader 5 untuk mengidentifikasi formasi candlestick penting, khususnya hammer hijau, hammer merah, dan inverted hammer. Indikator ini dirancang untuk menyoroti titik-titik potensial pembalikan harga dengan menganalisis struktur candlestick di setiap bar. Ciri utama dari hammer adalah tubuh kecil dan sumbu bawah yang panjang, yang menunjukkan adanya tekanan beli setelah tren turun. Sebaliknya, inverted hammer memiliki sumbu atas yang panjang dan dapat menunjukkan kemungkinan pembalikan setelah tren naik. Indikator ini menghitung ukuran dan rasio sumbu candlestick dan tubuhnya untuk mendeteksi pola-pola ini, dengan menggunakan tiga parameter utama yang dapat disesuaikan: MaxRatioShortWick: Mengatur rasio maksimum untuk sumbu pendek relatif terhadap seluruh candlestick, sehingga hanya pola dengan sumbu atas minimal yang akan terfilter. MinRatioLongWick: Menentukan rasio minimum untuk sumbu panjang, memastikan bahwa pola yang terdeteksi memiliki panjang sumbu yang signifikan dibandingkan dengan tubuh candlestick. MinCandleSize: Menentukan ukuran minimum candlestick yang diperlukan untuk memenuhi syarat sebagai pola hammer atau inverted hammer. Setelah pola teridentifikasi, indikator ini akan menampilkan panah berwarna (hijau atau merah) di chart, ditempatkan dekat harga tertinggi atau terendah dari candlestick, tergantung arah pola tersebut. Fungsi dalam kode menangani pembuatan dan penempatan objek grafis ini, serta membersihkan objek ketika indikator dihapus dari chart. Indikator ini sangat cocok bagi trader yang ingin mendeteksi potensi pembalikan harga. Parameter yang ada dapat disesuaikan untuk berbagai timeframe dan kondisi pasar. Ini adalah alat yang serbaguna yang dapat melengkapi berbagai strategi trading dengan memberikan sinyal visual awal untuk kemungkinan perubahan harga.

2024.10.31
Indikator Hari Dalam Minggu dan Minggu Dalam Tahun di MetaTrader 5
MetaTrader5
Indikator Hari Dalam Minggu dan Minggu Dalam Tahun di MetaTrader 5

Indikator WeekDays menampilkan informasi tentang Hari Dalam Minggu, Minggu Dalam Tahun, Hari Dalam Tahun, atau Indeks Bar di Data Window, dan juga bisa ditampilkan dalam label di chart. Informasi yang ada di Data Window diperbarui secara dinamis sesuai dengan pergerakan mouse. Nama hari akan selalu diperbarui dengan cepat di kolom kiri, sedangkan konten di kolom kanan ditentukan oleh pengaturan, khususnya input WholePart dan FractionalPart. Masing-masing dari input tersebut memungkinkan pengguna untuk memilih salah satu entitas yang akan ditampilkan: Hari Dalam Minggu, Minggu Dalam Tahun, Hari Dalam Tahun, Indeks Bar, atau None. WholePart - pemilih untuk angka di depan titik desimal; FractionalPart - pemilih untuk angka setelah titik desimal; Kedua properti yang dipilih (angka bulat) digabungkan menjadi satu nilai floating point untuk setiap bar dan disimpan di buffer indikator. Tentu saja, buffer ini tidak ditampilkan di chart karena gaya DRAW_NONE, karena nilainya bersifat sintetis. Contohnya, pada screenshot di bawah ini, nama harinya adalah Selasa, dan buffer yang berisi Week.DoY (indeks Hari Dalam Tahun) menunjukkan nilai 44.302, yang berarti minggu ke-44 dan hari ke-302 dalam tahun ini. Input lainnya memungkinkan pengguna untuk menentukan apakah akan ShowLabels di chart, jenis FontName, FontSize, dan FontColor yang digunakan, serta Padding dari tepi atas/bawah, cara Align (atas/tengah/bawah), dan sudut RotationAngle untuk perataan tengah. Secara default, clrNONE untuk FontColor berarti warna terbalik untuk latar belakang chart saat ini.

2024.10.29
Indikator AutoFibo: Menentukan Level Fibonacci Otomatis dengan ZigZag di MetaTrader 5
MetaTrader5
Indikator AutoFibo: Menentukan Level Fibonacci Otomatis dengan ZigZag di MetaTrader 5

Fitur-Fitur: Level Fibonacci Otomatis: Indikator ini secara otomatis menggambar garis retracement Fibonacci berdasarkan titik tinggi dan rendah ZigZag terbaru, memberikan pandangan yang jelas tentang potensi titik pembalikan. Opsi Fibonacci Dinamis dan Statis: Pengguna dapat memilih antara level retracement Fibonacci dinamis dan statis. Level dinamis diperbarui secara terus-menerus berdasarkan titik ZigZag terbaru, sementara level statis tetap pada titik tinggi atau rendah signifikan sebelumnya. Tampilan yang Dapat Disesuaikan: Anda dapat menyesuaikan warna, gaya, dan lebar garis Fibonacci untuk level dinamis dan statis, sehingga memungkinkan visualisasi yang dipersonalisasi agar sesuai dengan latar belakang dan gaya grafik yang berbeda. Dioptimalkan untuk MetaTrader 5: Indikator ini memanfaatkan sepenuhnya penanganan objek grafis MT5, memberikan pengalaman grafik yang mulus dan efisien. Parameter: Pengaturan ZigZag (ExtDepth, ExtDeviation, ExtBackstep): Sesuaikan sensitivitas pola ZigZag untuk menangkap lebih banyak atau lebih sedikit ayunan harga. Pengaturan Fibonacci Dinamis: Sesuaikan warna, gaya garis, dan lebar garis retracement Fibonacci dinamis. Pengaturan Fibonacci Statis: Sesuaikan tampilan garis Fibonacci statis berdasarkan titik tinggi/rendah ZigZag yang kedua terakhir. Cara Menggunakan: Indikator AutoFibo sangat ideal untuk strategi trading yang mengikuti tren dan pembalikan. Dengan menambahkan level Fibonacci ke pola ZigZag, trader dapat secara visual menilai level retracement dan potensi titik masuk/keluar. Indikator ini dapat digunakan di berbagai timeframe, sehingga sangat fleksibel untuk trading intraday maupun jangka panjang.

2024.10.25
PTB: Indikator Unggulan untuk MetaTrader 5
MetaTrader5
PTB: Indikator Unggulan untuk MetaTrader 5

Deskripsi Indikator: PTB.mq5 Ikhtisar: Indikator PTB.mq5 dirancang khusus untuk platform trading MetaTrader 5. Indikator ini menghitung dan menampilkan level tinggi dan rendah jangka pendek serta jangka panjang, bersamaan dengan level retracement Fibonacci berdasarkan ekstrem ini. Fitur-Fitur: - Tinggi dan Rendah Jangka Pendek: Indikator ini menghitung harga tertinggi dan terendah dalam periode pendek yang ditentukan oleh pengguna, membantu trader mengidentifikasi level support dan resistance yang segera. - Tinggi dan Rendah Jangka Panjang: Juga menghitung harga tertinggi dan terendah dalam periode yang lebih panjang, memberikan wawasan tentang tren pasar yang lebih luas. - Level Fibonacci: Indikator ini menampilkan level retracement Fibonacci penting (23.6%, 38.2%, 50%, 61.8%, dan 78.6%) berdasarkan tinggi dan rendah jangka panjang, yang banyak digunakan oleh trader untuk mengidentifikasi titik pembalikan potensial di pasar. Parameter Input: - shortLength: Jumlah candle yang dipertimbangkan untuk menghitung tinggi dan rendah jangka pendek. - longLength: Jumlah candle yang dipertimbangkan untuk menghitung tinggi dan rendah jangka panjang. Representasi Visual: - Indikator ini menggunakan warna dan lebar garis yang berbeda untuk setiap garis yang dipetakan: &nbsp; - Tinggi Pendek: Merah (lebar: 3) &nbsp; - Rendah Pendek: Biru (lebar: 3) &nbsp; - Tinggi Panjang: Hijau (lebar: 3) &nbsp; - Rendah Panjang: Oranye (lebar: 3) &nbsp; - Level Fibonacci:&nbsp; &nbsp; &nbsp; &nbsp; - 78.6%: Ungu (lebar: 1) &nbsp; &nbsp; - 23.6%: Aqua (lebar: 1) &nbsp; &nbsp; - 38.2%: Kuning (lebar: 1) &nbsp; &nbsp; - 61.8%: Coklat (lebar: 1) &nbsp; &nbsp; - 50%: Putih (lebar: 3) Logika Perhitungan: - Indikator ini melakukan iterasi pada data harga untuk menghitung nilai tertinggi dan terendah untuk kedua periode, pendek dan panjang. - Kemudian, menghitung level Fibonacci berdasarkan selisih antara tinggi dan rendah jangka panjang.

2024.09.22
Cara Mudah Menggunakan ChartObjectsCopyPaste di MetaTrader 5
MetaTrader5
Cara Mudah Menggunakan ChartObjectsCopyPaste di MetaTrader 5

Pernahkah kamu merasa kesulitan saat ingin menyalin dan menempel objek grafik antara chart yang terbuka? Saya yakin kamu pernah mengalaminya. Menariknya, MetaTrader tidak menyediakan fitur "Copy & Paste" untuk objek-objek tersebut. Satu-satunya cara yang bisa digunakan untuk mendapatkan efek serupa adalah dengan menggunakan template (file tpl). Namun, template ini menyimpan seluruh keadaan chart, termasuk indikator, pengaturan, dan banyak hal tambahan yang mungkin tidak relevan untuk proses yang kamu butuhkan. Oleh karena itu, saya mengembangkan indikator ChartObjectsCopyPaste.mq5. Indikator ini memungkinkan kamu untuk menyalin objek yang dipilih ke clipboard, yang kemudian dapat ditempelkan ke chart lainnya. Tanpa syarat! Indikator ini didasarkan pada indikator lain yang diterbitkan dalam buku algotrading - ObjectGroupEdit.mq5. Silakan ikuti tautan tersebut untuk mempelajari lebih lanjut tentang semua kelas yang mendasari (seperti ObjectMonitor, MapArray, dan lainnya) yang bekerja di belakang layar. Indikator ini tidak memiliki buffer. Indikator ini harus dipasang pada setidaknya 2 chart: chart sumber dari mana kamu ingin menyalin objek, dan chart tujuan tempat kamu berencana untuk menempelkannya. Saat berjalan di chart, indikator ini melacak objek grafik yang ada dan mencatat objek mana yang dipilih. Seperti biasa, perintah "Copy & Paste" bekerja secara berpasangan: Tekan tombol pintas Ctrl+Q untuk menyalin semua objek yang dipilih ke clipboard Windows sebagai teks (kamu bisa menyimpannya dan melihatnya di editor teks, contohnya ada di bawah). Di chart tujuan, tekan Ctrl+J untuk menempelkan semua objek dari clipboard. Kenapa Ctrl+Q/Ctrl+J? Kedua kombinasi tombol ini dipilih secara sukarela dari sedikit pilihan yang ada. Ini karena MetaTrader mencegat dan tidak mentransmisikan banyak tombol pintas ke program MQL. Terutama untuk Ctrl+C/Ctrl+V/Ctrl+Ins/Shift+Ins yang tidak berfungsi dalam konteks ini. Karena kode sumber tersedia, kamu bisa mengubah tombol pintas ke kombinasi lain. Karena indikator ini menggunakan DLL sistem untuk mengakses clipboard Windows, kamu harus mengizinkan impor DLL dalam dialog Properties, pada tab Dependencies. Karena Codebase tidak mengizinkan impor DLL, kode yang berkaitan dengan clipboard dibungkus dalam direktif preprocessor kondisional #ifdef&nbsp;DLL_LINK, jadi silakan hapus komentar pada baris #define DLL_LINK sebelum kompilasi. Jika tidak, kamu akan melihat bagaimana fungsi clipboard hanya menampilkan peringatan sebagai respons terhadap penekanan tombol pintas, dan tidak ada tindakan nyata yang akan dilakukan! Input yang tersedia adalah: MakeAllSelectable - flag untuk membuat semua objek dapat dipilih (yang biasanya false untuk objek yang dibuat secara programatik); LogDetails - flag untuk mencetak semua properti objek yang dipindahkan ke log; Indikator ini tidak memeriksa apakah objek yang ditempel cocok dengan chart tujuan yang sebenarnya, seperti simbol, rentang harga, jumlah sub-window, dll. - kamu harus melakukan ini sendiri. Berikut adalah contoh teks clipboard dengan 2 objek: OBJ_VLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H1 Garis Vertikal 5578&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 enum ENUM_OBJECT_PROPERTY_INTEGER 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_COLOR&nbsp;&nbsp; 55295 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_STYLE&nbsp;&nbsp; 2 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_WIDTH&nbsp;&nbsp; 1 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_BACK&nbsp;&nbsp;&nbsp;&nbsp;0 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_SELECTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TYPE&nbsp;&nbsp;&nbsp;&nbsp;0 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TIME&nbsp;&nbsp;&nbsp;&nbsp;1726739940 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_SELECTABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_CREATETIME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1726847009 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TIMEFRAMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2097151 200&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_LEVELS&nbsp;&nbsp;0 207&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_ZORDER&nbsp;&nbsp;0 208&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_HIDDEN&nbsp;&nbsp;0 1032&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_RAY&nbsp;&nbsp;&nbsp;&nbsp; 1 enum ENUM_OBJECT_PROPERTY_DOUBLE 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_PRICE&nbsp;&nbsp; 1.11449 enum ENUM_OBJECT_PROPERTY_STRING 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_NAME&nbsp;&nbsp;&nbsp;&nbsp;H1 Garis Vertikal 5578 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TEXT&nbsp;&nbsp;&nbsp;&nbsp; 206&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TOOLTIP OBJ_CHANNEL&nbsp;&nbsp;&nbsp;&nbsp; H1 Channel Equidistant 40885&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 enum ENUM_OBJECT_PROPERTY_INTEGER 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_COLOR&nbsp;&nbsp; 255 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_STYLE&nbsp;&nbsp; 0 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_WIDTH&nbsp;&nbsp; 1 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_BACK&nbsp;&nbsp;&nbsp;&nbsp;0 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_SELECTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TYPE&nbsp;&nbsp;&nbsp;&nbsp;5 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TIME&nbsp;&nbsp;&nbsp;&nbsp;1726758000 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TIME.1&nbsp;&nbsp;1726797600 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TIME.2&nbsp;&nbsp;1726758000 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_SELECTABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_CREATETIME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1726847883 12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_TIMEFRAMES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2097151 200&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_LEVELS&nbsp;&nbsp;0 207&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_ZORDER&nbsp;&nbsp;0 208&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_HIDDEN&nbsp;&nbsp;0 1003&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_RAY_LEFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 1004&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_RAY_RIGHT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 1031&nbsp;&nbsp;&nbsp;&nbsp;OBJPROP_FILL&nbsp;&nbsp;&nbsp;&nbsp;0 enum ENUM_OBJECT_PROPERTY_DOUBLE 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_PRICE&nbsp;&nbsp; -28.113879003558715 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_PRICE.1 -21.708185053380777 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_PRICE.2 -48.04270462633452 enum ENUM_OBJECT_PROPERTY_STRING 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_NAME&nbsp;&nbsp;&nbsp;&nbsp;H1 Channel Equidistant 40885 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TEXT&nbsp;&nbsp;&nbsp;&nbsp; 206&nbsp;&nbsp;&nbsp;&nbsp; OBJPROP_TOOLTIP Dan berikut adalah objek-objek tersebut yang ditempelkan di chart:

2024.09.21
Panduan Menggunakan Indikator Rsi Ema Engulfing Bar V3 di MetaTrader 5
MetaTrader5
Panduan Menggunakan Indikator Rsi Ema Engulfing Bar V3 di MetaTrader 5

Halo trader! Kali ini kita akan membahas tentang indikator Rsi Ema Engulfing Bar V3 yang dapat membantu kita dalam mengidentifikasi peluang beli yang potensial di platform MetaTrader 5. Yuk, kita lihat bagaimana cara kerjanya. Kondisi Beli Kondisi RSI: Indeks Kekuatan Relatif (RSI) untuk periode saat ini berada di bawah ambang batas rendah yang ditentukan (RsiLow). Ini menandakan kondisi oversold. Pola Candlestick: Indikator ini memeriksa pola candlestick tertentu dalam tiga lilin berturut-turut: Lilinnya saat ini (1) ditutup lebih tinggi dari pembukaannya (bullish). Lilin sebelumnya (2) ditutup lebih rendah dari pembukaannya (bearish). Penutupan lilin saat ini berada di atas pembukaan lilin sebelumnya. Penutupan lilin saat ini berada di bawah high lilin sebelumnya. Kondisi Moving Average: Penutupan lilin saat ini berada di bawah EMA (Exponential Moving Average). EMA jangka panjang (Shiftpast) berada di bawah EMA jangka pendek (Shiftnow), menunjukkan potensi uptrend. Anda juga dapat mengubah periode penggeseran moving average untuk melihat pergerakan yang lebih tepat, misalnya menggunakan angka 5-6 untuk beli, di mana 5 berada di atas 6, artinya 5 bar yang lalu EMA ID5 berada di atas ID6. Anda bisa mengganti ke 3-4, 7-9, atau 10-13. Sinyal Beli: Jika semua kondisi terpenuhi, maka indikator ini akan menghasilkan sinyal "Beli" dengan tanda panah naik di low lilin saat ini. Indikator ini dirancang untuk mengidentifikasi setup pembalikan bullish/bearish yang potensial. Ia mencari kondisi oversold (RSI rendah) yang dipadukan dengan pola candlestick tertentu yang menunjukkan bahwa tekanan beli mulai mengalahkan tekanan jual. Kondisi moving average membantu mengkonfirmasi arah tren secara keseluruhan.

2024.09.13
Awal Sebelumnya 4 5 6 7 8 9 10 11 12 13 14 Berikutnya Akhir