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

multi_pair_rapid_rsi_2.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор рассчитывает сглаженный RSI для нескольких валютных пар одновременно и отображает результаты на одном графике. Расчёт основан на разнице двух скользящих средних (iMA), накоплении приростов и приведении к шкале с центром в нуле. Данные каждой пары выводятся в виде гистограмм с разделителями и текстовыми метками.

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

Множество пар задаётся через точку с запятой в строке символов. Для каждой пары рассчитывается отдельная серия данных, которая смещается по горизонтали с учётом ширины разделителя. Индикатор работает в отдельном окне и совместим с платформой MetaTrader 5.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором рассчитываются значения индикатора
RsiPeriod Период RSI — Период расчёта RSI
RsiPrice Тип цены RSI — Тип цены, используемой при расчёте RSI
RsiLevelUp Верхний уровень RSI — Верхний уровень RSI, при пересечении которого формируются гистограммы вверх
RsiLevelDown Нижний уровень RSI — Нижний уровень RSI, при пересечении которого формируются гистограммы вниз
MaPeriod Период скользящей средней — Период скользящей средней, применяемой при расчёте сглаженного RSI
MaMethod Метод скользящей средней — Метод сглаживания скользящей средней, используемой при расчёте индикатора
alertsOn Уведомления включены — Главный переключатель включения всех уведомлений
alertsOnCurrent Уведомления для текущего бара — Переключатель выбора: уведомления для текущего бара или для предыдущего
alertsMessage Всплывающие сообщения — Переключатель всплывающих сообщений при пересечении уровней
alertsSound Звуковые оповещения — Переключатель воспроизведения звукового сигнала при пересечении уровней
alertsEmail Email-оповещения — Переключатель отправки email-оповещений при пересечении уровней
BarsPerSymbol Баров на символ — Количество баров для расчёта значений каждой валютной пары
UniqueID Уникальный идентификатор — Уникальный идентификатор индикатора, используемый для именования объектов на графике
_ Разделитель цветов — Текстовый разделитель для группировки параметров настройки цветов
textColor Цвет текста — Цвет текста меток названий валютных пар
backColor Цвет фона — Цвет фона прямоугольников-разделителей между парами
zeroCrossUpColor Цвет пересечения вверх — Цвет прямоугольника при пересечении уровня вверх
zeroCrossDownColor Цвет пересечения вниз — Цвет прямоугольника при пересечении уровня вниз
separatorWidth Ширина разделителя — Ширина визуального разделителя между данными разных валютных пар
Получить полный код

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

#property indicator_separate_window
#property  indicator_buffers 5
#property  indicator_color1  LimeGreen
#property  indicator_color2  LimeGreen
#property  indicator_color3  PaleVioletRed
#property  indicator_color4  PaleVioletRed
#property  indicator_color5  DarkGray
#property  indicator_width1  2
#property  indicator_width3  2
#property  indicator_width5  2
#property  indicator_minimum -55
#property  indicator_maximum  55

extern ENUM_TIMEFRAMES    TimeFrame          = PERIOD_CURRENT;
extern double             RsiPeriod          = 14;
extern ENUM_APPLIED_PRICE RsiPrice           = PRICE_CLOSE;
extern double             RsiLevelUp         = 80;
extern double             RsiLevelDown       = 20;
extern int                MaPeriod           =  5;
extern ENUM_MA_METHOD     MaMethod           =  0;
extern bool               alertsOn           = false;
extern bool               alertsOnCurrent    = true;
extern bool               alertsMessage      = true;
extern bool               alertsSound        = false;
extern bool               alertsEmail        = false;
extern int                BarsPerSymbol      = 100;
extern string             Symbols            = "EURUSD;GBPUSD;USDCHF";
extern string             UniqueID           = "Multi pair rapid rsi";
extern string             _                  = "separator colors";
extern color              textColor          = Black;
extern color              backColor          = DarkGray;
extern color              zeroCrossUpColor   = LimeGreen;
extern color              zeroCrossDownColor = HotPink;
extern int                separatorWidth     = 6;

double histouu[];
double histoud[];
double histodd[];
double histodu[];
double value[];
double work[];
double slope[];
double trend[];

int      window;  
string   aPairs[];
string   shortName;
double   minValue;
double   maxValue;
double   maxValues[];
bool     calculateValue;
string   indicatorFileName;

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

int deinit()
{
   for (int i = 0; i < ArraySize(aPairs); i++)
   { 
         ObjectDelete(shortName+i);
         ObjectDelete(shortName+i+i);
   }         
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }

void plotGraph(string symbol,int limit, int& shift,int element, double max)
{
   for(int i=limit; i>=0; i--)
   {   
      value[i+shift]   = work[i+shift];
      histouu[i+shift] = EMPTY_VALUE;
      histoud[i+shift] = EMPTY_VALUE;
      histodd[i+shift] = EMPTY_VALUE;
      histodu[i+shift] = EMPTY_VALUE;
      if (work[i+shift]>RsiLevelUp-50.0)
         if (slope[i+shift]==1)
               histouu[i+shift] = work[i+shift];
         else  histoud[i+shift] = work[i+shift];
      if (work[i+shift]<RsiLevelDown-50.0)
         if (slope[i+shift]==-1)
               histodd[i+shift] = work[i+shift];
         else  histodu[i+shift] = work[i+shift];
   }
   createLabel(symbol,element,shift+limit+separatorWidth-2,max,isSignalCrossing(shift));

   shift += (limit+separatorWidth-1);
}

int isSignalCrossing(int shift)
{
   if (work[shift]>RsiLevelUp  -50 && work[shift+1]<=RsiLevelUp  -50) return( 1);
   if (work[shift]<RsiLevelDown-50 && work[shift+1

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

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

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

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

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

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

Стоимость полного кода
765,80₽ ≈ $9.36