Mengenal Nilai dalam Parameter OnCalculate - Indikator untuk MetaTrader 5

Mike 2018.12.25 12:11 9 0 0
Lampiran

Halo, para trader! Kali ini kita akan membahas sebuah utilitas menarik bagi kalian yang baru mulai belajar pemrograman indikator atau bagi kalian yang ingin melihat nilai yang diberikan oleh fungsi OnCalculate dan beberapa fungsi lainnya.
Indikator ini menunjukkan:
1) Nilai terbaru yang diberikan dari panggilan OnCalculate terbaru.
2) Nilai sebelumnya dari panggilan OnCalculate sebelumnya.
3) Nilai pertama yang didapat dari eksekusi OnCalculate yang pertama kali.
4) Nilai setiap seri array, baik as_series atau not_series, dengan kemampuan untuk mengubah nilai seri hanya dengan mengklik tampilan.

Versi 1.10 menambahkan kemampuan untuk mengubah secara dinamis apakah array disetel sebagai seri atau tidak - cukup klik pada teksnya. Selain itu, nilai Window Bars dan First visible Bar juga disetel secara dinamis dengan perubahan grafik. Tampilan ON/OFF menunjukkan apa yang akan terjadi dengan pengaturannya pada eksekusi OnCalculate berikutnya, dibandingkan dengan apa yang terjadi pada eksekusi terbaru.

Versi 1.20 menambahkan kemampuan untuk memilih apakah indikator akan mengatur array ke as_series atau not_series, juga hanya dengan mengklik teksnya. Sekarang indikator juga menampilkan kedua ujung dari array waktu dan kedua ujung dari buffer iMA. Perubahan ini bertujuan untuk memperjelas perbedaan antara array as_series dan not_series. Selain itu, tampilan sekarang diperbarui sesuai kebutuhan menggunakan handler OnTimeEvent, bukan pada setiap kutipan. Ini mengurangi waktu eksekusi OnCalculate dari sekitar 300 ms menjadi kurang dari 1 ms - kode untuk memeriksa waktu eksekusi tetap ada di OnCalculate dan hanya perlu dibuka komentarnya untuk menampilkan milidetik eksekusi.

Gambar di bawah ini menunjukkan nilai yang ditampilkan oleh utilitas OnCalculate_Values. Perhatikan tiga nilai, dipisahkan oleh '/', yang memisahkan "Nilai Terbaru", "Nilai Sebelumnya", dan "Nilai Pertama". Nilai OnCalculate disetel ke 'as_series' atau 'not_series' dengan setiap peristiwa OnCalculate - ketika Set Arrays diaktifkan 'ON', jika tidak, mereka dibiarkan pada nilai default terminal. Perhatikan nilai setelah nama array dalam tanda kurung, nilai tersebut menunjukkan dari bar mana nilai tersebut berasal - nilai indeks '0', atau 'nilai pada indeks maksimum'.

Tampilan Nilai OnCalculate

    Kode ini mengimplementasikan satu garis indikator, plot dari harga Open setiap bar seperti yang diberikan oleh iMA; tujuannya adalah untuk menyediakan buffer untuk menggunakan fungsi "BarsCalculated" dan menampilkan indikator saat disetel ke 'as_series' atau 'not_series'. Mengklik iMA_Val[0] mengatur buffer iMA ke as_series atau not_series hanya sekali, saat diklik; array indikator iMA tidak disetel dengan setiap panggilan OnCalculate.

    Kumpulan array menyimpan properti dari setiap objek tampilan (OBJ_LABEL) dalam tampilan:

    Fungsi "ArrayGetAsSeries" digunakan untuk menentukan apakah array dalam parameter OnCalculate adalah array seri waktu atau bukan, dan tampilan menunjukkan hasilnya (As_Series atau Not_Series) - tampilan menunjukkan bahwa array ini awalnya bukan seri, atau dari satu panggilan ke panggilan berikutnya setelah disetel sebagai seri (fungsi SetAsSeries hanya menyetelnya sebagai seri ketika diaktifkan, membiarkannya kembali ke default saat dimatikan - tidak menyetel 'as series' menjadi false).

    Array dengan 3 anggota, ary_OnCalcVals, menyimpan 1) Nilai Terbaru, 2) Nilai Sebelumnya, dan 3) Nilai Pertama yang ditemukan dalam parameter OnCalculate. Fungsi CopyNewToOld dan MoveNewTo mengambil nilai saat ini untuk setiap parameter tampilan dan menempatkannya dalam penyimpanan historis yang disediakan oleh ary_OnCalcVals.


    Daftar
    Komentar 0