!!!-mt4 x-xardg-rsi.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!!!-mt4 x-xardg-rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный файл является пользовательским индикатором для MetaTrader 5, который отображает осциллятор RSI в отдельном окне. Индикатор рассчитывает сглаженное значение RSI и визуализирует его в виде гистограммы, а также формирует зоны и вертикальные линии для анализа рыночных условий. В коде предусмотрены настройки для управления отображением, оповещениями и внешним видом панели.
Индикатор поддерживает выбор таймфрейма, периода RSI и типа цены. Реализованы механизмы оповещений при входе в зоны, а также возможность отображения вертикальных линий при смене тренда. Все настройки вынесены во входные параметры, что позволяет адаптировать индикатор под различные торговые стратегии.
Код содержит функции для управления графическими объектами, такие как создание панелей и меток, а также для очистки графика от временных объектов. Индикатор не выполняет торговых операций, а предназначен исключительно для визуального анализа.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIper | Период расчёта индикатора RSI. |
| Price | Тип цены, используемый для расчёта RSI. |
| RSIModifier | Множитель, применяемый к разнице RSI и 50 перед сглаживанием. |
| SmoothLength | Длина сглаживания для фильтрации значений RSI. |
| SmoothPhase | Фазовый сдвиг при сглаживании. |
| ShowHistogram | Включает отображение гистограммы значений RSI. |
| alertsOn | Включает систему оповещений. |
| alertsOnZoneEnter | Оповещать при входе в зону. |
| alertsOnCurrent | Проверять оповещения на текущем баре. |
| alertsMessage | Выводить всплывающие сообщения при срабатывании оповещений. |
| alertsSound | Воспроизводить звуковой сигнал при оповещении. |
| alertsEmail | Отправлять оповещения по электронной почте. |
| verticalLinesVisible | Включает отображение вертикальных линий. |
| verticalLinesID | Идентификатор для имён вертикальных линий. |
| verticalLinesShowBreak | Показывать вертикальные линии при смене тренда. |
| verticalLinesShowRetrace | Показывать вертикальные линии при откате. |
| verticalLinesUpColor | Цвет вертикальных линий для восходящего тренда. |
| verticalLinesDownColor | Цвет вертикальных линий для нисходящего тренда. |
| verticalLinesStyle | Стиль вертикальных линий. |
| verticalLinesWidth | Ширина вертикальных линий. |
| STR05 | Текстовая метка для группы настроек панели. |
| showBOXtxt2 | Показывать текстовую панель с информацией о состоянии. |
| PanelBorderWidth | Ширина границы панели отображения текстовой информации. |
| PanelBorderColor | Цвет границы панели отображения текстовой информации. |
Поиск по коду файла
#property description "[!!!-MT4 X-XARDg-RSI]"
#define Version "[XARDg-RSI]"
#property description "THIS IS A FREE INDICATOR"
#property description " "
#property description "Welcome to the World of Forex"
#property description "Let light shine out of darkness and illuminate your world"
#property description "and with this freedom leave behind your cave of denial"
#property indicator_separate_window
#property indicator_buffers 14
#property indicator_color1 Blue
#property indicator_color2 Maroon
#property indicator_color3 Blue
#property indicator_color4 Maroon
#property indicator_color5 Black
#property indicator_color6 Black
#property indicator_color7 DeepSkyBlue
#property indicator_color8 PaleVioletRed
#property indicator_color9 DimGray
#property indicator_color10 DeepSkyBlue
#property indicator_color11 DeepSkyBlue
#property indicator_color12 PaleVioletRed
#property indicator_color13 PaleVioletRed
#property indicator_width1 20
#property indicator_width2 20
#property indicator_width3 20
#property indicator_width4 20
#property indicator_width5 20
#property indicator_width6 20
#property indicator_width7 1
#property indicator_width8 1
#property indicator_width9 3
#property indicator_width10 3
#property indicator_width11 3
#property indicator_width12 3
#property indicator_minimum -25
#property indicator_maximum 25
#property indicator_height 100
#define lvl1 "lvl1"
#define lvl2 "lvl2"
string TimeFrame = "Current time frame";
extern int RSIper = 20;
extern ENUM_APPLIED_PRICE Price = PRICE_CLOSE;
extern double RSIModifier = 0.9;
double LevelUp = 1.;
double LevelDn = -1.;
extern double SmoothLength = 5;
extern double SmoothPhase = 0;
extern bool ShowHistogram = false;
bool Interpolate = true;
extern bool alertsOn = false;
extern bool alertsOnZoneEnter = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool verticalLinesVisible = false;
extern string verticalLinesID = "RsiSmoothLines";
extern bool verticalLinesShowBreak = false;
extern bool verticalLinesShowRetrace = false;
extern color verticalLinesUpColor = DeepSkyBlue;
extern color verticalLinesDownColor = PaleVioletRed;
extern ENUM_LINE_STYLE verticalLinesStyle = STYLE_DOT;
extern int verticalLinesWidth = 2;
extern string STR05 = "<<<==== [05] BOXtxt2 Settings ====>>>";
extern bool showBOXtxt2 = true;
extern int PanelBorderWidth = 1;
extern color PanelBorderColor = C'120,120,120';
extern int moveTxtLR = 0,moveTxtUD=0,FontSize=15; int BOXsize2; string ID,BOXtxt2; color BOXclr2;
double rsi[],rsiUa[],rsiUb[],rsiDa[];
double rsiDb[],rsiHu[],rsiHd[],trend[];
string indicatorFileName;
bool returnBars,calculateValue;
int timeFrame;
double UpBackgroundZone[], DownBackgroundZone[],UpBackgroundZone2[], DownBackgroundZone2[],GrayBackgroundZoneup[],GrayBackgroundZonedn[];
int init(){
// код доступен только после оплаты
}
int deinit(){CleanUpOnIsle6(); string lookFor = verticalLinesID+":"; 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(){
// код доступен только после оплаты
}//CreateLVL();
int Win=WindowFind("RSI"); if(Win==-1) Win=0;
int counted_bars=IndicatorCounted(); int i,k,n,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--; limit = MathMin(Bars-counted_bars,Bars-1);
if(returnBars){rsiHu[0] = MathMin(limit+1,Bars-1); return(0);}
if(calculateValue || timeFrame == _Period){
if(!calculateValue && trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
if(!calculateValue && trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for(i=limit;i>=0;i--){CleanUpOnIsle6();
rsi[i] = iSmooth(RSIModifier*(iRSI(NULL,0,RSIper,Price,i)-50.0),SmoothLength,SmoothPhase,i);
if(ShowHistogram){
rsiHu[i] = EMPTY_VALUE;
rsiHd[i] = EMPTY_VALUE;
if(rsi[i]>0) rsiHu[i] = rsi[i];
if(rsi[i]<0) rsiHd[i] = rsi[i];}
rsiUa[i] = rsiUb[i] = EMPTY_VALUE;
rsiDa[i] = rsiDb[i] = EMPTY_VALUE;
trend[i] = trend[i+1];
if(rsi[i]<LevelUp && rsi[i]>LevelDn) trend[i]= 0;
BOXtxt2=" WAITING..."; BOXclr2=C'30,40,50'; BOXsize2=124;
if(rsi[i]>LevelUp){trend[i]= 1; BOXtxt2=" BUYS ONLY - CLOSE ALL SELL TRADES"; BOXclr2=clrBlue; BOXsize2=430;}
if(rsi[i]<LevelDn){trend[i]=-1; BOXtxt2="SELLS ONLY - CLOSE ALL BUY TRADES"; BOXclr2=clrCrimson; BOXsize2=430;}
UpBackgroundZone[i] = EMPTY_VALUE;
DownBackgroundZone[i] = EMPTY_VALUE;
UpBackgroundZone2[i] = EMPTY_VALUE;
DownBackgroundZone2[i] = EMPTY_VALUE;
GrayBackgroundZoneup[i] = EMPTY_VALUE;
GrayBackgroundZonedn[i] = EMPTY_VALUE;
if(trend[i] ==0) {GrayBackgroundZoneup[i] = 100; GrayBackgroundZonedn[i] = -100;}
else if(trend[i] ==-1) {DownBackgroundZone[i] = 100; DownBackgroundZone2[i] = -100; }
else if(trend[i] == 1) {UpBackgroundZone[i] = 100; UpBackgroundZone2[i] = -100; }
if(!calculateValue && trend[i] == 1) PlotPoint(i,rsiUa,rsiUb,rsi);
if(!calculateValue && trend[i] == -1) PlotPoint(i,rsiDa,rsiDb,rsi);
if(showBOXtxt2){SetPanel2(0,ID+"Drak1",1,0,0,0,BOXsize2,22,BOXclr2,PanelBorderColor,PanelBorderWidth,false);
ObjectSetInteger(0,ID+"Drak1",OBJPROP_BGCOLOR,BOXclr2);
SetLabel2(0,ID+"Drak2",1,0,4,0,BOXtxt2,16,"Arial Bold",clrSilver,0,false,true,0,ANCHOR_LEFT_UPPER);}
manageLines(i);} manageAlerts(); return(0);}
limit = fmax(limit,fmin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/_Period));
for (i=limit;i>=0;i--){int y = iBarShift(NULL,timeFrame,Time[i]);
rsi[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIper,Price,RSIModifier,LevelUp,LevelDn,SmoothLength,SmoothPhase,2,y);
trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIper,Price,RSIModifier,LevelUp,LevelDn,SmoothLength,SmoothPhase,7,y);
rsiUa[i] = rsiUb[i] = EMPTY_VALUE;
rsiDa[i] = rsiDb[i] = EMPTY_VALUE;
if(ShowHistogram){
rsiHu[i] = EMPTY_VALUE;
rsiHd[i] = EMPTY_VALUE;
if(rsi[i]>0) rsiHu[i] = rsi[i];
if(rsi[i]<0) rsiHd[i] = rsi[i];}
manageLines(i);
if(!Interpolate || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;
datetime time = iTime(NULL,timeFrame,y);
for(n = 1; i+n < Bars && Time[i+n] >= time; n++) continuПоказано первые 50% кода (символов: 14967)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.