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:
- SMA - purata bergerak sederhana;
- EMA - purata bergerak eksponensial;
- SMMA - purata bergerak yang telah diratakan;
- LWMA - purata bergerak berbobot linear;
- JJMA - purata adaptif JMA;
- JurX - penghalusan ultralinear;
- ParMA - penghalusan parabolik;
- T3 - penghalusan eksponensial berganda Tillson;
- VIDYA - penghalusan menggunakan algoritma Tushar Chande;
- 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 //+----------------------------------------------+

Siaran berkaitan
- Indikator Pembukaan Rentang Untuk MetaTrader 5: Panduan Lengkap
- MicroPivots: Indikator Berguna untuk MetaTrader 5
- Panduan Volume Profile + Range v6.0 untuk MetaTrader 5: Indikator Trading Utama
- iSpread: Indikator Spread untuk Perdagangan Pasangan di MetaTrader 5
- Divergence Awesome Oscillator - Indikator untuk MetaTrader 5