← К каталогу
Исходный код · ID 4009

3 MA Cross Magic with Alert

3 ma cross magic with alert.mq5

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор «3 MA Cross Magic with Alert» отображает на графике три скользящие средние (быструю, среднюю и медленную) и отслеживает их пересечения. Для каждой пары линий (быстрая–средняя, быстрая–медленная, средняя–медленная) рисуются стрелки вверх и вниз при смене направления тренда между средними. Поддерживается работа на разных таймфреймах: расчёт может выполняться на таймфрейме, отличном от графика, с интерполяцией значений между барамами.

Индикатор оснащён гибкой системой уведомлений. Срабатывание алертов можно настроить отдельно для каждой пары пересечений, а доставку сообщений выбрать из нескольких способов: всплывающее окно, push-уведомление, электронная почта или звуковой сигнал. Отображение стрелок и линий движущихся средних включается и выключается индивидуально.

Все параметры настраиваются пользователем: периоды и сдвиги каждой скользящей средней, метод усреднения, применяемая цена, тип таймфрейма, множители ATR для размещения стрелок и пороговые значения задержки. Индикатор предназначен для визуального анализа пересечений скользящих средних и автоматического оповещения трейдера о смене направления.

Настройки программы

НастройкаОписание
TimeFrame Таймфрейм, на котором выполняется расчёт индикатора. Может отличаться от таймфрейма текущего графика.
FasterMA Период (количество баров) для быстрой скользящей средней.
FasterShift Сдвиг в барах для отображения быстрой скользящей средней относительно текущего бара.
FasterMode Метод усреднения для быстрой скользящей средней (например, простое, экспоненциальное и т. д.).
FasterPrice Тип цены, используемой для расчёта быстрой скользящей средней (закрытие, открытие, высокая, низкая и т. д.).
MediumMA Период (количество баров) для средней скользящей средней.
MediumShift Сдвиг в барах для отображения средней скользящей средней относительно текущего бара.
MediumMode Метод усреднения для средней скользящей средней.
MediumPrice Тип цены, используемой для расчёта средней скользящей средней.
SlowerMA Период (количество баров) для медленной скользящей средней.
SlowerShift Сдвиг в барах для отображения медленной скользящей средней относительно текущего бара.
SlowerMode Метод усреднения для медленной скользящей средней.
SlowerPrice Тип цены, используемой для расчёта медленной скользящей средней.
showMAs Включает или отключает отображение линий трёх скользящих средних на графике.
alertsOn Главный переключатель, активирующий или деактивирующий все уведомления о пересечениях скользящих средних.
alertsOnCurrent Определяет, генерируются ли алерты на текущем (формирующемся) баре или только на закрытых.
alertsOnFastCrossMiddle Включает или отключает уведомления при пересечении быстрой и средней скользящих средних.
alertsOnFastCrossSlow Включает или отключает уведомления при пересечении быстрой и медленной скользящих средних.
alertsOnMiddleCrossSlow Включает или отключает уведомления при пересечении средней и медленной скользящих средних.
alertsMessage Включает или отключает всплывающие сообщения (Alert) при пересечении скользящих средних.
alertsSound Включает или отключает звуковой сигнал при пересечении скользящих средних.
alertsNotify Включает или отключает отправку push-уведомлений на устройство при пересечении скользящих средних.
alertsEmail Включает или отключает отправку уведомлений о пересечениях по электронной почте.
showarrows_ms Включает или отключает отображение стрелок для пары «быстрая–средняя».
showarrows_fs Включает или отключает отображение стрелок для пары «быстрая–медленная».
showarrows_fm Включает или отключает отображение стрелок для пары «медленная–средняя».
arrowUpCode_ms Код графического символа стрелки вверх для пары «быстрая–средняя».
arrowDownCode_ms Код графического символа стрелки вниз для пары «быстрая–средняя».
arrowUpCode_fs Код графического символа стрелки вверх для пары «быстрая–медленная».
arrowDownCode_fs Код графического символа стрелки вниз для пары «быстрая–медленная».
arrowUpCode_fm Код графического символа стрелки вверх для пары «медленная–средняя».
arrowDownCode_fm Код графического символа стрелки вниз для пары «медленная–средняя» (быстрый выбор в библиотеке символов MetaTrader).
Interpolate Включает или отключает интерполяцию значений скользящих средних между барами при работе на стороннем таймфрейме.
ArrowsOnFirstBar Определяет, будут ли стрелки пересечения отображаться на первом видимом баре графика.
arrowsFMGap Множитель ATR для определения вертикального смещения стрелок пары «медленная–средняя» от точки пересечения.
arrowsFSGap Множитель ATR для определения вертикального смещения стрелок пары «быстрая–медленная» от точки пересечения.
arrowsMSGap Множитель ATR для определения вертикального смещения стрелок пары «быстрая–средняя» от точки пересечения.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 9
#property indicator_color1 Aqua
#property indicator_color2 Orange
#property indicator_color3 DodgerBlue
#property indicator_color4 Red
#property indicator_color5 Blue
#property indicator_color6 FireBrick
#property indicator_color7 Blue
#property indicator_color8 LimeGreen
#property indicator_color9 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 2
#property indicator_width6 2
#property indicator_width7 2
#property indicator_width8 2
#property indicator_width9 2

extern string TimeFrame        = "Current time frame";
extern int    FasterMA         = 10;//5;
extern int    FasterShift      = 0;
extern ENUM_MA_METHOD     FasterMode  = 1;
extern ENUM_APPLIED_PRICE FasterPrice = PRICE_CLOSE;
extern int    MediumMA         = 20;
extern int    MediumShift      = 0;
extern ENUM_MA_METHOD     MediumMode  = 1;
extern ENUM_APPLIED_PRICE MediumPrice = PRICE_CLOSE;
extern int    SlowerMA         = 40;//34;
extern int    SlowerShift      = 0;
extern ENUM_MA_METHOD     SlowerMode  = 1;
extern ENUM_APPLIED_PRICE SlowerPrice = PRICE_CLOSE;
extern bool   showMAs          = true;
extern bool   alertsOn         = false;
extern bool   alertsOnCurrent  = true;
extern bool   alertsOnFastCrossMiddle = true;
extern bool   alertsOnFastCrossSlow   = true;
extern bool   alertsOnMiddleCrossSlow = true;
extern bool   alertsMessage    = true;
extern bool   alertsSound      = false;
extern bool   alertsNotify     = false;
extern bool   alertsEmail      = false;
extern bool   showarrows_ms    = false;//true;
extern bool   showarrows_fs    = true;
extern bool   showarrows_fm    = true;
extern int    arrowUpCode_ms    = 159;
extern int    arrowDownCode_ms  = 159;
extern int    arrowUpCode_fs    = 233;
extern int    arrowDownCode_fs  = 234;
extern int    arrowUpCode_fm    = 116;
extern int    arrowDownCode_fm  = 116;
extern bool   Interpolate      = true;

extern bool   ArrowsOnFirstBar = false;
extern double arrowsFMGap      = 0.50;
extern double arrowsFSGap      = 0.75;
extern double arrowsMSGap      = 1.00;

double CrossfmUp[];
double CrossfmDn[];
double CrossfsUp[];
double CrossfsDn[];
double CrossmsUp[];
double CrossmsDn[];
double ma1[];
double ma2[];
double ma3[];
double trendfm[];
double trendfs[];
double trendms[];

string indicatorFileName;
bool   returnBars;
int    timeFrame;

int init()
{
      // код доступен только после оплаты
   }
int deinit()
{
   return(0);
}

int start()
{
      // код доступен только после оплаты
   } 
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
           int limit=MathMin(Bars-counted_bars,Bars-1);
           if (FasterShift < 0) limit = MathMax(limit,-FasterShift);
           if (MediumShift < 0) limit = MathMax(limit,-MediumShift);
           if (SlowerShift < 0) limit = MathMax(limit,-SlowerShift);
           if (returnBars) { CrossmsUp[0] = limit+1; return(0); }

            if (timeFrame!=Period())
            {
               int shift = -1; if (ArrowsOnFirstBar) shift=1;
               limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
               for (int i=limit; i>=0; i--)
               {
                  int y = iBarShift(NULL,timeFrame,Time[i]);   
                  int x = iBarShift(NULL,timeFrame,Time[i+shift]);            
                     ma1[i]       = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",FasterMA,0,FasterMode,FasterPrice,MediumMA,0,MediumMode,MediumPrice,SlowerMA,0,SlowerMode,SlowerPrice,showMAs,alertsOn,alertsOnCurrent,alertsOnFastCrossMiddle,alertsOnFastCrossSlow,alertsOnMiddleCrossSlow,alertsMessage,alertsSound,alertsNotify,alertsEmail,showarrows_ms,showarrows_fs,showarrows_fm,6,y);
                     ma2[i]       = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",FasterMA,0,FasterMode,FasterPrice,MediumMA,0,MediumMode,MediumPrice,SlowerMA,0,SlowerMode,SlowerPrice,showMAs,alertsOn,alertsOnCurrent,alertsOnFastCrossMiddle,alertsOnFastCrossSlow,alertsOnMiddleCrossSlow,alertsMessage,alertsSound,alertsNotify,alertsEmail,showarrows_ms,showarrows_fs,showarrows_fm,7,y);
                     ma3[i]       = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",FasterMA,0,FasterMode,FasterPrice,MediumMA,0,MediumMode,MediumPrice,SlowerMA,0,SlowerMode,SlowerPrice,showMAs,alertsOn,alertsOnCurrent,alertsOnFastCrossMiddle,alertsOnFastCrossSlow,alertsOnMiddleCrossSlow,alertsMessage,alertsSound,alertsNotify,alertsEmail,showarrows_ms,showarrows_fs,showarrows_fm,8,y);
                     CrossfmUp[i] = EMPTY_VALUE;
                     CrossfmDn[i] = EMPTY_VALUE;
                     CrossfsUp[i] = EMPTY_VALUE;
                     CrossfsDn[i] = EMPTY_VALUE;
                     CrossmsUp[i] = EMPTY_VALUE;
                     CrossmsDn[i] = EMPTY_VALUE;
                     trendfm[i]   = trendfm[i+1];
                     

Показано первые 50% кода (символов: 9779)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
977,90₽ ≈ $11.95