CCI Adaptive Smoother
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «cci adaptive smoother 1_1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
CCI Adaptive Smoother — индикатор для MetaTrader 5, рассчитывающий адаптивный индикатор канала товарных цен (CCI). Период CCI автоматически корректируется на основе текущей волатильности цены, что позволяет индикатору адаптироваться к изменяющимся рыночным условиям. В основе лежит собственная функция сглаживания с алфакоэффициентом, а также скользящие средние для вычисления промежуточных значений.
Индикатор отображает гистограмму положительных и отрицательных значений CCI в отдельном окне и при необходимости строит линию скользящей средней CCI. Уровни перекупленности и перепроданности задаются пользователем и отображаются горизонтальными линиями.
Система уведомлений позволяет получать алерты при смене тренда: текстовые сообщения на график, звуковые сигналы и email-уведомления. Звук воспроизводится из указанного аудиофайла.
Настройки программы
| Настройка | Описание |
|---|---|
| CciPeriod | Базовый период расчёта индикатора CCI в барах. |
| CciPrice | Тип цены, используемой для расчёта индикатора CCI. |
| AdaptPeriod | Период адаптации для расчёта текущей волатильности цены и автоматической корректировки периода CCI. |
| CciMaPeriod | Период скользящей средней линии CCI в барах. |
| CciMaMethod | Метод расчёта скользящей средней линии CCI (например, взвешенная линейная средняя). |
| ShowHistogram | Переключатель отображения гистограммы положительных и отрицательных значений CCI. |
| ShowCciMa | Переключатель отображения линии скользящей средней CCI на графике. |
| OverSold | Уровень перепроданности — нижняя граничная линия индикатора. |
| OverBought | Уровень перекупленности — верхняя граничная линия индикатора. |
| alertsOn | Включает или отключает систему уведомлений о смене тренда. |
| alertsOnCurrent | При включении проверяет смену тренда на текущем баре, при выключении — на предыдущем баре. |
| alertsMessage | Включает отображение текстового уведомления о смене тренда на графике. |
| alertsSound | Включает воспроизведение звукового сигнала при смене тренда. |
| alertsEmail | Включает отправку email-уведомления при смене тренда. |
| soundFile | Путь к звуковому файлу, который воспроизводится при срабатывании звукового уведомления. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Gold
#property indicator_color2 LimeGreen
#property indicator_color3 Red
#property indicator_color4 DarkSlateGray
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_levelcolor DarkOrchid
extern int CciPeriod = 12;
extern ENUM_APPLIED_PRICE CciPrice = PRICE_TYPICAL;
extern int AdaptPeriod = 18;
extern int CciMaPeriod = 7;
extern ENUM_MA_METHOD CciMaMethod = MODE_LWMA;
extern bool ShowHistogram = true;
extern bool ShowCciMa = true;
extern double OverSold = -150;
extern double OverBought = 150;
extern string note = "turn on Alert = true; turn off = false";
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern string soundFile = "alert2.wav";
double cci[];
double cciU[];
double cciD[];
double cciMa[];
double prices[];
double trend[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,k,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
for(i=limit; i>=0; i--)
{
double dev = iStdDev(NULL,0,AdaptPeriod,0,MODE_SMA,PRICE_CLOSE,i);
double avg = iSma(dev,AdaptPeriod,i,0);
if (dev!=0)
double period = CciPeriod*avg/dev;
else period = CciPeriod;
if (period<3) period = 3;
prices[i] = iMA(NULL,0,1,0,MODE_SMA,CciPrice,i);
double avgs = 0; for(k=0; k<CciPeriod; k++) avgs += prices[i+k]; avgs /= CciPeriod;
double devs = 0; for(k=0; k<CciPeriod; k++) devs += MathAbs(prices[i+k]-avgs); devs /= CciPeriod;
if (devs!=0)
cci[i] = iSmooth((prices[i]-avgs)/(0.015*devs),period,i,0);
else Показано первые 50% кода (символов: 4454)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.