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

Silent_RSI

silent_rsi_v1.06.mq4

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

!!!-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, скользящих средних и полос, а также систему уведомлений через звуковой сигнал, скриншот, email и push-сообщения. Поддерживается автоматическое переподключение к серверу при потере связи и принудительная загрузка исторических данных. Настройки включают фильтрацию сигналов по тренду, выбор линии пересечения с уровнем 50 и управление отображением различных типов стрелок.

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

НастройкаОписание
Set01 Группа RSI — Текстовый разделитель группы настроек RSI
RSI_Timeframe Таймфрейм RSI — Таймфрейм, на котором рассчитывается RSI
RSI_Period Период RSI — Период расчёта RSI
RSI_Applied_Price Применяемая цена RSI — Тип цены для расчёта RSI
RSI_Style Стиль линии RSI — Стиль отображения линии RSI
RSI_Width Ширина линии RSI — Толщина линии RSI
RSI_Color Цвет RSI — Цвет линии RSI
RSI_overBought_Color Цвет перекупленности RSI — Цвет линии зоны перекупленности RSI
RSI_overSold_Color Цвет перепроданности RSI — Цвет линии зоны перепроданности RSI
Set07 Группа уровней RSI — Текстовый разделитель группы настроек уровней RSI
MaxoverBought Максимальный уровень перекупленности — Верхний порог зоны перекупленности
overBought Уровень перекупленности — Порог зоны перекупленности
overSold Уровень перепроданности — Порог зоны перепроданности
MaxoverSold Максимальный уровень перепроданности — Нижний порог зоны перепроданности
Show_RSI_Levels Показывать уровни RSI — Включает отображение горизонтальных уровней на индикаторе
RSI_Levels_Color Цвет уровней RSI — Цвет горизонтальных уровней
RSI_Levels_Style Стиль уровней RSI — Стиль отображения горизонтальных уровней
RSI_Levels_Width Ширина уровней RSI — Толщина горизонтальных уровней
Set02 Группа MA 1 — Текстовый разделитель группы настроек первой скользящей средней
Show_MA1 Показывать MA1 — Включает отображение первой скользящей средней
MA1_Period Период MA1 — Период первой скользящей средней
MA1_Applied_Price Применяемая цена MA1 — Тип цены для расчёта MA1
MA1_Method Метод MA1 — Метод расчёта первой скользящей средней
MA1_Style Стиль MA1 — Стиль отображения линии MA1
MA1_Width Ширина MA1 — Толщина линии MA1
MA1_Color Цвет MA1 — Цвет линии MA1
Set03 Группа MA 2 — Текстовый разделитель группы настроек второй скользящей средней
Show_MA2 Показывать MA2 — Включает отображение второй скользящей средней
MA2_Period Период MA2 — Период второй скользящей средней
MA2_Applied_Price Применяемая цена MA2 — Тип цены для расчёта MA2
MA2_Method Метод MA2 — Метод расчёта второй скользящей средней
MA2_Style Стиль MA2 — Стиль отображения линии MA2
MA2_Width Ширина MA2 — Толщина линии MA2
MA2_Color Цвет MA2 — Цвет линии MA2
Set04 Группа TMA — Текстовый разделитель группы настроек TMA
Show_TMA Показывать TMA — Включает отображение полосы Триангулярной скользящей средней
HalfLength Половина длины TMA — Параметр длины для расчёта TMA
DevPeriod Период отклонения TMA — Период расчёта стандартного отклонения для TMA
Deviations Отклонения TMA — Множитель отклонения для полос TMA
TMA_Style Стиль TMA — Стиль отображения линий TMA
TMA_Width Ширина TMA — Толщина линий TMA
TMACenter_Color Центр TMA цвет — Центральная линия TMA
TMAHigh_Color Верх TMA цвет — Верхняя полоса TMA
TMALow_Color Низ TMA цвет — Нижняя полоса TMA
Set05 Группа Боллинджера — Текстовый разделитель группы настроек Боллинджера
Show_BB Показывать Боллинджера — Включает отображение полос Боллинджера на RSI
bb_period Период Боллинджера — Период расчёта полос Боллинджера
bb_dev Отклонение Боллинджера — Множитель отклонения для полос Боллинджера
BB_Method Метод Боллинджера — Метод расчёта скользящей средней для полос Боллинджера
bb_Style Стиль Боллинджера — Стиль отображения линий Боллинджера
bb_Width Ширина Боллинджера — Толщина линий Боллинджера
bb_Center_Color Центр Боллинджера цвет — Цвет центральной линии Боллинджера
bb_High_Color Верх Боллинджера цвет — Цвет верхней полосы Боллинджера
bb_Low_Color Низ Боллинджера цвет — Цвет нижней полосы Боллинджера
Set08 Группа сигналов — Текстовый разделитель группы настроек отображения сигналов
showZoneArrows Стрелки зон — Отображение стрелок при выходе RSI за зоны перекупленности/перепроданности
showMaxZoneArrows Стрелки максимальных зон — Отображение стрелок при выходе за расширенные зоны перекупленности/перепроданности
showMACrossArrows Стрелки пересечения MA — Отображение стрелок при пересечении скользящих средних
showDiv Стрелки дивергенций — Отображение стрелок при обнаружении дивергенций
showChannelArrow Стрелки канала — Отображение стрелок при пересечении верхней/нижней границы канала
show50cross Стрелки пересечения 50 — Отображение стрелок при пересечении уровня 50
cross50 Линия пересечения 50 — Выбор линии для определения пересечения с уровнем 50
RSI_Trend_Period Период тренда RSI — Период расчёта трендовой линии RSI
RSI_Trend_Applied_Price Применяемая цена тренда RSI — Тип цены для расчёта трендовой линии RSI
MA_Trend_Period Период тренда MA — Период расчёта трендовой линии MA
MA_Trend_Applied_Price Применяемая цена тренда MA — Тип цены для расчёта трендовой линии MA
MA_Trend_Method Метод тренда MA — Метод расчёта трендовой линии MA
UseTrendFiltration Фильтрация по тренду — Включает фильтрацию сигналов по направлению тренда
ArrowDelta Смещение стрелки — Вертикальное смещение стрелок-сигналов в пунктах
ZoneArrows_Up_Color Цвет стрелок зон вверх — Цвет стрелок при выходе из зоны перепроданности
ZoneArrows_Dn_Color Цвет стрелок зон вниз — Цвет стрелок при выходе из зоны перекупленности
MaxZoneArrows_Up_Color Цвет стрелок макс. зон вверх — Цвет стрелок при выходе из расширенной зоны перепроданности
MaxZoneArrows_Dn_Color Цвет стрелок макс. зон вниз — Цвет стрелок при выходе из расширенной зоны перекупленности
MACrossArrows_Up_Color Цвет стрелок пересечения MA вверх — Цвет стрелок при бычьем пересечении скользящих средних
MACrossArrows_Dn_Color Цвет стрелок пересечения MA вниз — Цвет стрелок при медвежьем пересечении скользящих средних
Div_Up_Color Цвет стрелок дивергенции вверх — Цвет стрелок при бычьей дивергенции
Div_Dn_Color Цвет стрелок дивергенции вниз — Цвет стрелок при медвежьей дивергенции
Channel_Up_Color Цвет стрелок канала вверх — Цвет стрелок при пересечении нижней границы канала
Channel_Dn_Color Цвет стрелок канала вниз — Цвет стрелок при пересечении верхней границы канала
cross50_Up_Color Цвет стрелок пересечения 50 вверх — Цвет стрелок при пересечении уровня 50 снизу вверх
cross50_Dn_Color Цвет стрелок пересечения 50 вниз — Цвет стрелок при пересечении уровня 50 сверху вниз
?????? ???????? ??????? (DataRefreshPeriod) Период обновления данных — Таймфрейм, по которому проверяется появление нового бара для обновления данных
RetryAttempts Попытки повтора — Количество попыток повтора при загрузке данных
MaxBars Максимум баров — Максимальное количество баров для расчёта; 0 означает использование всех доступных баров
Play_Alert Воспроизводить оповещение — Включает звуковое оповещение при формировании сигнала
Play_Sound Воспроизводить звук — Включает воспроизведение звукового файла при сигнале
UseSnapShot Делать снимок экрана — Сохраняет скриншот графика при сигнале
UseSendMail Отправлять email — Отправляет email-уведомление при сигнале
UseSendPush Отправлять push — Отправляет push-уведомление при сигнале
UseReconnect Переподключение — Автоматическое переподключение к серверу при потере связи
UsePanel Показывать панель — Включает отображение информационной панели на графике
TopField Цвет верхнего поля — Цвет верхнего поля панели
DataField Цвет поля данных — Цвет фона области данных панели
ExpNameCol Цвет имени эксперта — Цвет имени эксперта в панели
TextCol Цвет текста — Цвет текста в панели
Получить полный код

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

#property version   "1.06"

#include <MyWinUser32.mqh> // ??????????? ??????????

/*
v1.01
- ?????????? ??????? ??????????? ????????
- ?????????? ?????? ???????
v1.02
- ????????? ??????????? ?? ???? ???-?? ????? ??? ???????
- ?????????? ??????????? ??????? ??????? 2
- ?????????? ??????????? ?????????? ??????????? ?? ????? ???????
- ????????? ?????? ? ???????? ??????????
- ????????? ??????????? ?????? ??????????
- ????????? ??????????? ??????? e-mail
- ????????? ??????????? ??????? push-???????????
- ????????? ??????????? ?????????? ????????? ??????? ??????????
- ???????? ?????? "??????????? ??????" (?4)
v1.03
- ???????? ????????? (???????? ????? ??? ??????? ??????????, e-mail ? push-???????????), ??????????? ?????????? ??????????
- ???????? ?????? ?5 - ????? ?? ??????? ?????? ?? RSI ? ????????? ? ?????
- ???????? ?????? ?6 - ??????????? ?????? 50 ??????????? RSI
- ????????? ??????????? ?????? ?????? ??? ??????????? ? ??????? 50 (RSI, MA1, MA2)
v1.04
- ????????? ????????? ?????????? ??????? ? ????????? RSI ??? ?????????? ??????
- ????????? ??????????? ?????????? ???????? ?? ??????
- ????????? ????-??????
- ?????????? ??????????? ????????? ???????
- ?????????? ??????
v1.05
- ?????????? ??????
v1.06
- ?????????? ??????????? ??????? 3
- ?????????? ??????????? ??????? 5
*/

#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 14

extern string              Set01="????????? RSI";
input ENUM_TIMEFRAMES      RSI_Timeframe=0;
extern int                 RSI_Period = 14;
input ENUM_APPLIED_PRICE   RSI_Applied_Price = 0;
input ENUM_LINE_STYLE      RSI_Style=STYLE_SOLID;
enum RSIW
{
RSIW1=1,                    //1
RSIW2=2,                    //2
RSIW3=3,                    //3
RSIW4=4,                    //4
RSIW5=5,                    //5
};
input RSIW                 RSI_Width = 2;
int                        RSI_overBought_Width=RSI_Width+2;
int                        RSI_overSold_Width=RSI_Width+2;
extern color               RSI_Color = Aqua;
extern color               RSI_overBought_Color = Red;
extern color               RSI_overSold_Color = Lime;
extern string              Set07="????????? ??????? RSI";
extern double              MaxoverBought = 90;
extern double              overBought = 80;
extern double              overSold = 20;
extern double              MaxoverSold = 10;
extern bool                Show_RSI_Levels = true;
extern color               RSI_Levels_Color = Yellow;
input ENUM_LINE_STYLE      RSI_Levels_Style=STYLE_DOT;
enum RSILW
{
RSILW1=1,                    //1
RSILW2=2,                    //2
RSILW3=3,                    //3
RSILW4=4,                    //4
RSILW5=5,                    //5
};
input RSILW                RSI_Levels_Width = 1;
extern string              Set02="????????? MA 1";
extern bool                Show_MA1 = true;
extern int                 MA1_Period = 21;
input ENUM_APPLIED_PRICE   MA1_Applied_Price = 0;
input ENUM_MA_METHOD       MA1_Method = 1;
input ENUM_LINE_STYLE      MA1_Style=STYLE_SOLID;
enum MA1W
{
MA1W1=1,                    //1
MA1W2=2,                    //2
MA1W3=3,                    //3
MA1W4=4,                    //4
MA1W5=5,                    //5
};
input MA1W                 MA1_Width = 1;
extern color               MA1_Color = Red;
extern string              Set03="????????? MA 2";
extern bool                Show_MA2 = true;
extern int                 MA2_Period = 48;
input ENUM_APPLIED_PRICE   MA2_Applied_Price = 0;
input ENUM_MA_METHOD       MA2_Method = 1;
input ENUM_LINE_STYLE      MA2_Style=STYLE_SOLID;
enum MA2W
{
MA2W1=1,                    //1
MA2W2=2,                    //2
MA2W3=3,                    //3
MA2W4=4,                    //4
MA2W5=5,                    //5
};
input MA2W                 MA2_Width = 1;
extern color               MA2_Color = DeepSkyBlue;
extern string              Set04="????????? TMA";
extern bool                Show_TMA = true;
extern int                 HalfLength = 12;
extern int                 DevPeriod  = 100;
extern double              Deviations = 1.5;
input ENUM_LINE_STYLE      TMA_Style=STYLE_DASH;
enum TMAW
{
TMAW1=1,                    //1
TMAW2=2,                    //2
TMAW3=3,                    //3
TMAW4=4,                    //4
TMAW5=5,                    //5
};
input TMAW                 TMA_Width = 1;
extern color               TMACenter_Color = White;
extern color               TMAHigh_Color = Gold;
extern color               TMALow_Color = Turquoise;
extern string              Set05 = "????????? BollingerBands";
extern bool                Show_BB = false;
extern int                 bb_period = 36;
extern double              bb_dev = 2.0;
input ENUM_MA_METHOD       BB_Method = 0;
input ENUM_LINE_STYLE      bb_Style = STYLE_DASH;
enum BBW
{
BBW1=1,                    //1
BBW2=2,                    //2
BBW3=3,                    //3
BBW4=4,                    //4
BBW5=5,                    //5
};
input BBW                  bb_Width = 1;
extern color               bb_Center_Color = White;
extern color               bb_High_Color = Gold;
extern color               bb_Low_Color = Turquoise;
extern string              Set08="????????? ???????";
extern bool                showZoneArrows = true;
extern bool                showMaxZoneArrows = true;
extern bool                showMACrossArrows = true;
extern bool                showDiv = true;
extern bool                showChannelArrow = true;
extern bool                show50cross = true;
enum CROSS
{
CROSS1=1,                    //RSI
CROSS2=2,                    //MA
};
input CROSS                cross50 = 2;
extern int                 RSI_Trend_Period = 100;
input ENUM_APPLIED_PRICE   RSI_Trend_Applied_Price = 0;
extern int                 MA_Trend_Period = 200;
input ENUM_APPLIED_PRICE   MA_Trend_Applied_Price = 0;
input ENUM_MA_METHOD       MA_Trend_Method = 1;
extern bool                UseTrendFiltration = false;
extern int                 ArrowDelta = 50;
extern color               ZoneArrows_Up_Color = Lime;
extern color               ZoneArrows_Dn_Color = Red;
extern color               MaxZoneArrows_Up_Color = DeepSkyBlue;
extern color               MaxZoneArrows_Dn_Color = Magenta;
extern color               MACrossArrows_Up_Color = MediumSeaGreen;
extern color               MACrossArrows_Dn_Color = Tomato;
extern color               Div_Up_Color = OliveDrab;
extern color               Div_Dn_Color = DarkOrange;
extern color               Channel_Up_Color = DarkViolet;
extern color               Channel_Dn_Color = Gold;
extern color               cross50_Up_Color = LightSeaGreen;
extern color               cross50_Dn_Color = Crimson;
input ENUM_TIMEFRAMES      DataRefreshPeriod = PERIOD_H1;                       // ?????? ???????? ???????
extern int                 RetryAttempts =   10;
extern int                 MaxBars =   1000;
extern bool                Play_Alert = true;
extern bool                Play_Sound = true;
extern bool                UseSnapShot = false;
extern bool                UseSendMail = false;
extern bool                UseSendPush = false;
extern bool                UseReconnect = false;
extern bool                UsePanel =                    true;
extern color               TopField =                    PowderBlue;
extern color               DataField =                   SlateGray;
extern color               ExpNameCol =                  DodgerBlue;
extern color               TextCol =                     White;

int      maxArrows,IndID;
double goober;
double MA1_Array[],MA2_Array[],RSI[], Trend[], TrendRSI[], TrendMA[], TMACenter[], TMAHigh[], TMALow[], Upper[], Lower[], BBUpper[], BBLower[], BBCenter[];
string PrefMainNoDelete="MainNoDelete_",PrefMainDelete="MainDelete_",PrefDealsDel="DealsDelete_",PrefDealsNoDel="DealsNoDelete_",prefix="",suffix="";
int first_time_main = 0;
bool display_status_main = TRUE;
int MainPanWasDisabled = 0;
int MainPanWasEnabled = 0;

int deinit()
   {
   DeleteArrows();
   DeleteObjectsByPrefix(PrefMainDelete);
   DeleteObjectsByPrefix(PrefMainNoDelete);
   SetLevelStyle(DRAW_NONE,0,0);
   return(0);
   }

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

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) 
   {
   if(UsePanel)
      {
      if(id==CHARTEVENT_OBJECT_CLICK)   
         {
         string clickedChartObject=sparam;
         if (clickedChartObject==(string)PrefMainNoDelete+"ButtonMainPan") 
            {
            ButtonMainPan();
            }
         }
      }
   }

int start()
   {
      // код доступен только после оплаты
   }
   DeleteArrows();
   DeleteObjectsByPrefix(PrefMainDelete);
   if(!IsTesting()&&!IsConnected()&&UseReconnect) ReConnect();
   double ma, stdev;
   int i,j,k,counted_bars=IndicatorCounted();
   int limit=0;
   if(MaxBars==0) limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);
   else limit=MaxBars;

   if(IsNewBar(0,DataRefreshPeriod)) 
      {
      if(!IsTesting()) 
         {
         if(!ForceLoadOneSym()) return(0);
         }
      }

   for(i=limit; i>=0; i--)
      {
      if(RSI_Timeframe>Period()) RSI[i]= iRSI(NULL,RSI_Timeframe,RSI_Period,RSI_Applied_Price,i/(RSI_Timeframe/Period()));
      if(RSI_Timeframe==Period()||RSI_Timeframe==0) RSI[i]= iRSI(NULL,Period(),RSI_Period,RSI_Applied_Price,i);
      if(RSI_Timeframe<Period()&&RSI_Timeframe!=0) RSI[i]= iRSI(NULL,RSI_Timeframe,RSI_Period,RSI_Applied_Price,i*(Period()/RSI_Timeframe));
      }
   for(i=limit; i>=0; i--)
      {
      TrendRSI[i]= iRSI(NULL,Period(),RSI_Trend_Period,RSI_Trend_Applied_Price,i);
      }
   for(i=limit; i>=0; i--)
      { 
      if(Show_MA1) MA1_Array[i] = iMAOnArray(RSI,0,MA1_Period,MA1_Applied_Price,MA1_Method,i);
      if(Show_MA2) MA2_Array[i] = iMAOnArray(RSI,0,MA2_Period,MA2_Applied_Price,MA2_Method,i);
      TrendMA[i] = iMAOnArray(TrendRSI,0,MA_Trend_Period,MA_Trend_Applied_Price,MA_Trend_Method,i);
      }
   if(Show_TMA)
      {
      for (i=limit; i>=0; i--)
         {
         double sum  = (HalfLength+1)*RSI[i];
         double sumw = (HalfLength+1);
         for(j=1, k=HalfLength; j<=HalfLength; j++, k--)
            {
            sum  += k*RSI[i+j];
            sumw += k;
            }
         double dev  = iStdDevOnArray(RSI,0,DevPeriod,0,MODE_SMA,i);
         TMACenter[i] = sum/sumw;
         TMAHigh[i] = TMACenter[i]+dev*Deviations;
         TMALow[i] = TMACenter[i]-dev*Deviations;
         }
      }

   if(Show_BB)
      {
      for (i=limit; i>=0; i--)
         {
         ma=iMAOnArray(RSI,0,bb_period,0,BB_Method,i); // ??????? ?????
         stdev=iStdDevOnArray(RSI,0,bb_period,0,0,i); // ??????????
         BBUpper[i]=ma+bb_dev*stdev; // ??????? ???????
         BBLower[i]=ma-bb_dev*stdev; // ?????? ???????
         BBCenter[i]=ma; // ????????
         }
      }

   for(i=limit; i>=0; i--)
      {
      if (RSI[i] > overBought) 
         { 
         Upper[i] = RSI[i]; 
         Upper[i+1] = RSI[i+1]; 
         }
      else                           
         { 
         Upper[i] = EMPTY_VALUE;
         if (Upper[i+2] == EMPTY_VALUE) Upper[i+1]  = EMPTY_VALUE; 
         }
      if (RSI[i] < overSold)   
         { 
         Lower[i] = RSI[i]; 
         Lower[i+1] = RSI[i+1]; 
         }
      else                           
         { 
         Lower[i] = EMPTY_VALUE;
         if (Lower[i+2] == EMPTY_VALUE) Lower[i+1]  = EMPTY_VALUE; 
         }
      }

   double Cross1,Cross2;
   for (i=0; i<limit ;i++)
      {
      if(cross50==1)
         {
         Cross1=TrendRSI[i+1];
         Cross2=TrendRSI[i+2];
         }
      if(cross50==2)
         {
         Cross1=TrendMA[i+1];
         Cross2=TrendMA[i+2];
         }
      if(Cross2>50&&Cross1<50) 
         {
         if(show50cross) DrawArrow(i,12);
         }
      if(Cross2<50&&Cross1>50) 
         {
         if(show50cross) DrawArrow(i,11);
         }
      if(Cross1<50) Trend[i]=-1;
      if(Cross1>50) Trend[i]=1;
      }

   if (showZoneArrows&&!showMaxZoneArrows)
      {
      for (i=0; i<limit ;i++)
         {
         if (RSI[i+2]>overBought&&RSI[i+1]<overBought&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,1);
         if (RSI[i+2]<overSold&&RSI[i+1]>overSold&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration))   DrawArrow(i,2);
         }
      }
   if(showZoneArrows&&showMaxZoneArrows)
      {
      for (i=0; i<limit ;i++)
         {
         if (RSI[i+2]>overBought&&(RSI[i+2]<MaxoverBought||RSI[i+3]<MaxoverBought||RSI[i+4]<MaxoverBought)&&RSI[i+1]<overBought&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,1);
         if (RSI[i+2]<overSold&&(RSI[i+2]>MaxoverSold||RSI[i+3]>MaxoverSold||RSI[i+4]>MaxoverSold)&&RSI[i+1]>overSold&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration))   DrawArrow(i,2);
         if (RSI[i+2]>MaxoverBought&&RSI[i+1]<overBought&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,3);
         if (RSI[i+2]<MaxoverSold&& RSI[i+1]>overSold&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration))   DrawArrow(i,4);
         }
      }
   if(showMaxZoneArrows&&!showZoneArrows)
      {
      for (i=0; i<limit ;i++)
         {
         if (RSI[i+2]>MaxoverBought&&RSI[i+1]<overBought&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,3);
         if (RSI[i+2]<MaxoverSold&& RSI[i+1]>overSold&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration))   DrawArrow(i,4);
         }
      }
   if (showMACrossArrows)
      {
      for (i=0; i<limit ;i++)
         {
         if(Show_MA1&&Show_MA2)
            {
            if(MA1_Period>MA2_Period)
               {
               if((Show_TMA&&Show_BB)||(Show_TMA&&!Show_BB))
                  {
                  if(MA1_Array[i+2]>MA2_Array[i+2]&&MA1_Array[i+1]<MA2_Array[i+1]&&MA1_Array[i+2]<TMACenter[i+2]&&MA2_Array[i+2]<TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
                  if(MA1_Array[i+2]<MA2_Array[i+2]&&MA1_Array[i+1]>MA2_Array[i+1]&&MA1_Array[i+2]>TMACenter[i+2]&&MA2_Array[i+2]>TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
                  }
               if(Show_BB&&!Show_TMA)
                  {
                  if(MA1_Array[i+2]>MA2_Array[i+2]&&MA1_Array[i+1]<MA2_Array[i+1]&&MA1_Array[i+2]<BBCenter[i+2]&&MA2_Array[i+2]<BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
                  if(MA1_Array[i+2]<MA2_Array[i+2]&&MA1_Array[i+1]>MA2_Array[i+1]&&MA1_Array[i+2]>BBCenter[i+2]&&MA2_Array[i+2]>BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
                  }
               if(!Show_BB&&!Show_TMA)
                  {
                  if(MA1_Array[i+2]>MA2_Array[i+2]&&MA1_Array[i+1]<MA2_Array[i+1]&&MA1_Array[i+2]<50&&MA2_Array[i+2]<50&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
                  if(MA1_Array[i+2]<MA2_Array[i+2]&&MA1_Array[i+1]>MA2_Array[i+1]&&MA1_Array[i+2]>50&&MA2_Array[i+2]>50&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
                  }
               }
            if(MA1_Period<MA2_Period)
               {
               if((Show_TMA&&Show_BB)||(Show_TMA&&!Show_BB))
                  {
                  if(MA1_Array[i+2]<MA2_Array[i+2]&&MA1_Array[i+1]>MA2_Array[i+1]&&MA1_Array[i+2]<TMACenter[i+2]&&MA2_Array[i+2]<TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
                  if(MA1_Array[i+2]>MA2_Array[i+2]&&MA1_Array[i+1]<MA2_Array[i+1]&&MA1_Array[i+2]>TMACenter[i+2]&&MA2_Array[i+2]>TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
                  }
               if(Show_BB&&!Show_TMA)
                  {
                  if(MA1_Array[i+2]<MA2_Array[i+2]&&MA1_Array[i+1]>MA2_Array[i+1]&&MA1_Array[i+2]<BBCenter[i+2]&&MA2_Array[i+2]<BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
                  if(MA1_Array[i+2]>MA2_Array[i+2]&&MA1_Array[i+1]<MA2_Array[i+1]&&MA1_Array[i+2]>BBCenter[i+2]&&MA2_Array[i+2]>BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
                  }
               if(!Show_BB&&!Show_TMA)
                  {
                  if(MA1_Array[i+2]<MA2_Array[i+2]&&MA1_Array[i+1]>MA2_Array[i+1]&&MA1_Array[i+2]<50&&MA2_Array[i+2]<50&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
                  if(MA1_Array[i+2]>MA2_Array[i+2]&&MA1_Array[i+1]<MA2_Array[i+1]&&MA1_Array[i+2]>50&&MA2_Array[i+2]>50&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
                  }
               }
            }
         if(Show_MA1&&!Show_MA2)
            {
            if((Show_TMA&&Show_BB)||(Show_TMA&&!Show_BB))
               {
               if(MA1_Array[i+2]>RSI[i+2]&&MA1_Array[i+1]<RSI[i+1]&&MA1_Array[i+2]<TMACenter[i+2]&&RSI[i+2]<TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
               if(MA1_Array[i+2]<RSI[i+2]&&MA1_Array[i+1]>RSI[i+1]&&MA1_Array[i+2]>TMACenter[i+2]&&RSI[i+2]>TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
               }
            if(Show_BB&&!Show_TMA)
               {
               if(MA1_Array[i+2]>RSI[i+2]&&MA1_Array[i+1]<RSI[i+1]&&MA1_Array[i+2]<BBCenter[i+2]&&RSI[i+2]<BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
               if(MA1_Array[i+2]<RSI[i+2]&&MA1_Array[i+1]>RSI[i+1]&&MA1_Array[i+2]>BBCenter[i+2]&&RSI[i+2]>BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
               }
            if(!Show_BB&&!Show_TMA)
               {
               if(MA1_Array[i+2]>RSI[i+2]&&MA1_Array[i+1]<RSI[i+1]&&MA1_Array[i+2]<50&&RSI[i+2]<50&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
               if(MA1_Array[i+2]<RSI[i+2]&&MA1_Array[i+1]>RSI[i+1]&&MA1_Array[i+2]>50&&RSI[i+2]>50&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
               }
            }
         if(Show_MA2&&!Show_MA1)
            {
            if((Show_TMA&&Show_BB)||(Show_TMA&&!Show_BB))
               {
               if(MA2_Array[i+2]>RSI[i+2]&&MA2_Array[i+1]<RSI[i+1]&&MA2_Array[i+2]<TMACenter[i+2]&&RSI[i+2]<TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
               if(MA2_Array[i+2]<RSI[i+2]&&MA2_Array[i+1]>RSI[i+1]&&MA2_Array[i+2]>TMACenter[i+2]&&RSI[i+2]>TMACenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
               }
            if(Show_BB&&!Show_TMA)
               {
               if(MA2_Array[i+2]>RSI[i+2]&&MA2_Array[i+1]<RSI[i+1]&&MA2_Array[i+2]<BBCenter[i+2]&&RSI[i+2]<BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
               if(MA2_Array[i+2]<RSI[i+2]&&MA2_Array[i+1]>RSI[i+1]&&MA2_Array[i+2]>BBCenter[i+2]&&RSI[i+2]>BBCenter[i+2]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
               }
            if(!Show_BB&&!Show_TMA)
               {
               if(MA2_Array[i+2]>RSI[i+2]&&MA2_Array[i+1]<RSI[i+1]&&MA2_Array[i+2]<50&&RSI[i+2]<50&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,6);
               if(MA2_Array[i+2]<RSI[i+2]&&MA2_Array[i+1]>RSI[i+1]&&MA2_Array[i+2]>50&&RSI[i+2]>50&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,5);
               }
            }
         }
      }
   if(showDiv)
      {
      k=0;
      for (i=0; i<limit ;i++)
         {
         if(RSI[i+2]>overBought&&RSI[i+1]<overBought&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration))
            {
            for(k=i+7;k>i+1;k--)
               {
               if(RSI[k]>overBought&&RSI[k]>RSI[k+1]&&RSI[k]>RSI[k-1]&&RSI[k]>RSI[k+2]&&RSI[k]>RSI[k-2])
                  {
                  if(RSI[k]<RSI[k+3]||RSI[k]<RSI[k+4]||RSI[k]<RSI[k+5]||RSI[k]<RSI[k+6])
                     {
                     DrawArrow(i,7);
                     break;
                     }
                  }
               }
            }
         if(RSI[i+2]<overSold&& RSI[i+1]>overSold&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration))
            {
            for(k=i+7;k>i+1;k--)
               {
               if(RSI[k]<overSold&&RSI[k]<RSI[k+1]&&RSI[k]<RSI[k-1]&&RSI[k]<RSI[k+2]&&RSI[k]<RSI[k-2])
                  {
                  if(RSI[k]>RSI[k+3]||RSI[k]>RSI[k+4]||RSI[k]>RSI[k+5]||RSI[k]>RSI[k+6])
                     {
                     DrawArrow(i,8);
                     break;
                     }
                  }
               }
            }
         }
      }
   if(showChannelArrow)
      {
      for (i=0; i<limit ;i++)
         {
         if((Show_TMA&&!Show_BB)||(Show_TMA&&Show_BB))
            {
            if(RSI[i+2]>TMAHigh[i+2]&&RSI[i+1]<TMAHigh[i+1]&&((UseTrendFiltration&&Trend[i]==-1)||!UseTrendFiltration)) DrawArrow(i,9);
            if(RSI[i+2]<TMALow[i+2]&&RSI[i+1]>TMALow[i+1]&&((UseTrendFiltration&&Trend[i]==1)||!UseTrendFiltration)) DrawArrow(i,10);
            }
         if(Show_BB&&!Show_TMA)
            {
            if(RSI[i+2]>BBUpper[i+2]&&RSI[i+1]<BBUpper[i+1]&&((UseTre

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

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

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

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

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

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

Стоимость полного кода
3 489₽ ≈ $42.64