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