4 Lampiran Hai semuanya,
Saya seorang pemula dalam pemrograman MQL4 dengan beberapa pengetahuan dalam bahasa pemrograman lain. Saya telah berjuang dengan kode yang tampaknya mudah ini yang saya lampirkan di bawah ini. Pada dasarnya apa yang ingin saya capai adalah memiliki indikator OBV (On Balance Volume) dengan rata-rata bergerak (SMA, EMA, SMMA, atau LWMA) di jendela indikator terpisah di bagian bawah grafik. Ini adalah bagaimana seharusnya terlihat seperti:
Saya menggunakan OBV.mq4 sebagai permulaan dan secara bertahap mulai membangun kode:Saya menambahkan fungsi SetIndexBuffer dan SetIndexStyle di init() untuk buffer kedua yang akan menyimpan nilai MA saya. Saya membuat loop yang melihat ke belakang MA_period = 200 unit waktu di masa lalu, mengambil nilai OBV tersebut, menempatkan semuanya ke dalam larik OBV_vals, dan kemudian menggunakan fungsi iMAOnArray() untuk mendapatkan SMA, EMA, SMMA, atau LWMA. Saya menempatkan nilai rata-rata bergerak yang dikembalikan oleh iMAOnArray() ke dalam MABuffer dengan harapan akan muncul di jendela indikator. Saya berhasil mendapatkan semuanya sampai garis di mana saya menyimpan rata-rata bergerak ke buffer. Saya memiliki nilai MA, saya mencetaknya di jurnal dan sepertinya valid. Namun, saat saya menghapus komentar pada baris MABuffer[i] = nOBVMA dengan maksud menunjukkan nilai MA ini pada layar indikator, semuanya menjadi rusak seperti yang Anda lihat pada gambar ini:
Menariknya, dengan komentar MABuffer[i] = nOBVMA, OBV berfungsi dengan baik:
Ini adalah cuplikan kodenya tetapi saya juga melampirkan kode lengkap di bawah ini.
Kode yang dimasukkan/loop melihat ke belakang MA_period=200 periode dan mengambil/nilai OBV yang sesuai dengan candle tersebut untuk(int j=1; jlt;=MA_period; j ) { nOBV_vals#91;j-1#93; = iOBV(NULL, 0, PRICE_CLOSE, i j); }/menggunakan array nOBV_vals yang baru diisi,/baris ini menghitung MA nOBVMA = iMAOnArray(nOBV_vals, 0, MA_period, 0, MA_method, i);/mencetak nilai rata-rata bergerak Cetak(nilai OBV EMA adalah DoubleToStr(nOBVMA));/tambahkan MA ke MABuffer sehingga muncul di jendela indikator/ketika baris ini diaktifkan, bahkan data OBVBuffer rusak! MABuffer#91;i#93; = nOBVMA;
Jika seseorang dapat membantu seorang pemula yang antusias, saya akan sangat berterima kasih!
Jika Anda memiliki umpan balik lain kepada saya yang muncul di benak Anda ketika melihat masalah saya, jangan ragu untuk membagikannya, saya benar-benar bertekad untuk meningkatkan keterampilan pengkodean MQL4 saya secepat dan seefisien mungkin.
P.S: Saya sadar bahwa saya dapat menambahkan rata-rata bergerak ke indikator OBV di MetaTrader. Namun, OBV dengan MA akan menjadi bagian dari EA masa depan yang saya rencanakan untuk diprogram dan karenanya saya memerlukan indikator dengan buffer OBV dan MA untuk diteruskan ke EA lainnya nanti.
Terima kasih banyak sebelumnya atas bantuan Anda!
https://www.forexfabrikasi.com/attac...2255590709.mq4