rsi_of_ema_variation__filter_2.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_of_ema_variation__filter_2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 5 рассчитывает RSI на основе специально обработанного ценового буфера. Сначала строится простое скользящее среднее (SMA) заданной цены, затем оно дважды сглаживается экспоненциальными скользящими средними с периодом, определяемым делителем. Результат дополнительно фильтруется по волатильности: если текущее изменение буфера меньше порога, оно заменяется предыдущим значением. После фильтрации на обработанном буфере вычисляется RSI заданного периода.
Индикатор отображает три линии в отдельном окне: основную линию RSI (зелёная) и две вспомогательные линии (оранжевые), которые визуализируют точки изменения направления RSI. Вспомогательные линии чередуются в зависимости от того, возрастает или убывает RSI, что позволяет наглядно видеть развороты тренда.
Настройки включают период RSI, расчётный период сглаживания, тип цены, делитель периода EMA, коэффициент фильтра волатильности и числовую точность отображения.
Настройки программы
| Настройка | Описание |
|---|---|
| RSi period (RsiPeriod) | Период расчёта индикатора RSI на обработанном буфере |
| Calculating period (period) | Период расчёта, определяющий длину скользящего среднего и диапазон фильтрации волатильности |
| Price (Price) | Тип цены, используемый при расчёте простого скользящего среднего |
| Divisor to use for "ema" calculation (Divisor) | Делитель, используемый для определения периода экспоненциального скользящего среднего при двойном сглаживании |
| Filter (Filter) | Коэффициент фильтра волатильности: пороговое значение для подавления незначительных изменений буфера |
| Precision | Количество знаков после запятой при отображении значений индикатора |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
extern int RsiPeriod = 14; // RSi period
extern int period = 14; // Calculating period
extern int Price = PRICE_CLOSE; // Price
extern double Divisor = 3; // Divisor to use for "ema" calculation
extern double Filter = 1; // Filter
extern int Precision = 5;
double rsi[];
double rsida[];
double rsidb[];
double slope[];
double buffer[];
int init()
{
// код доступен только после оплаты
}
double work[][2];
#define _change 0
#define _achang 1
int start()
{
// код доступен только после оплаты
}
int i,r,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=MathMin(Bars-counted_bars,Bars-2);
if (ArrayRange(work,0)!=Bars) ArrayResize(work,Bars);
if (slope[limit]==-1) CleanPoint(limit,rsida,rsidb);
for(i=limit, r=Bars-i-1; i>=0; i--,r++)
{
buffer[i] = iEma(iEma(iMA(NULL,0,1,0,MODE_SMA,Price,i),period/Divisor,Bars,i,0),period/Divisor,Bars,i,1);
if (Filter>0)
{
work[r][_change] = MathAbs(buffer[i]-buffer[i+1]);
work[r][_achang] = work[r][_change];
for (int k=1; k<period && (r-k)>=0; k++) work[r][_achang] += work[r-k][_change];
work[r][_achang] /= 1.0*period;
double stddev = 0; for (k=0; k<period && (Показано первые 50% кода (символов: 2755)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.