Parabolic RSI
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «parabolic_rsi_2_mtf.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор Parabolic RSI представляет собой пользовательский индикатор для MetaTrader 5, который объединяет расчёт сглаженного RSI с логикой Parabolic SAR. Значения RSI сглаживаются с помощью собственной реализации тройного скользящего среднего (TMA), после к чему к ним применяется алгоритм Parabolic SAR, определяющий точки разворота на основе экстремумов ценовых значений RSI.
Индикатор поддерживает работу на разных таймфреймах (MTF): при выборе таймфрейма, отличного от текущего, он вызывает собственную копию через iCustom и выполняет интерполяцию значений между барами для отображения данных на графике текущего таймфрейма.
Встроенная система уведомлений позволяет настраивать оповещения по сообщениям, звуку и электронной почте при появлении сигналов разворота на указанном баре. Индикатор отрисовывает пять буферов: линию RSI и стрелки Parabolic SAR для направлений вверх и вниз, включая отдельные буферы для определения разворотов на предыдущем баре.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором производится расчёт индикатора. При значении текущего таймфрейма расчёт выполняется на отображаемом графике. |
| RsiPeriod | Период расчёта индикатора RSI — количество баров, используемых для вычисления основного значения RSI. |
| RsiSmooth | Период сглаживания RSI — длина скользящего среднего, применяемого для сглаживания значений RSI. |
| AccStep | Шаг ускорения Parabolic SAR — начальное значение ускорения, которое увеличивается при каждом новом экстремуме. |
| AccLimit | Предел ускорения Parabolic SAR — максимальное значение ускорения, ограничивающее скорость изменения точки SAR. |
| alertsOn | Главный переключатель системы уведомлений — включает или отключает все типы оповещений. |
| alertsOnCurrent | Определяет, на каком баре отслеживать разворот: на текущем (нулевом) или на предыдущем баре. |
| alertsMessage | Включает или отключает отображение текстовых сообщений-оповещений в терминале при развороте. |
| alertsSound | Включает или отключает звуковое оповещение при срабатывании сигнала разворота. |
| alertsEmail | Включает или отключает отправку электронной почты при срабатывании уведомлений о развороте. |
| Interpolate | Переключатель интерполяции между барами при отображении данных с другого таймфрейма на текущем графике. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 DarkGray
#property indicator_color2 LimeGreen
#property indicator_color3 PaleVioletRed
#property indicator_color4 LimeGreen
#property indicator_color5 PaleVioletRed
#property indicator_width4 2
#property indicator_width5 2
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern int RsiPeriod = 14;
extern int RsiSmooth = 3;
extern double AccStep = 0.01;
extern double AccLimit = 0.1;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool Interpolate = true;
double rsi[];
double sarUp[];
double sarDn[];
double saraUp[];
double saraDn[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
double workTma[][2];
double iTma(double price, double period, int r, int instanceNo=0)
{
if (ArrayRange(workTma,0)!= Bars) ArrayResize(workTma,Bars); r=Bars-r-1;
if (period<=1) return(price);
workTma[r][instanceNo] = price;
double half = (period+1.0)/2.0;
double sum = price;
double sumw = 1;
for(int k=1; k<period && (r-k)>=0; k++)
{
double weight = k+1; if (weight > half) weight = period-k;
sumw += weight;
sum += weight*workTma[r-k][instanceNo];
}
returПоказано первые 50% кода (символов: 7641)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.