smoothed rsi v012 mtf alerts.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smoothed rsi v012 mtf alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Smoothed RSI» для MetaTrader 5 рассчитывает стандартный RSI на выбранной цене и при необходимости сглаживает его с помощью пользовательской функции сглаживания. Результат отображается в отдельном окне в диапазоне от 0 до 1: линия основного значения — серым, точки восходящего тренда — зелёным, нисходящего — оранжевым.
Поддерживается мног таймфреймовый анализ: индикатор способен брать данные с другого таймфрейма текущего графика и при необходимости интерполировать значения между барами. Уровни переключения тренда (верхний и нижний) задаются пользователем отдельными параметрами.
Встроена система уведомлений: при смене направления тренда на указанном баре индикатор может вывестить сообщение на экран, воспроизвести звуковой сигнал или отправить электронное письмо. Все типы уведомлений включаются и отключаются независимо друг от друга.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором производится расчёт индикатора. По умолчанию — текущий таймфрейм графика. |
| Length | Период расчёта индикатора RSI (количество баров). |
| Price | Тип цены, на основе которой рассчитывается RSI (Close, Open, High, Low, Median, Typical или Weighted). |
| LevelUp | Верхний уровень, выше которого RSI считается находящимся во восходящем тренде. |
| LevelDown | Нижний уровень, ниже которого RSI считается находящимся в нисходящем тренде. |
| SmoothLength | Период сглаживания значений RSI. Если значение больше 1, применяется дополнительное сглаживание. |
| AlertsOn | Включает или отключает всю систему уведомлений индикатора. |
| AlertsOnCurrent | Определяет, на каком баре отслеживать смену тренда: на текущем открытом баре или на уже закрытом. |
| AlertsMessage | Включает или отключает отображение текстовых сообщений-уведомлений на экране. |
| AlertsSound | Включает или отключает воспроизведение звукового сигнала при смене тренда. |
| AlertsEmail | Включает или отключает отправку электронных писем при смене направления тренда. |
| Interpolate | Включает или отключает интерполяцию значений между барами при мног таймфреймовом расчёте. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Gray
#property indicator_color2 LimeGreen
#property indicator_color3 LimeGreen
#property indicator_color4 Orange
#property indicator_color5 Orange
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 3
#property indicator_width5 3
#property indicator_minimum 0
#property indicator_maximum 1
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern int Length = 14;
extern ENUM_APPLIED_PRICE Price = PRICE_CLOSE;
extern double LevelUp = 0.70;
extern double LevelDown = 0.30;
extern double SmoothLength = 20;
extern bool AlertsOn = false; // Turn alerts on?
extern bool AlertsOnCurrent = true; // Alerts on current (still opened) bar?
extern bool AlertsMessage = true; // Alerts should display message?
extern bool AlertsSound = false; // Alerts should play alert sound?
extern bool AlertsEmail = false; // Alerts should send email?
extern bool Interpolate = true;
double rsi[];
double rsiUa[];
double rsiUb[];
double rsiDa[];
double rsiDb[];
double prc[];
double trend[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { rsi[0] = limit+1; return(0); }
if (TimeFrame!=Period())
{
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
if (trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
if (trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for (int i=limit;i>=0; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i]);
rsi[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,Length,Price,LevelUp,LevelDown,SmoothLength,AlertsOn,AlertsOnCurrent,AlertsMessage,AlertsSound,AlertsEmail,0,y);
trend[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,Length,Price,LevelUp,LevelDown,SmoothLength,AlertsOn,AlertsOnCurrent,AlertsMessage,AlertsSound,AlertsEmail,6,y);
rsiUa[i] = EMPTY_VALUE;
rsiUb[i] = EMPTY_VALUE;
rsiDa[i] = EMPTY_VALUE;
rsiDb[i] = EMPTY_VALUE;
if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;
datetime time = iTime(NULL,TimeFrame,y);
for(int n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;
foПоказано первые 50% кода (символов: 5957)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.