UltraMFI - Indikator Hebat untuk MetaTrader 5

Mike 2018.09.28 00:45 20 0 0
Lampiran

Penulis asal: Dmitriy.

UltraMFI adalah indikator yang berasaskan Indeks Aliran Wang (MFI) dan analisis pelbagai garis isyarat. Algoritma pengiraan garis isyarat adalah seperti berikut:

  • StartLength - nilai minimum awal garis isyarat pertama;
  • Step - langkah perubahan tempoh;
  • StepsTotal - jumlah perubahan tempoh.

Setiap nilai tempoh daripada pelbagai garis isyarat dikira menggunakan progresi aritmetik:

SignalPeriod(Number) = StartLength + Number * Step,

di mana nilai pembolehubah Number berkisar dari sifar hingga StepsTotal. Nilai tempoh yang diperoleh ditambahkan ke dalam array pembolehubah dan digunakan pada setiap tick indikator untuk mendapatkan array nilai indikator Larry Williams' Percent Range yang telah dilicinkan. Arah trend semasa untuk setiap pelicinan dikira, dan juga jumlah trend positif dan negatif untuk keseluruhan array nilai MFI yang telah dilicinkan.

Jumlah akhir trend positif dan negatif dilicinkan semula dan digunakan sebagai garis indikator yang membentuk awan berwarna yang dipaparkan dengan bantuan kelas DRAW_FILLING.

Arah trend dalam indikator ini ditentukan oleh warna awan, manakala kekuatannya ditentukan oleh lebar awan. Anda boleh menggunakan tahap terlebih beli (UpLevel) dan terlebih jual (DnLevel) yang ditetapkan dalam nilai peratus daripada julat maksimum indikator.

Algoritma pelicinan boleh dipilih daripada sepuluh versi yang berbeza:

  1. SMA - purata bergerak sederhana;
  2. EMA - purata bergerak eksponen;
  3. SMMA - purata bergerak yang telah dilicinkan;
  4. LWMA - purata bergerak yang ditimbang secara linear;
  5. JJMA - purata adaptif JMA;
  6. JJurX - purata ultralinear;
  7. ParMA - purata parabola;
  8. T3 - pelicinan eksponen berganda Tillson;
  9. VIDYA - pelicinan menggunakan algoritma Tushar Chande;
  10. AMA - pelicinan menggunakan algoritma Perry Kaufman.

Perlu diingatkan bahawa parameter Phase1 dan Phase2 mempunyai makna yang sangat berbeza bagi algoritma pelicinan yang berbeza. Untuk JMA, ia adalah pembolehubah luar Phase yang berubah dari -100 hingga +100. Untuk T3, ia adalah nisbah pelicinan yang didarab dengan 100 untuk visualisasi yang lebih baik, untuk VIDYA ia adalah tempoh osilator CMO dan untuk AMA ia adalah tempoh EMA yang perlahan. Dalam algoritma lain, parameter ini tidak memberi kesan kepada purata. Untuk AMA, tempoh EMA yang cepat adalah tetap dan sama dengan 2 secara default. Nisbah kuasa juga adalah sama dengan 2 untuk AMA.

Indikator ini menggunakan kelas pustaka SmoothAlgorithms.mqh (salin ke <terminal_data_directory>\MQL5\Include). Kelas-kelas ini telah diterangkan secara terperinci dalam artikel Rata-rata Siri Harga untuk Pengiraan Antara Tanpa Menggunakan Penampan Tambahan.

//+----------------------------------------------+
//| Parameter input indikator                  |
//+----------------------------------------------+
input int MFI_Period=13;                            // Tempoh indikator MFI
input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK;   // Volume indikator MFI
//----
input Smooth_Method W_Method=MODE_JJMA; // Kaedah pelicinan
input int StartLength=3;                // Tempoh purata awal
input int WPhase=100;                   // Parameter pelicinan
// untuk JJMA ia berubah dalam julat -100 ... +100 dan mempengaruhi kualiti tempoh peralihan;
// Untuk VIDIA, ia adalah tempoh CMO, untuk AMA, ia adalah tempoh purata bergerak perlahan
//----  
input uint Step=5;        // Langkah perubahan tempoh
input uint StepsTotal=10; // Jumlah perubahan tempoh
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Kaedah pelicinan
input int SmoothLength=3;                   // Kedalaman pelicinan                    
input int SmoothPhase=100                  // Parameter pelicinan
// untuk JJMA ia berubah dalam julat -100 ... +100 dan mempengaruhi kualiti tempoh peralihan;
//----                          
input uint UpLevel=80            // Tahap terlebih beli dalam %%
input uint DnLevel=20            // Tahap terlebih jual dalam %%
input color UpLevelsColor=Blue;   // Warna tahap terlebih beli
input color DnLevelsColor=Blue;   // Warna tahap terlebih jual
input STYLE Levelstyle=DASH_;     // Gaya tahap
input WIDTH LevelsWidth=Width_1; // Lebar tahap
//+----------------------------------------------+

Fig. 1. Indikator UltraMFI

Fig. 1. Indikator UltraMFI

Senarai
Komen 0