rsx_on_oma_filter.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsx_on_oma_filter.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
RSX on OMA Filter — пользовательский индикатор для MetaTrader 5, отображающий сглажённый осциллятор RSX (от 0 до 100, центр — 50) в отдельном окне. Основная линия рассчитывается на основе скользящей средней OMA, а результат визуализируется в виде двух гистограмм: восходящего тренда (голубой) и нисходящего тренда (красный).
Индикатор определяет направление тренда по уровням RSX (uptrendlevel и dntrendlevel), а торговые сигналы формируются при пересечении дополнительных уровней (uptradelevel и dntradelevel) в рамках подтверждённого тренда. Адаптивный режим OMA позволяет автоматически подстраивать период сглаживания под текущее состояние рынка.
Индикатор использует четыре буфера: два видимых гистограммных и два скрытых (для вспомогательных расчётов). Настройки включают период RSX, применяемую цену, уровни тренда и торговли, а также параметры OMA. Продукт предназначен для технического анализа ценовых данных.
Настройки программы
| Настройка | Описание |
|---|---|
| RsxLength | Период расчёта осциллятора RSX, определяющий глубину сглаживания и чувствительность основного показателя. |
| Price | Тип цены, используемой для расчёта индикатора. Указывается как числовой код применяемой цены. |
| uptrendlevel | Уровень RSX для подтверждения восходящего тренда. При значении RSX выше этого уровня тренд считается восходящим. |
| dntrendlevel | Уровень RSX для подтверждения нисходящего тренда. При значении RSX ниже этого уровня тренд считается нисходящим. |
| uptradelevel | Уровень RSX для формирования сигнала о восходящем тренде. Сигнал генерируется при пересечении этого уровня вверх в рамках подтверждённого восходящего тренда. |
| dntradelevel | Уровень RSX для формирования сигнала о нисходящем тренде. Сигнал генерируется при пересечении этого уровня вниз в рамках подтверждённого нисходящего тренда. |
| OmaLength | Период сглаживания для расчёта оптимизированной скользящей средней OMA, используемой в качестве основного фильтра. |
| OmaSpeed | Параметр скорости сглаживания OMA, влияющий на отзывчивость фильтра к изменению цены. Допустимые значения не менее -1.5. |
| OmaAdaptive | Включает или отключает адаптивный режим сглаживания OMA. При активном состоянии период сглаживания автоматически корректируется в зависимости от соотношения сигнала и шума на ценовых данных. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum -2
#property indicator_maximum 2
#property indicator_buffers 4
#property indicator_color2 Aqua
#property indicator_color3 Crimson
#property indicator_width2 3
#property indicator_width3 3
#property indicator_level1 0
#property indicator_levelstyle STYLE_DOT
#property indicator_levelcolor Magenta
extern int RsxLength = 14;
extern int Price = 0;
extern int uptrendlevel= 51;
extern int dntrendlevel= 49;
extern int uptradelevel= 25;
extern int dntradelevel= 75;
extern int OmaLength = 5;
extern double OmaSpeed = 8.0;
extern bool OmaAdaptive = true;
double rsx[];
double UpBuffer[];
double DnBuffer[];
double TrBuffer[];
double wrkBuffer[][13];
double stored[][7];
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,r,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = Bars-counted_bars;
if (ArrayRange(wrkBuffer,0) != Bars) { ArrayResize(wrkBuffer,Bars); ArrayResize(stored,Bars); }
double Kg = (3.0)/(2.0+RsxLength);
double Hg = 1.0-Kg;
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iAverage(iMA(NULL,0,1,0,MODE_SMA,Price,i),OmaLength,OmaSpeed,OmaAdaptive,r);
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continue; }
double roc = wrkBuffer[r][12]-wrkBuffer[r-1][12];
double roa = MathAbs(roc);
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*roc + Hg*wrkBuffer[r-1][kk+0];
Показано первые 50% кода (символов: 3626)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.