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

Silent_RSI

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

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

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

О программе

Silent_RSI v1.07 — это пользовательский индикатор для MetaTrader 4, построенный на основе RSI и отображаемый в отдельном окне. Индикатор рассчитывает значения RSI заданного периода и таймфрейма, а также накладывает на них дополнительные аналитические линии. Индикатор поддерживает отображение двух скользящих средних (MA1, MA2), рассчитанных по значениям RSI, тройной скользящей средней (TMA) и полос Боллинджера. В зависимости от настроек отрисовываются уровни перекупленности и перепроданности. Индикатор способен формировать графические стрелки-сигналы на графике при пересечении заданных пороговых зон, пересечении средних, дивергенциях и выходах за границы каналов. Также реализован информационный панель с отображением текущих значений основных расчётных линий. Настройки включают возможность отправки уведомлений (звуковых, e-mail, push), автоматическую перезагрузку данных и создание снимков экрана при срабатывании событий.

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

НастройкаОписание
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_overSold_Color Цвет перепроданности — Цвет линии перепроданности
Set07 Группа уровней RSI — Заголовок группы настроек уровней RSI
MaxoverBought Макс. уровень перекупленности — Максимальный уровень перекупленности для расширенных зон
overBought Уровень перекупленности — Уровень перекупленности RSI
overSold Уровень перепроданности — Уровень перепроданности RSI
MaxoverSold Макс. уровень перепроданности — Максимальный уровень перепроданности для расширенных зон
Show_RSI_Levels Показать уровни RSI — Включить/выключить отображение уровней RSI
RSI_Levels_Color Цвет уровней RSI — Цор уровней RSI
RSI_Levels_Style Стиль уровней RSI — Стиль уровней RSI
RSI_Levels_Width Толщина уровней RSI — Толщина уровней RSI
Set02 Группа MA 1 — Заголовок группы настроек MA 1
Show_MA1 Показать MA1 — Включить/выключить отображение MA1
MA1_Period Период MA1 — Период MA1 по значениям RSI
MA1_Applied_Price Тип цены MA1 — Тип цены для расчёта MA1 по значениям RSI
MA1_Method Метод MA1 — Метод расчёта MA1 по значениям RSI
MA1_Style Стиль MA1 — Стиль линии MA1
MA1_Width Толщина MA1 — Толщина линии MA1
MA1_Color Цвет MA1 — Цвет линии MA1
Set03 Группа MA 2 — Заголовок группы настроек MA 2
Show_MA2 Показать MA2 — Включить/выключить отображение MA2
MA2_Period Период MA2 — Период MA2 по значениям RSI
MA2_Applied_Price Тип цены MA2 — Тип цены для расчёта MA2 по значениям RSI
MA2_Method Метод MA2 — Метод расчёта MA2 по значениям RSI
MA2_Style Стиль MA2 — Стиль линии MA2
MA2_Width Толщина MA2 — Толщина линии MA2
MA2_Color Цвет MA2 — Цвет линии MA2
Set04 Группа TMA — Заголовок группы настроек TMA
Show_TMA Показать 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 Группа Bollinger Bands — Заголовок группы настроек Bollinger Bands
Show_BB Показать полосы Боллинджера — Включить/выключить отображение полос Боллинджера
bb_period Период полос — Период расчёта полос Боллинджера
bb_dev Отклонение полос — Отклонение (множитель стандартного отклонения) для полос Боллинджера
BB_Method Метод полос Боллинджера — Метод расчёта средней линии полос Боллинджера
bb_Style Стиль полос Боллинджера — Стиль линий полос Боллинджера
bb_Width Толщина полос — Толщина линий полос Боллинджера
bb_Center_Color Центральный цвет полос Боллинджера — Цвет центральной линии полос Боллинджера
bb_High_Color Цвет верхней полосы — Цвет верхней полосы Боллинджера
bb_Low_Color Цвет нижней полосы — Цвет нижней полосы Боллинджера
Set08 Группа стрелок сигналов — Заголовок группы настроек стрелок сигналов
showZoneArrows Стрелки зон — Включить/выключить стрелки зон перекупленности/перепроданности
showMaxZoneArrows Стрелки расширенных зон — Включить/выключить стрелки расширенных зон
showMACrossArrows Стрелки пересечения средних — Включить/выключить стрелки пересечения средних
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 Цвет стрелки пересечения вверх — Цвет стрелки пересечения средних вверх
MACrossArrows_Dn_Color Цвет стрелки пересечения вниз — Цвет стрелки пересечения средних вниз
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 Максимальное количество баров — Максимальное количество баров для расчёта
Play_Alert Всплывающие уведомления — Включить/выключить всплывающие уведомления
Play_Sound Звуковое оповещение — Включить/выключить звуковое оповещение
UseSnapShot Снимки экрана — Включить/выключить создание снимков экрана
UseSendMail Отправка e-mail — Включить/выключить отправку уведомлений по e-mail
UseSendPush Отправка push — Включить/выключить отправку push-уведомлений
UseReconnect Автопереподключение — Включить/выключить автоматическое переподключение
UsePanel Показать панель — Включить/выключить информационную панель на графике
TopField Цвет верхнего поля панели — Цвет верхнего поля информационной панели
DataField Цвет поля данных панели — Цвет поля данных информационной панели
ExpNameCol Цвет названия инструмента — Цвет названия инструмента в информационной панели
TextCol Цвет текста панели — Цвет текста в информационной панели
Получить полный код

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

#property version   "1.07"

/*
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
v1.07
- ?????????? ???????? ? ??????????? ?? ?????
*/

#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);
   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((Sho

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

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

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

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

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

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

Стоимость полного кода
3 409,70₽ ≈ $41.67