(jh) heiken jurik.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «(jh) heiken jurik.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 5 рассчитывает и отображает свечи Heikin Ashi с возможностью применения адаптивного сглаживания Jurik или стандартных скользящих средних. Тренд направления визуализируется гистограммами в отдельном окне, что позволяет оценивать динамику цены без учёта рыночного шума.
Индикатор предоставляет два режима расчёта: с использованием пользовательского сглаживающего фильтра Jurik (включён по умолчанию) или через стандартные функции скользящих средних MQL5. Параметр Step позволяет дополнительно сглаживать отображаемые значения, игнорируя незначительные изменения.
Встроенная система уведомлений поддерживает всплывающие сообщения, звуковые сигналы и email-оповещения при смене направления тренда. Все настройки доступны через диалог параметров индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| MaPeriod | Период скользящей средней, используемый при отключённом режиме Jurik. Определяет количество баров, учитываемых при расчёте скользящей для цен Heikin Ashi. |
| MaMetod | Метод расчёта скользящей средней, применяемый при отключённом режиме Jurik. Используется в качестве альтернативы сглаживанию Jurik для вычисления цен Heikin Ashi. |
| Step | Шаг сглаживания отображаемых значений Heikin Ashi. Значения, изменяющиеся менее чем на заданный шаг в пунктах, приравниваются к предыдущим, что уменьшает визуальный шум на графике. |
| BetterFormula | Переключатель альтернативной формулы расчёта цены закрытия свечей Heikin Ashi. При активном значении используется упрощённая формула с учётом соотношения диапазонов, при неактивном — классическое среднее арифметическое четырёх цен. |
| jurik | Переключатель режима сглаживания. При активном значении для расчёта цен Heikin Ashi используется адаптивный фильтр Jurik, при неактивном — стандартные скользящие средние MQL5. |
| Length | Длина сглаживания для фильтра Jurik. Определяет период адаптивного сглаживающего алгоритма, используемого при расчёте цен Heikin Ashi. Активен только при включённом режиме Jurik. |
| Phase | Параметр фазы сглаживания Jurik. Влияет на скорость реакции адаптивного фильтра на изменение цены. Допустимые значения в диапазоне от -100 до 100. |
| alertsOn | Главный переключатель системы уведомлений. При активном значении индикатор отслеживает смену направления тренда и инициирует соответствующие уведомления. |
| alertsOnCurrent | Переключатель определения бара для проверки тренда. При активном значении проверяется текущий бар, при неактивном — предыдущий завершённый бар. |
| alertsMessage | Переключатель всплывающих сообщений на графике при смене направления тренда Heikin Ashi. Работает только если главный переключатель уведомлений активен. |
| alertsSound | Переключатель воспроизведения звукового сигнала при смене направления тренда Heikin Ashi. Работает только если главный переключатель уведомлений активен. |
| alertsEmail | Переключатель отправки email-уведомлений при смене направления тренда Heikin Ashi. Работает только если главный переключатель уведомлений активен. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 C'100,130,240';
#property indicator_color2 C'247,0,0';
#property indicator_color3 C'20,97,255';
#property indicator_color4 C'242,100,120';
#property indicator_width1 8
#property indicator_width2 8
#property indicator_width3 8
#property indicator_width4 8
#property indicator_minimum 0
#property indicator_maximum 2
extern int MaPeriod = 2;
extern int MaMetod = 2;
extern int Step = 10;
extern bool BetterFormula = true;
extern bool jurik = true;
extern int Length = 2;
extern double Phase = 0;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
double histUp1[];
double histDn1[];
double histUp2[];
double histDn2[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double trend[][2];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
double maOpen, maClose, maLow, maHigh;
double haOpen, haClose, haLow, haHigh;
int counted_bars=IndicatorCounted();
int pointModifier;
int i,r,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if (ArrayRange(trend,0)!=Bars) ArrayResize(trend,Bars);
if (Digits==3 || Digits==5)
pointModifier = 10;
else pointModifier = 1;
for(i=limit,r=Bars-i-1; i >= 0; i--,r++)
{
if (jurik)
{
maOpen = iSmooth(Open[i], Length,Phase,i, 0);
maClose = iSmooth(Close[i],Length,Phase,i,10);
maLow = iSmooth(Low[i], Length,Phase,i,20);
maHigh = iSmooth(High[i], Length,Phase,i,30);
}
else
{
maOpen = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_OPEN ,i);
maClose = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_CLOSE,i);
maLow = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_LOW ,i);
maHigh = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_HIGH ,i);
}
if (BetterFormula) {
if (maHigh!=maLow)
haClose = (maOpen+maClose)/2+(((maClose-maOpen)/(maHigh-maLow))*MathAbs((maClose-maOpen)/2));
else haClose = (maOpen+maClose)/2; }
else haClose = (maOpen+maHigh+maLow+maClose)/4;
haOpen = (ExtMapBuffer3[i+1]+ExtMapBuffer4[i+1])/2;
haHigh = MathMax(maHigh, MathMax(haOpen,haClose));
haLow = MathMin(maOpen, MathMin(haOpen,haClose));
if (haOpen<haClose) { ExtMapBuffer1[i]=haLow; ExtMapBuffer2[i]=haHigh; }
else { ExtMapBuffer1[i]=haHigh; ExtMapBuffer2[i]=haLow; }
ExtMapBuffer3[i]=haOpen;
ExtMapBuffer4[i]=haClose;
if (Step>0)
{
if( MathAbs(ExtMapBuffer1[i]-ExtMapBuffer1[i+1]) < Step*pointModifier*Point ) ExtMapBuffer1[i]=ExtMapBuffer1[i+1];
if( MathAbs(ExtMapBuffer2[i]-ExtMapBuffer2[i+1]) < Step*pointModifier*Point ) ExtMapBuffer2[i]=ExtMapBuffer2[i+1];
if( MathAbs(ExtMapBuffer3[i]-ExtMapBuffer3[i+1]) < Step*pointModifier*Point ) ExtMapBuffer3[i]=ExtMapBuffer3[i+1];
if( MathAbs(ExtMapBuffer4[i]-ExtMapBuffer4[i+1]) < Step*pointModifier*Point ) ExtMapBuffer4[i]=ExtMПоказано первые 50% кода (символов: 5893)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.