Beranda Indikator Teknis Postingan

UltraCCI: Indikator Canggih untuk MetaTrader 5

Lampiran
740.zip (21.1 KB, Unduh 0 kali)

Penulis Asli: dm34@mail.ru

UltraCCI adalah sebuah indikator yang didasarkan pada CCI (Commodity Channel Index) dan analisis arah tren dari berbagai garis sinyalnya. Algoritma perhitungan garis sinyalnya adalah sebagai berikut. Kita memiliki parameter input indikator sebagai data sumber:

  • StartLength - nilai awal minimum dari garis sinyal pertama;
  • Step - langkah perubahan periode;
  • StepsTotal - jumlah perubahan periode.

Setiap nilai periode dari banyaknya garis sinyal dihitung menggunakan progresi aritmatika:

SignalPeriod(Number)  =  StartLength + Number * Step

di mana nilai variabel Number berkisar dari nol hingga StepsTotal. Nilai periode yang diperoleh ditambahkan ke dalam array variabel dan digunakan pada setiap tick indikator untuk mendapatkan array nilai RSI yang sudah dihaluskan. Arah tren saat ini untuk setiap penghalusan dihitung dan juga jumlah tren positif dan negatif untuk seluruh array nilai CCI yang sudah dihaluskan ditentukan. Jumlah akhir tren positif dan negatif dihaluskan lagi dan digunakan sebagai garis indikator yang membentuk awan warna yang ditampilkan dengan menggunakan kelas gaya DRAW_FILLING.

Arah tren dalam indikator ini ditentukan oleh warna awan, sementara kekuatannya ditentukan oleh lebar awan. Anda dapat menggunakan level overbought (UpLevel) dan oversold (DnLevel) yang ditetapkan dalam nilai persentase dari amplitudo maksimum indikator.

Selain itu, indikator ini juga menyediakan kemungkinan untuk menentukan arah perubahan kecepatan kekuatan tren yang ditampilkan sebagai titik warna. Jika kekuatan tren meningkat, warna titik ini akan sesuai dengan warna awan, sebaliknya, titik tersebut akan berwarna berbeda.

Algoritma penghalusan dapat dipilih dari sepuluh versi yang mungkin:

  1. SMA - simple moving average;
  2. EMA - exponential moving average;
  3. SMMA - smoothed moving average;
  4. LWMA - linear weighted moving average;
  5. JJMA - adapative average;
  6. JurX - ultralinear smoothing;
  7. ParMA - parabolic smoothing;
  8. T3 - Tillson's multiple exponential smoothing;
  9. VIDYA - smoothing menggunakan algoritma Tushar Chande;
  10. AMA - smoothing menggunakan algoritma Perry Kaufman.

Perlu dicatat bahwa parameter Phase untuk berbagai algoritma penghalusan memiliki arti yang sangat berbeda. Untuk JMA, itu adalah variabel Phase eksternal yang berubah dari -100 hingga +100. Untuk T3, itu adalah rasio penghalusan yang dikalikan dengan 100 untuk visualisasi yang lebih baik, untuk VIDYA adalah periode osilator CMO dan untuk AMA adalah periode EMA lambat. Dalam algoritma lain, parameter ini tidak mempengaruhi penghalusan. Untuk AMA, periode EMA cepat adalah nilai tetap dan sama dengan 2 secara default. Rasio peningkatan ke kekuatan juga sama dengan 2 untuk AMA.

Indikator ini menggunakan kelas dari pustaka SmoothAlgorithms.mqh (yang harus disalin ke terminal_data_folder\MQL5\Include). Penggunaan kelas ini telah dijelaskan secara rinci dalam artikel "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Parameter input indikator:

//+----------------------------------------------+
//| Parameter input indikator                   |
//+----------------------------------------------+
input int CCI_Period=13;                           // Periode indikator CCI
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Harga yang diterapkan
//----
input Smooth_Method W_Method=MODE_JJMA;           // Metode penghalusan
input int StartLength=3;                          // Periode penghalusan awal                    
input int WPhase=100;                             // Parameter penghalusan
//----  
input uint Step=5;                                // Langkah perubahan periode
input uint StepsTotal=10;                         // Jumlah perubahan periode
//----
input Smooth_Method SmoothMethod=MODE_JJMA;      // Metode penghalusan
input int SmoothLength=3;                        // Kedalaman penghalusan
input int SmoothPhase=100;                       // Parameter penghalusan
//----                          
input uint UpLevel=80;                            // Level overbought, %%
input uint DnLevel=20;                            // Level oversold, %%
input color UpLevelsColor=DarkViolet;             // Warna level overbought
input color DnLevelsColor=DarkViolet;             // Warna level oversold
input STYLE Levelstyle=DASHDOTDOT_;              // Gaya level
input WIDTH LevelsWidth=Width_1;                 // Lebar level                       
//+----------------------------------------------+

UltraCCI

Postingan terkait

Komentar (0)