(c) jurik ma-signal.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «(c) jurik ma-signal.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает свечи Хайкин Аши на графике MetaTrader 5 с возможностью применения сглаживания Юрика или стандартной скользящей средней. Два гистограммных буфера визуализируют направление тренда, два дополнительных буфера отображают открытие и закрытие преобразованных свечей.
Расчёт цены закрытия Хайкин Аши может использовать улучшенную формулу с нормализацией по диапазону или классический усреднённый метод. При включённом параметре Step значения буферов сглаживаются с шагом в пунктах, уменьшая визуальный шум.
Индикатор отслеживает смену направления тренда и при изменении сигнала отправляет уведомления: всплывающие сообщения, звуковые сигналы или email-рассылки. Уведомления можно ограничить только текущей свечой или применять ко всем барам.
Настройки программы
| Настройка | Описание |
|---|---|
| MaPeriod | Период скользящей средней, применяемой для расчёта цен при отключённом сглаживании Юрика. |
| MaMetod | Метод скользящей средней, применяемый при отключённом сглаживании Юрика. |
| Step | Шаг сглаживания в пунктах, при котором значения буферов принудительно приравниваются к предыдущим при разнице меньше заданного шага. |
| BetterFormula | Включает расчёт цены закрытия Хайкин Аши по улучшенной формуле с нормализацией диапазона вместо классического среднего арифметического четырёх цен. |
| jurik | Включает сглаживание Юрика вместо стандартной скользящей средней для расчёта цен Хайкин Аши. |
| Length | Длина сглаживания, используемая при расчёте индикатора Юрика. |
| Phase | Фазовый параметр сглаживания Юрика, влияющий на скорость реакции индикатора. |
| alertsOn | Включает систему уведомлений о смене направления тренда. |
| alertsOnCurrent | Ограничивает уведомления только текущим баром, а не предыдущим. |
| alertsMessage | Включает отправку всплывающих сообщений на графике при смене направления тренда. |
| alertsSound | Включает воспроизведение звукового сигнала при смене направления тренда. |
| alertsEmail | Включает отправку email-уведомлений при смене направления тренда. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrNONE;
#property indicator_color2 clrNONE;
#property indicator_color3 C'238,125,218';
#property indicator_color4 C'55,193,233';
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 6
#property indicator_width4 6
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 ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double trend[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
double maOpen, maClose, maLow, maHigh;
double haOpen, haClose, haLow, haHigh;
int counted_bars=IndicatorCounted();
int pointModifier;
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = Bars-counted_bars;
if (Digits==3 || Digits==5)
pointModifier = 10;
else pointModifier = 1;
for(int pos=limit; pos >= 0; pos--)
{
if (jurik)
{
maOpen = iSmooth(Open[pos], Length,Phase,pos,0);
maClose = iSmooth(Close[pos],Length,Phase,pos,10);
maLow = iSmooth(Low[pos], Length,Phase,pos,20);
maHigh = iSmooth(High[pos], Length,Phase,pos,30);
}
else
{
maOpen = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_OPEN, pos);
maClose = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_CLOSE,pos);
maLow = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_LOW, pos);
maHigh = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_HIGH, pos);
}
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[pos+1]+ExtMapBuffer4[pos+1])/2;
haHigh = MathMax(maHigh, MathMax(haOpen,haClose));
haLow = MathMin(maOpen, MathMin(haOpen,haClose));
if (haOpen<haClose) { ExtMapBuffer1[pos]=haLow; ExtMapBuffer2[pos]=haHigh; }
else { ExtMapBuffer1[pos]=haHigh; ExtMapBuffer2[pos]=haLow; }
ExtMapBuffer3[pos]=haOpen;
ExtMapBuffer4[pos]=haClose;
if (Step>0)
{
if( MathAbs(ExtMapBuffer1[pos]-ExtMapBuffer1[pos+1]) < Step*pointModifier*Point ) ExtMapBuffer1[pos]=ExtMapBuffer1[pos+1];
if( MathAbs(ExtMapBuffer2[pos]-ExtMapBuffer2[pos+1]) < Step*pointModifier*Point ) ExtMapBuffer2[pos]=ExtMapBuffer2[pos+1];
if( MathAbs(ExtMapBuffer3[pos]-ExtMapBuffer3[pos+1]) < Step*pointModifier*Point ) ExtMapBuffer3[pos]=ExtMaПоказано первые 50% кода (символов: 5282)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.