Silent_RSI
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «silent_rsi_v1.07.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.