Laguerre RSI
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «laguerre_rsi_v1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Laguerre RSI — это пользовательский индикатор для MetaTrader 4, рассчитывающий значение RSI на основе лагерре-сглаживания с настраиваемым коэффициентом гамма. Индикатор отображает основную линию в отдельном окне и позволяет задавать три уровня для определения зон перекупленности и перепроданности.
Индикатор поддерживает сглаживание как цены, так и самого RSI-значения несколькими режимами, а также работу в многотаймфреймном режиме. Линии уровней и точки пересечения отрисовываются на графике в виде горизонтальных линий и стрелок.
Встроенная система уведомлений позволяет настраивать отправку сообщений, звуковых сигналов и электронных писем при пересечении заданных уровней. Индикатор создаёт графические объекты для визуализации уровней на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| Gama | Гамма — Коэффициент гамма для расчёта лагерре-сглаживания, определяет скорость отклика индикатора на изменение цены. |
| PriceType | Тип цены — Тип цены, используемый для расчёта скользящей средней при определении исходной цены. |
| smz: 1...3; if>3 smz=3 (Smooth) | Сглаживание — Режим сглаживания: 1 — простое скользящее среднее, 2 — взвешенное, 3 — расширенное; значения больше 3 приводят к режиму 3. |
| SmoothPrice | Сглаживать цену — Переключатель сглаживания входной цены перед расчётом лагерре-значений. |
| Level1 | Уровень 1 — Верхний уровень для определения пересечений и отрисовки горизонтальной линии на графике. |
| Level2 | Уровень 2 — Средний уровень для отрисовки горизонтальной линии на графике. |
| Level3 | Уровень 3 — Нижний уровень для определения пересечений и отрисовки горизонтальной линии на графике. |
| timeFrame | Таймфрейм — Таймфрейм для многотаймфреймного режима работы индикатора; если не совпадает с текущим, индикатор берёт данные с указанного таймфрейма. |
| ShowLevels | Показывать уровни — Переключатель отображения горизонтальных линий уровней на графике. |
| ShowLevelSig | Показывать сигналы уровней — Переключатель отображения стрелок при нахождении линии индикатора выше уровня 1 или ниже уровня 3. |
| ShowCrossings | Показывать пересечения — Переключатель отображения стрелок на графике при пересечении линией уровня 1 и уровня 3 вверх или вниз. |
| alertsOn | Включить уведомления — Главный переключатель включения системы уведомлений о пересечении уровней. |
| alertsMessage | Сообщения — Переключатель показа всплывающего сообщения на графике при пересечении уровня. |
| alertsSound | Звуковые уведомления — Переключатель воспроизведения звукового сигнала при пересечении уровня. |
| alertsEmail | Email-уведомления — Переключатель отправки электронного письма при пересечении уровня. |
| LevelsColor | Цвет уровней — Цвет линий уровней, отображаемых на графике индикатора. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_minimum 0
#property indicator_maximum 1
#property indicator_color1 Green
#property indicator_color2 Lime
#property indicator_color3 OrangeRed
extern double Gama = 0.70;
extern int PriceType = 0;
extern int Smooth = 0; // smz: 1...3; if>3 smz=3
extern bool SmoothPrice = false;
extern double Level1 = 0.85;
extern double Level2 = 0.50;
extern double Level3 = 0.15;
extern string timeFrame = "Current time frame";
extern bool ShowLevels = true;
extern bool ShowLevelSig = true;
extern bool ShowCrossings = true;
extern bool alertsOn = false;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern color LevelsColor = C'30,33,36';
double MainBuffer[];
double CUpBuffer[];
double CDnBuffer[];
double L0[];
double L1[];
double L2[];
double L3[];
double L4[];
string ShortName;
string IndicatorName;
int TimeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
DeleteBounds();
return(0);
}
int start()
{
// код доступен только после оплаты
}
double LaGuerre(double gamma, int i, int priceType)
{
double Price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);
double RSI = 0.00;
double CU = 0.00;
double CD = 0.00;
if (SmoothPrice)
{
L4[i] = Price;
Price = smooth(L4,i);
}
L0[i] = (1.0 - gamma)*Price + gamma*L0[i+1];
L1[i] = -gamma*L0[i] + L0[i+1] + gamma*L1[i+1];
L2[i] = -gamma*L1[i] + L1[i+1] + gamma*L2[i+1];
L3[i] = -gamma*L2[i] + L2[i+1] + gamma*L3[i+1];
if (L0[i] >= L1[i])
CU = L0[i] - L1[i];
else CD = L1[i] - L0[i];
if (L1[i] >= L2[i])
CU = CU + L1[i] - L2[i];
else CD = CD + L2[i] - L1[i];
if (L2[i] >= L3[i])
CU = CU + L2[Показано первые 50% кода (символов: 6369)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.