_tro_rsi_multi.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «_tro_rsi_multi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «_TRO_RSI_MULTI» для платформы MetaTrader 4 отображает значения индикатора RSI сразу по нескольким таймфреймам прямо на графике цены. Поддерживаемые периоды: M1, M5, M15, M30, H1, H4, D1 и W1. Каждый RSI-уровень окрашивается в цвет в зависимости от числового порога, что позволяет визуально оценить состояние рынка по шкале перекупленности/перепроданности.
Настройки программы
| Настройка | Описание |
|---|---|
| myxstart | Начальная X-координата — Задаёт горизонтальную стартовую позицию в пикселях для размещения меток значений RSI на графике |
| myystart | Начальная Y-координата — Задаёт вертикальную стартовую позицию в пикселях для размещения меток значений RSI на графике |
| Shift_Settings_test_only | Разделитель настроек сдвига — Текстовый разделитель, обозначающий начало блока параметров сдвига и формат даты |
| Shift for test if "test" is true (look_time_shift) | Дата и время сдвига — Точка даты и времени, к которой привязываются индикаторы при включённом режиме тестирования |
| Shift for indicators if "test" is false (shift_indicators) | Сдвиг индикаторов — Фиксированное смещение по барам, применяемое к расчётам RSI, когда режим тестирования выключен |
| test | Режим тестирования — Переключатель: при включении индикаторы сдвигаются к указанной дате и времени, при выключении используется фиксированный сдвиг |
| RSI period (RSIPeriod) | Период RSI — Период расчёта индикатора RSI, используемый для всех таймфреймов |
| v0 | Порог верхнего цвета — Верхний числовой порог шкалы RSI, определяющий окраску меток при высоких значениях индикатора |
| v1 | Порог цвета 1 — Порог шкалы RSI для определения цвета меток при высоких значениях индикатора |
| v2 | Порог среднего цвета — Средний порог шкалы RSI, разделяющий зоны окраски меток |
| v3 | Порог цвета 3 — Порог шкалы RSI для определения цвета меток при средних значениях индикатора |
| v4 | Порог цвета 4 — Порог шкалы RSI для определения цвета меток при низких значениях индикатора |
| v5 | Порог нижнего цвета — Нижний числовой порог шкалы RSI, определяющий окраску меток при низких значениях индикатора |
Поиск по коду файла
#property indicator_chart_window
extern int myxstart=130 ;
extern int myystart=400 ;
extern string Shift_Settings_test_only = "=== Format: 2007.05.07 00:00 ===";
extern datetime look_time_shift = D'2007.05.07 00:00'; // Shift for test if "test" is true
extern double shift_indicators = 0; // Shift for indicators if "test" is false
extern bool test = false;
string RSI_Settings = "=== RSI Settings ===";
extern int RSIPeriod = 2; // RSI period
extern double v0 = 95 ;
extern double v1 = 80 ;
extern double v2 = 50 ;
extern double v3 = 20 ;
extern double v4 = 5 ;
extern double v5 = 0 ;
int myPeriod1 = 1 ;
int myPeriod2 = 5 ;
int myPeriod3 = 15 ;
int myPeriod4 = 30 ;
int myPeriod5 = 60 ;
int myPeriod6 = 240 ;
int myPeriod7 = 1440 ;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
deleteObject();
return(0);
}
string Period2Text(int TmPeriod)
{
switch (TmPeriod)
{
case PERIOD_M1 : return("M1");
case PERIOD_M5 : return("M5");
case PERIOD_M15 : return("M15");
case PERIOD_M30 : return("M30");
case PERIOD_H1 : return("H1");
case PERIOD_H4 : return("H4");
case PERIOD_D1 : return("D1");
case PERIOD_W1 : return("W1");
case PERIOD_MN1 : return("MN1");
}
return ("ERR");
}
int start()
{
// код доступен только после оплаты
}
void initGraph()
{
deleteObject();
int xstart=myxstart, xinc=20;
int ystart=myystart, yinc=8;
int ystart1=ystart+yinc;
int ystart2=ystart+yinc*2;
int ystart3=ystart+yinc*3;
int ystart4=ystart+yinc*4;
int ystart5=ystart+yinc*5;
objectCreate("RSI_1_0",xstart,ystart5);
objectCreate("RSI_1_1",xstart,ystart4);
objectCreate("RSI_1_2",xstart,ystart3);
objectCreate("RSI_1_3",xstart,ystart2);
objectCreate("RSI_1_4",xstart,ystart1);
objectCreate("RSI_1_5",xstart,ystart);
objectCreate("RSI_1",xstart+2,ystart+1,Period2Text(myPeriod1),9,"Arial Narrow",SkyBlue);
objectCreate("RSI_1p",xstart+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
int xstart2 = xstart - xinc ;
objectCreate("RSI_2_0",xstart2,ystart5);
objectCreate("RSI_2_1",xstart2,ystart4);
objectCreate("RSI_2_2",xstart2,ystart3);
objectCreate("RSI_2_3",xstart2,ystart2);
objectCreate("RSI_2_4",xstart2,ystart1);
objectCreate("RSI_2_5",xstart2,ystart);
objectCreate("RSI_2",xstart2+2,ystart+1,Period2Text(myPeriod2),9,"Arial Narrow",SkyBlue);
objectCreate("RSI_2p",xstart2+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
int xstart3 = xstart2 - xinc ;
objectCreate("RSI_3_0",xstart3,ystart5);
objectCreate("RSI_3_1",xstart3,ystart4);
objectCreate("RSI_3_2",xstart3,ystart3);
objectCreate("RSI_3_3",xstart3,ystart2);
objectCreate("RSI_3_4",xstart3,ystart1);
objectCreate("RSI_3_5",xstart3,ystart);
objectCreate("RSI_3",xstart3+2,ystart+1,Period2Text(myPeriod3),8,"Arial Narrow",SkyBlue);
objectCreate("RSI_3p",xstart3+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
int xstart4 = xstart3 - xinc ;
objectCreate("RSI_4_0",xstart4,ystart5);
objectCreate("RSI_4_1",xstart4,ystart4);
objectCreate("RSI_4_2",xstart4,ystart3);
objectCreate("RSI_4_3",xstart4,ystart2);
objectCreate("RSI_4_4",xstart4,ystart1);
objectCreate("RSI_4_5",xstart4,ystart);
objectCreate("RSI_4",xstart4+2,ystart+1,Period2Text(myPeriod4),8,"Arial Narrow",SkyBlue);
objectCreate("RSI_4p",xstart4+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
int xstart5 = xstart4 - xinc ;
objectCreate("RSI_5_0",xstart5,ystart5);
objectCreate("RSI_5_1",xstart5,ystart4);
objectCreate("RSI_5_2",xstart5,ystart3);
objectCreate("RSI_5_3",xstart5,ystart2);
objectCreate("RSI_5_4",xstart5,ystart1);
objectCreate("RSI_5_5",xstart5,ystart);
objectCreate("RSI_5",xstart5+2,ystart+1,Period2Text(myPeriod5),9,"Arial Narrow",SkyBlue);
objectCreate("RSI_5p",xstart5+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
int xstart6 = xstart5 - xinc ;
objectCreate("RSI_6_0",xstart6,ystart5);
objectCreate("RSI_6_1",xstart6,ystart4);
objectCreate("RSI_6_2",xstart6,ystart3);
objectCreate("RSI_6_3",xstart6,ystart2);
objectCreate("RSI_6_4",xstart6,ystart1);
objectCreate("RSI_6_5",xstart6,ystart);
objectCreate("RSI_6",xstart6+2,ystart+1,Period2Text(myPeriod6),9,"Arial Narrow",SkyBlue);
objectCreate("RSI_6p",xstart6+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
int xstart7 = xstart6 - xinc ;
objectCreate("RSI_7_0",xstart7,ystart5);
objectCreate("RSI_7_1",xstart7,ystart4);
objectCreate("RSI_7_2",xstart7,ystart3);
objectCreate("RSI_7_3",xstart7,ystart2);
objectCreate("RSI_7_4",xstart7,ystart1);
objectCreate("RSI_7_5",xstart7,ystart);
objectCreate("RSI_7",xstart7+2,ystart+1,Period2Text(myPeriod7),9,"Arial Narrow",SkyBlue);
objectCreate("RSI_7p",xstart7+4,ystart+10,DoubleToStr(9,1),8,"Arial Narrow",Silver);
string tRSI = "RSI("+RSIPeriod+")" ;
objectCreate("RSI_L97",xstart7,ystart+70,tRSI,10,"Arial",DimGray);
objectCreate("RSI_sign",xstart7,ystart-10,"??? RSI METER ? ???",8,"Arial Narrow",DimGray);
}
void objectCreate(string name,int x,int y,string text="-",int size=42,
string font="Arial",color colour=CLR_NONE)
{
ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet(name,OBJPROP_CORNER,3);
ObjectSet(name,OBJPROP_COLOR,colour);
ObjectSet(name,OBJPROP_XDISTANCE,x);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,text,size,font,colour);
}
void deleteObject()
{
ObjectDelete("RSI_sign");
ObjectDelete("RSI_L97");
ObjectDelete("RSI_1_0");
ObjectDelete("RSI_1_1");
ObjectDelete("RSI_1_2");
ObjectDelete("RSI_1_3");
ObjectDelete("RSI_1_4");
ObjectDeleteПоказано первые 50% кода (символов: 13304)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.