Laman utama Indikator Teknikal Siaran

UltraCCI: Indikator Canggih untuk MetaTrader 5

Lampiran
740.zip (21.1 KB, Muat turun 0 kali)

Penulis Asal:

dm34@mail.ru

UltraCCI adalah indikator yang berasaskan CCI (Commodity Channel Index) dan analisis arah trend berdasarkan pelbagai garisan isyaratnya. Algoritma pengiraan garisan isyarat adalah seperti berikut. Kami mempunyai parameter input indikator sebagai data sumber:

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

Setiap nilai tempoh dari pelbagai garisan isyarat dikira menggunakan pembahagian aritmetik:

SignalPeriod(Number)  =  StartLength + Number * Step

di mana nilai pembolehubah Number berbeza dari sifar hingga StepsTotal. Nilai tempoh yang diperoleh ditambah ke dalam array pembolehubah dan digunakan pada setiap tick indikator untuk mendapatkan array nilai RSI yang telah diratakan. Arah trend semasa bagi setiap pemulusan dikira dan juga bilangan trend positif dan negatif untuk keseluruhan array nilai CCI yang telah diratakan. Jumlah akhir bagi trend positif dan negatif akan diratakan semula dan digunakan sebagai garisan indikator yang membentuk awan warna 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 dari amplitud maksimum indikator.

Selain itu, indikator ini juga memberikan kemungkinan untuk menentukan arah perubahan kekuatan trend yang dipaparkan sebagai titik warna. Sekiranya kekuatan trend meningkat, warna titik ini akan sepadan dengan warna awan, jika tidak, titik akan berwarna sebaliknya.

Algoritma pemulusan boleh dipilih dari sepuluh versi yang mungkin:

  1. SMA - purata bergerak sederhana;
  2. EMA - purata bergerak eksponensial;
  3. SMMA - purata bergerak yang telah diratakan;
  4. LWMA - purata bergerak berbobot linear;
  5. JJMA - purata adaptif JMA;
  6. JurX - penghalusan ultralinear;
  7. ParMA - penghalusan parabolik;
  8. T3 - penghalusan eksponensial berganda Tillson;
  9. VIDYA - penghalusan menggunakan algoritma Tushar Chande;
  10. AMA - penghalusan menggunakan algoritma Perry Kaufman.

Perlu diingat bahawa parameter Phase untuk algoritma pemulusan yang berbeza mempunyai makna yang sangat berbeza. Untuk JMA, ia adalah pembolehubah Phase luaran yang berubah dari -100 hingga +100. Untuk T3, ia adalah nisbah pemulusan yang didarab dengan 100 untuk visualisasi yang lebih baik, untuk VIDYA ia adalah tempoh osilator CMO dan untuk AMA ia adalah tempoh EMA yang lambat. Dalam algoritma lain, parameter ini tidak mempengaruhi pemulusan. Untuk AMA, tempoh EMA cepat adalah nilai tetap dan sama dengan 2 secara lalai. Nisbah kenaikan kuasa juga sama dengan 2 untuk AMA.

Indikator ini menggunakan kelas SmoothAlgorithms.mqh (perlu disalin ke terminal_data_folder\MQL5\Include). Penggunaan kelas ini telah diterangkan dengan terperinci dalam artikel "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Parameter input indikator:

//+----------------------------------------------+
//| Parameter input indikator                  |
//+----------------------------------------------+
input int CCI_Period=13;                           // Tempoh indikator CCI
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Harga yang digunakan
//----
input Smooth_Method W_Method=MODE_JJMA;           // Kaedah pemulusan
input int StartLength=3;                          // Tempoh pemulusan awal                    
input int WPhase=100;                             // Parameter pemulusan
//----  
input uint Step=5;                                // Langkah perubahan tempoh
input uint StepsTotal=10;                         // Bilangan perubahan tempoh
//----
input Smooth_Method SmoothMethod=MODE_JJMA;      // Kaedah pemulusan
input int SmoothLength=3;                        // Kedalaman pemulusan
input int SmoothPhase=100;                       // Parameter pemulusan
//----                          
input uint UpLevel=80;                            // Tahap terlebih beli, %%
input uint DnLevel=20;                            // Tahap terlebih jual, %%
input color UpLevelsColor=DarkViolet;             // Warna tahap terlebih beli
input color DnLevelsColor=DarkViolet;             // Warna tahap terlebih jual
input STYLE Levelstyle=DASHDOTDOT_;              // Gaya tahap
input WIDTH LevelsWidth=Width_1;                 // Lebar tahap                       
//+----------------------------------------------+

UltraCCI

Siaran berkaitan

Komen (0)