Deskripsi
Class CFractalsOnRingBuffer dirancang untuk menghitung indikator teknikal Fraktal menggunakan algoritma buffer cincin.
Deklarasi
class CFractalsOnRingBufferJudul
#include <IncOnRingBuffer\CFractalsOnRingBuffer.mqh>File CFractalsOnRingBuffer.mqh harus diletakkan di folder IncOnRingBuffer yang perlu dibuat di MQL5\Include\. Dua file dengan contoh yang digunakan oleh class ini terlampir pada deskripsi. File dengan class buffer cincin juga harus ada di folder ini.
Metode Class
//--- metode inisialisasi:bool Init( // jika ada kesalahan, mengembalikan false, jika sukses - true int bars_right = 2, // jumlah candlestick di kanan dari ekstremum int bars_left = 2, // jumlah candlestick di kiri dari ekstremum int size_buffer = 256, // ukuran buffer cincin bool as_series = false // true jika seri waktu, jika tidak - false );
//--- metode perhitungan berdasarkan seri waktu atau buffer indikator:int MainOnArray( // mengembalikan jumlah elemen yang diproses constint rates_total, // ukuran array constint prev_calculated, // elemen yang diproses pada panggilan sebelumnya constdouble& high[], // array maksimum constdouble& low[], // array minimum );
//--- metode perhitungan fraktal berdasarkan elemen seri terpisah dari array high[]:double MainOnHigh( // mengembalikan nilai fraktal atas untuk elemen index-bars_right (bar) constint rates_total, // ukuran array constint prev_calculated, // elemen yang diproses dari array constint begin, // dari mana data signifikan array dimulai constdouble high, // maksimum bar saat ini constint index // indeks elemen (bar) saat ini );
//--- metode perhitungan fraktal bawah berdasarkan elemen seri terpisah dari array low[]:double MainOnLow( // mengembalikan nilai fraktal bawah untuk elemen index-bars_right (bar) constint rates_total, // ukuran array constint prev_calculated, // elemen yang diproses dari array constint begin, // dari mana data signifikan array dimulai constdouble low, // minimum bar saat ini, elemen maksimum dari array saat ini constint index // indeks elemen (bar) saat ini );
//--- metode akses data:int BarsRequired(); // Mengembalikan jumlah candlestick yang diperlukan untuk menggambar indikatorstring Name(); // Mengembalikan nama indikatorstring NameUpper() // Mengembalikan nama fraktal atasstring NameLower() // Mengembalikan nama fraktal bawahint BarsRight() // Mengembalikan jumlah candlestick di kanan dari ekstremumint BarsLeft() // Mengembalikan jumlah candlestick di kiri dari ekstremumint Size(); // Mengembalikan ukuran buffer cincin
Untuk mendapatkan data yang dihitung dari indikator dari buffer cincin, Anda dapat melakukannya seperti pada array biasa. Contohnya:
//--- class dengan metode perhitungan indikator Fraktal:#include <IncOnRingBuffer\CFractalsOnRingBuffer.mqh> CFractalsOnRingBuffer fractals; ... //+------------------------------------------------------------------+//| Fungsi iterasi indikator kustom |//+------------------------------------------------------------------+intOnCalculate(constint rates_total, constint prev_calculated, constdatetime& time[], constdouble& open[], constdouble& high[], constdouble& low[], constdouble& close[], constlong& tick_volume[], constlong& volume[], constint& spread[]) { //--- perhitungan indikator berdasarkan seri waktu harga: fractals.MainOnArray(rates_total, prev_calculated, high, low); ... //--- gunakan data dari buffer cincin "fractals",// misalnya, salin data ke buffer indikator: for(int i=start;i<rates_total-BarsRight && !IsStopped();i++) { UpperBuffer[i] = fractals.upper[rates_total-1-i]; // fraktal atas LowerBuffer[i] = fractals.lower[rates_total-1-i]; // fraktal bawah } ... //--- kembalikan nilai prev_calculated untuk panggilan berikutnya: return(rates_total); }
Perlu dicatat bahwa pengindeksan di buffer cincin sama seperti dalam seri waktu.
Contoh
- Indikator menghitung file
Test_Fractals_OnArrayRB.mq5berdasarkan seri waktu harga. Penggunaan metodeMainOnArray()didemonstrasikan. - File
Test_Fractals_OnValueRB.mq5mendemonstrasikan penggunaan metodeMainOnValue(). Pertama indikator Fraktal dihitung dan digambar. Kemudian berdasarkan buffer cincin indikator ini, satu lagi Fraktal digambar.

Hasil kerja dari Test_Fractals_OnArrayRB.mq5 dengan ukuran buffer cincin 256 elemen

Hasil kerja dari Test_Fractals_OnValueRB.mq5 dengan ukuran buffer cincin 256 elemen
Dalam penulisan kode, pengembangan dari MetaQuotes Software Corp., Integer dan GODZILLA telah digunakan.

Komentar 0