DRSI filtered
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «drsi_filtered.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
DRSI filtered — это пользовательский индикатор для платформы MetaTrader 5, отображаемый в отдельном подокне графика. Он рассчитывает показатель направленной силы на основе анализа ценовых разниц с предварительным сглаживанием заданным фильтром и нормализует результат в диапазон от 0 до 100 с уровнем 50.
Индикатор использует два параметра: период расчёта и период фильтрации. Параметр период определяет количество баров, участвующих в суммировании значений, а параметр filter задаёт длину сглаживающей фильтрации для исходных данных. При недостаточном количестве исторических данных индикатор сохраняет последнее вычисленное значение.
Индикатор рисуется одним буфером линией цветом PaleVioletRed толщиной 2 пикселя. Его назначение — визуализация относительной силы движения цены в отфильтрованном виде для помощи в техническом анализе.
Настройки программы
| Настройка | Описание |
|---|---|
| period | Период расчёта индикатора — количество баров, участвующих в суммировании значений. |
| filter | Период фильтрации — задаёт длину сглаживающей фильтрации для исходных данных. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 PaleVioletRed
#property indicator_width1 2
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 50
extern int period = 14;
extern int filter = 15;
double drsi[];
int init()
{
// код доступен только после оплаты
}
double workDrsi[][2];
#define _dmp 0
#define _dmm 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-1);
if (ArrayRange(workDrsi,0)!=Bars) ArrayResize(workDrsi,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--,r++)
{
double lm = iGflt(Low[i+1]-Low[i],filter,i,0);
double hm = iGflt(High[i]-High[i+1],filter,i,1);
if (hm>0 && hm>lm)
workDrsi[r][_dmp] = hm;
else workDrsi[r][_dmp] = 0;
if (lm>0 && lm>hm)
workDrsi[r][_dmm] = lm;
else workDrsi[r][_dmm] = 0;
double dmp = 0;
double dmm = 0;
for (iПоказано первые 50% кода (символов: 1673)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.