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

!!!-mt4 x-xardg-rsi.mq5

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

!!! 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 общих теговpro +.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
RSIper Период расчёта индикатора RSI.
Price Тип цены, используемый для расчёта RSI.
RSIModifier Множитель, применяемый к разнице RSI и 50 перед сглаживанием.
SmoothLength Длина сглаживания для фильтрации значений RSI.
SmoothPhase Фазовый сдвиг при сглаживании.
ShowHistogram Включает отображение гистограммы значений RSI.
alertsOn Включает систему оповещений.
alertsOnZoneEnter Оповещать при входе в зону.
alertsOnCurrent Проверять оповещения на текущем баре.
alertsMessage Выводить всплывающие сообщения при срабатывании оповещений.
alertsSound Воспроизводить звуковой сигнал при оповещении.
alertsEmail Отправлять оповещения по электронной почте.
verticalLinesVisible Включает отображение вертикальных линий.
verticalLinesID Идентификатор для имён вертикальных линий.
verticalLinesShowBreak Показывать вертикальные линии при смене тренда.
verticalLinesShowRetrace Показывать вертикальные линии при откате.
verticalLinesUpColor Цвет вертикальных линий для восходящего тренда.
verticalLinesDownColor Цвет вертикальных линий для нисходящего тренда.
verticalLinesStyle Стиль вертикальных линий.
verticalLinesWidth Ширина вертикальных линий.
STR05 Текстовая метка для группы настроек панели.
showBOXtxt2 Показывать текстовую панель с информацией о состоянии.
PanelBorderWidth Ширина границы панели отображения текстовой информации.
PanelBorderColor Цвет границы панели отображения текстовой информации.
Получить полный код

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

#property description                                                                          "[!!!-MT4 X-XARDg-RSI]"
#define Version                                                                                          "[XARDg-RSI]"

#property description "THIS IS A FREE INDICATOR"
#property description "                                                      "
#property description "Welcome to the World of Forex"
#property description "Let light shine out of darkness and illuminate your world"
#property description "and with this freedom leave behind your cave of denial"
#property indicator_separate_window
#property indicator_buffers  14
#property indicator_color1   Blue
#property indicator_color2   Maroon
#property indicator_color3   Blue
#property indicator_color4   Maroon
#property indicator_color5   Black
#property indicator_color6   Black
#property indicator_color7   DeepSkyBlue
#property indicator_color8   PaleVioletRed
#property indicator_color9   DimGray
#property indicator_color10  DeepSkyBlue
#property indicator_color11  DeepSkyBlue
#property indicator_color12  PaleVioletRed
#property indicator_color13  PaleVioletRed

#property indicator_width1   20
#property indicator_width2   20
#property indicator_width3   20
#property indicator_width4   20
#property indicator_width5   20
#property indicator_width6   20
#property indicator_width7   1
#property indicator_width8   1
#property indicator_width9   3
#property indicator_width10   3
#property indicator_width11   3
#property indicator_width12   3
#property indicator_minimum  -25
#property indicator_maximum   25
#property indicator_height   100
#define lvl1 "lvl1"
#define lvl2 "lvl2"

 string TimeFrame                     = "Current time frame";
 extern int    RSIper                 = 20;
 extern ENUM_APPLIED_PRICE Price      = PRICE_CLOSE;
 extern double RSIModifier            = 0.9;
 double LevelUp                       =  1.;
 double LevelDn                       = -1.;
 extern double SmoothLength           =  5;
 extern double SmoothPhase            =  0;
 extern bool   ShowHistogram          = false;
 bool   Interpolate                   = true;
 extern bool   alertsOn               = false;
 extern bool   alertsOnZoneEnter      = false;
 extern bool   alertsOnCurrent        = false;
 extern bool   alertsMessage          = false;
 extern bool   alertsSound            = false;
 extern bool   alertsEmail            = false;
 extern bool   verticalLinesVisible   = false;
 extern string verticalLinesID        = "RsiSmoothLines";
 extern bool   verticalLinesShowBreak   = false;
 extern bool   verticalLinesShowRetrace = false;
 extern color  verticalLinesUpColor   = DeepSkyBlue;
 extern color  verticalLinesDownColor = PaleVioletRed;
 extern ENUM_LINE_STYLE verticalLinesStyle = STYLE_DOT;
 extern int    verticalLinesWidth     = 2;

extern string STR05                      = "<<<==== [05] BOXtxt2 Settings ====>>>";
  extern bool showBOXtxt2                 = true;
   extern int PanelBorderWidth           = 1;
 extern color PanelBorderColor           = C'120,120,120';
   extern int moveTxtLR                  = 0,moveTxtUD=0,FontSize=15; int BOXsize2; string ID,BOXtxt2; color BOXclr2;

   double rsi[],rsiUa[],rsiUb[],rsiDa[];
   double rsiDb[],rsiHu[],rsiHd[],trend[];
   string indicatorFileName;
   bool   returnBars,calculateValue;
   int    timeFrame;
   double UpBackgroundZone[], DownBackgroundZone[],UpBackgroundZone2[], DownBackgroundZone2[],GrayBackgroundZoneup[],GrayBackgroundZonedn[];

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

   int deinit(){CleanUpOnIsle6();  string lookFor = verticalLinesID+":";  int lookForLength = StringLen(lookFor);
   for(int i=ObjectsTotal()-1; i>=0; i--){string objectName = ObjectName(i);
   if(StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);}  return(0);}

   int start(){
      // код доступен только после оплаты
   }//CreateLVL();  
   int Win=WindowFind("RSI");  if(Win==-1) Win=0;
   int counted_bars=IndicatorCounted();  int i,k,n,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;   limit = MathMin(Bars-counted_bars,Bars-1);
   if(returnBars){rsiHu[0] = MathMin(limit+1,Bars-1); return(0);}

   if(calculateValue || timeFrame == _Period){
   if(!calculateValue && trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
   if(!calculateValue && trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
   for(i=limit;i>=0;i--){CleanUpOnIsle6();
       rsi[i] = iSmooth(RSIModifier*(iRSI(NULL,0,RSIper,Price,i)-50.0),SmoothLength,SmoothPhase,i);
   if(ShowHistogram){
       rsiHu[i] = EMPTY_VALUE;
       rsiHd[i] = EMPTY_VALUE;
   if(rsi[i]>0) rsiHu[i] = rsi[i];
   if(rsi[i]<0) rsiHd[i] = rsi[i];} 
       rsiUa[i] = rsiUb[i] = EMPTY_VALUE;
       rsiDa[i] = rsiDb[i] = EMPTY_VALUE;           
       trend[i] = trend[i+1];

   if(rsi[i]<LevelUp && rsi[i]>LevelDn) trend[i]= 0;
   BOXtxt2=" WAITING..."; BOXclr2=C'30,40,50'; BOXsize2=124;
   if(rsi[i]>LevelUp){trend[i]= 1; BOXtxt2=" BUYS ONLY - CLOSE ALL SELL TRADES"; BOXclr2=clrBlue; BOXsize2=430;}
   if(rsi[i]<LevelDn){trend[i]=-1; BOXtxt2="SELLS ONLY - CLOSE ALL BUY TRADES"; BOXclr2=clrCrimson; BOXsize2=430;}

               UpBackgroundZone[i] = EMPTY_VALUE;
               DownBackgroundZone[i] = EMPTY_VALUE;
               UpBackgroundZone2[i] = EMPTY_VALUE;
               DownBackgroundZone2[i] = EMPTY_VALUE;
               GrayBackgroundZoneup[i] = EMPTY_VALUE;
               GrayBackgroundZonedn[i] = EMPTY_VALUE;
   if(trend[i] ==0) {GrayBackgroundZoneup[i]  = 100; GrayBackgroundZonedn[i]  = -100;}            
   else if(trend[i] ==-1) {DownBackgroundZone[i]  = 100; DownBackgroundZone2[i]  = -100; }
   else if(trend[i] == 1) {UpBackgroundZone[i]  = 100; UpBackgroundZone2[i]  = -100; } 

   if(!calculateValue && trend[i] ==  1) PlotPoint(i,rsiUa,rsiUb,rsi);
   if(!calculateValue && trend[i] == -1) PlotPoint(i,rsiDa,rsiDb,rsi);

	if(showBOXtxt2){SetPanel2(0,ID+"Drak1",1,0,0,0,BOXsize2,22,BOXclr2,PanelBorderColor,PanelBorderWidth,false);
            ObjectSetInteger(0,ID+"Drak1",OBJPROP_BGCOLOR,BOXclr2);
                   SetLabel2(0,ID+"Drak2",1,0,4,0,BOXtxt2,16,"Arial Bold",clrSilver,0,false,true,0,ANCHOR_LEFT_UPPER);}

       manageLines(i);}  manageAlerts();  return(0);}   

   limit = fmax(limit,fmin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/_Period));
   for (i=limit;i>=0;i--){int y = iBarShift(NULL,timeFrame,Time[i]);
     rsi[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIper,Price,RSIModifier,LevelUp,LevelDn,SmoothLength,SmoothPhase,2,y);
   trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIper,Price,RSIModifier,LevelUp,LevelDn,SmoothLength,SmoothPhase,7,y);
   rsiUa[i] = rsiUb[i] = EMPTY_VALUE;
   rsiDa[i] = rsiDb[i] = EMPTY_VALUE;
   if(ShowHistogram){
              rsiHu[i] = EMPTY_VALUE;
              rsiHd[i] = EMPTY_VALUE;
   if(rsi[i]>0) rsiHu[i] = rsi[i];
   if(rsi[i]<0) rsiHd[i] = rsi[i];}            
         manageLines(i);

   if(!Interpolate || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;

   datetime time = iTime(NULL,timeFrame,y);
   for(n = 1; i+n < Bars && Time[i+n] >= time; n++) continu

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

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

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

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

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

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

Стоимость полного кода
1 496,70₽ ≈ $18.29