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

multi pair rsi floating levels.mq5

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

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
TimeFrame Таймфрейм, на котором производится анализ и расчёт индикатора.
RsiPeriod Период расчёта индикатора RSI.
RsiPrice Тип цены, используемый для расчёта RSI.
MinMaxPeriod Период расчёта минимального и максимального значений RSI для определения плавающих уровней.
LevelUp Процентный порог верхнего плавающего уровня RSI относительно диапазона минимум-максимум.
LevelDown Процентный порог нижнего плавающего уровня RSI относительно диапазона минимум-максимум.
alertsOn Включает или отключает систему оповещений о пересечении уровней RSI.
alertsOnCurrent Определяет, на каком баре отслеживать пересечение: на текущем или на предыдущем.
alertsMessage Включает отображение всплывающих сообщений при срабатывании оповещений.
alertsSound Включает воспроизведение звукового сигнала при срабатывании оповещений.
alertsEmail Включает отправку электронных писем при срабатывании оповещений о пересечении уровней.
BarsPerSymbol Количество баров для отрисовки каждой валютной пары в окне индикатора.
UniqueID Уникальное имя индикатора, используемое для отображения в окне и идентификации графических объектов.
_ Разделительная настройка для группировки цветовых параметров разделителей.
textColor Цвет текстовых меток названий валютных пар на графике.
backColor Цвет фона разделительных областей между графиками различных валютных пар.
signalCrossUpColor Цвет визуального сигнала при пересечении уровня вверх.
signalCrossDownColor Цвет визуального сигнала при пересечении уровня вниз.
separatorWidth Ширина разделителя между отображаемыми графиками валютных пар.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1  LimeGreen
#property indicator_color2  DarkGray
#property indicator_color3  PaleVioletRed
#property indicator_color4  DarkGray
#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT
#property indicator_style3  STYLE_DOT
#property indicator_width4  2
#property indicator_style4  STYLE_DOT
#property indicator_level1  0
#property indicator_level2  20
#property indicator_level3 -20
#property indicator_levelcolor DarkGray

extern string TimeFrame          = "Current time frame";
extern int    RsiPeriod          = 55;
extern int    RsiPrice           = PRICE_CLOSE;
extern int    MinMaxPeriod       = 100;
extern double LevelUp            = 80.0;
extern double LevelDown          = 20.0;
extern bool   alertsOn           = false;
extern bool   alertsOnCurrent    = true;
extern bool   alertsMessage      = true;
extern bool   alertsSound        = false;
extern bool   alertsEmail        = false;
extern int    BarsPerSymbol      = 70;
extern string Symbols            = "EURUSD;GBPUSD;USDCHF";
extern string UniqueID           = "Multi pair floating RSI";
extern string _                  = "separator colors";
extern color  textColor          = Black;
extern color  backColor          = LightGray;
extern color  signalCrossUpColor   = LimeGreen;
extern color  signalCrossDownColor = HotPink;
extern int    separatorWidth     = 6;

double rsi[];
double rsiUp[];
double rsiMi[];
double rsiDn[];
double trend[];
double cross[];

int      window;  
string   aPairs[];
string   shortName;
double   minValue;
double   maxValue;
double   maxValues[];
int      timeFrame;
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 min, double max)
{
   createLabel(symbol,element,shift+limit+separatorWidth-2,min,max,isSignalCrossing(shift));
   shift += (limit+separatorWidth-1);
}

int isSignalCrossing(int shift)
{
   return(cross[shift]);
}

void calculateIndicator()
{
   int i,counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
           int limit=MathMax(Bars-counted_bars,Bars-1);

   for(i=limit; i>=0; i--)
   {
      rsi[i]        = iRSI(NULL,0,RsiPeriod,PRICE_CLOSE,i);
      double rsiMin = rsi[ArrayMinimum(rsi,MinMaxPeriod,i)];
      double rsiMax = rsi[ArrayMaximum(rsi,MinMaxPeriod,i)];
         double range = rsiMax-rsiMin;
            rsiDn[i]  = rsiMin+range*LevelDown/100.0;
            rsiMi[i]  = rsiMin+range*0.5;
            rsiUp[i]  = rsiMin+range*LevelUp/100.0;
            trend[i]   = 0;
            cross[i]   = 0;
               if (rsi[i]>rsiUp[i]) trend[i] =  1;
               if (rsi[i]<rsiDn[i]) trend[i] = -1;
               if (trend[i]!=trend[i+1]) cross[i] = trend[i];
   }
   manageAlerts();
}

double work

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

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

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

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

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

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

Стоимость полного кода
771,60₽ ≈ $9.43