rsi_zones1.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_zones1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор rsi_zones1.mq5 рассчитывает значение RSI (Relative Strength Index) заданного периода и применённой цены, а затем визуально отображает зоны тренда на графике. Прямоугольники рисуются в цвете ColorUp при значении RSI выше 50 и в цвете ColorDown при значении ниже 50, формируя наглядное представление о направлении тренда.
Индикатор поддерживает работу на различных таймфреймах: если выбранный таймфрейм отличается от текущего, он запускает себя же на целевом таймфрейме через iCustom. Параметр Dummy используется для корректной привязки временных меток при отрисовке на текущем графике.
Система уведомлений позволяет настраивать оповещения при смене тренда RSI. Доступны текстовые сообщения, звуковые сигналы и email-уведомления. Оповещения срабатывают при переходе RSI через уровень 50 и могут быть настроены как на текущий бар, так и на предыдущий.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором рассчитывается и отображается индикатор (строковый параметр, например M1, H1, D1 или current time frame) |
| RSIPeriod | Период расчёта индикатора RSI (количество баров, используемых для усреднения) |
| RSIPrice | Код применяемой цены для расчёта RSI (целочисленное значение, соответствующее константе применённой цены) |
| UniqueID | Уникальный идентификатор объектов индикатора на графике, используемый для именования и удаления прямоугольников |
| ColorUp | Цвет прямоугольников, отображающих восходящий тренд (RSI выше 50) |
| ColorDown | Цвет прямоугольников, отображающих нисходящий тренд (RSI ниже 50) |
| alertsOn | Главный переключатель включения всех уведомлений индикатора |
| alertsOnCurrent | Переключатель, определяющий, на каком баре отслеживать смену тренда: на текущем (true) или на предыдущем (false) |
| alertsMessage | Переключатель включения текстовых сообщений-оповещений при смене тренда RSI |
| alertsSound | Переключатель включения звуковых уведомлений при смене тренда RSI |
| alertsEmail | Переключатель включения email-уведомлений при смене тренда RSI |
| Dummy | Служебный параметр типа double, используемый для управления временной привязкой отрисовки зон на графике |
Поиск по коду файла
#property indicator_chart_window
extern string TimeFrame = "current time frame";
extern int RSIPeriod = 12;
extern int RSIPrice = 5;
extern string UniqueID = "RSI zones";
extern color ColorUp = Gold;
extern color ColorDown = Orange;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern double Dummy = -1;
double colors[];
int timeFrame;
string indicatorFileName;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = UniqueID+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
datetime tDummy = Dummy;
if (timeFrame!=Period())
{
iCustom(NULL,timeFrame,indicatorFileName,"",RSIPeriod,RSIPrice,UniqueID,ColorUp,ColorDown,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,Time[0],0,0);
return(0);
}
else if (Dummy<=Time[0]) tDummy = Time[0];
static bool secondTime=false;
if (secondTime)
{
int count=0;
for (;limit<Bars; limit++) if (colors[limit]!=colors[limit+1]) { count++; if (count>1) break; }
}
else secondTime=true;
double MaxValue = High[0]*10.0;
for(i = limit; i>=0 ; i--)
{
if (i>Bars-2) continue;
double cci = iRSI(NULL, 0, RSIPeriod, RSIPrice, i);
colors[i] = colors[i+1];
if (cci>50) colors[i] = 1;
if (cci<50) colors[i] = -1;
for (int index=i; index<Bars; index++) if (colors[index]!=colors[index+1]) break;
string name = UniqueID+":"+Time[index+1]; ObjectDelete(name); ObjectDelete(UniqueID+":"+Time[1]);
datetime lastTime = Time[i-1]; iПоказано первые 50% кода (символов: 3495)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.