← К каталогу
Исходный код · ID 1785

dz_rsioma_-_oma_pre-filtered.mq5

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой пользовательский индикатор для MetaTrader 4 (MQL4), который рассчитывает модифицированный индикатор RSI с адаптивным сглаживанием OMA (Optimal Moving Average). Индикатор отображает несколько буферов данных в отдельном окне, включая значения сглаженного RSI, скользящую среднюю и зоны динамических вероятностей.

Для генерации сигналов используются функции внешней библиотеки dynamicZone.dll, вычисляющие вероятностные зоны покупок и продаж на основе массива RSI. Также накладывается пользовательская скользящая средая (с типом и периодом, задаваемыми пользователем), позволяющая идентифицировать текущий тренд по пересечению RSI этой линии.

Индикатор поддерживает отображение стрелок при изменении тренда, работу на множественных таймфреймах с возможностью интерполяции значений между барами, а также настраиваемую систему уведомлений — визуальные оповещения, звуковые сигналы и email-уведомления, срабатывающие при пересечении скользящей средней и изменении направления наклона RSI.

Настройки программы

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором работает индикатор, или специальные режимы calculateValue и returnBars.
RsiMethod Метод RSI — Метод расчёта RSI: 0 — стандартный RSI, 1 — Wilders RSI, 2 — RSX, 3 — Cuttler RSI.
RsiOma_Period Период OMA для RSI — Период сглаживания OMA, применяемый при расчёте значения RSI.
RsiOma_Price Цена для OMA RSI — Тип цены, используемой в качестве исходных данных для расчёта RSI через OMA.
RsiOma_PriceShift Сдвиг цены для OMA RSI — Сдвиг цены, применяемый при расчёте RSI через OMA.
Oma_Speed Скорость OMA — Константа скорости сглаживания, используемая в формуле адаптивного OMA.
Oma_Adaptive Адаптивный OMA — Переключатель адаптивного расчёта периода сглаживания OMA на основе соотношения сигнала и шума.
MaPeriod Период скользящей средней — Период скользящей средней, накладываемой на значения RSI для определения тренда.
MaType Тип скользящей средней — Тип скользящей средней (например, MODE_LWMA), используемой при расчёте линии тренда на RSI.
DzLookBackBars Количество баров для Dz — Количество баров, используемых для расчёта зон Dynamic Zone.
DzBuyProbability Вероятность покупки Dz — Пороговое значение вероятности для расчёта зоны покупок через функции Dynamic Zone из внешней библиотеки.
DzSellProbability Вероятность продажи Dz — Пороговое значение вероятности для расчёта зоны продаж через функции Dynamic Zone из внешней библиотеки.
arrowsVisible Отображение стрелок — Переключатель отображения стрелок на графике при смене тренда.
arrowsIdentifier Идентификатор стрелок — Идентификатор объектов-стрелок на графике, используемый для создания и удаления.
arrowsUpColor Цвет стрелок вверх — Цвет стрелок, указывающих на изменение тренда вверх.
arrowsDnColor Цвет стрелок вниз — Цвет стрелок, указывающих на изменение тренда вниз.
arrowsUpperGap Зазор стрелок вверх — Множитель верхнего зазора стрелок, умножаемый на значение ATR для определения позиции от цены.
arrowsLowerGap Зазор стрелок вниз — Множитель нижнего зазора стрелок, умножаемый на значение ATR для определения позиции от цены.
alertsOn Оповещения включены — Главный переключатель, включающий или отключающий всю систему оповещений.
alertsOnMaCross Оповещения при пересечении MA — Переключатель оповещений при пересечении RSI со скользящей средней (сменой тренда).
alertsOnSlopeChange Оповещения при изменении наклона — Переключатель оповещений при изменении направления наклона RSI (вверх или вниз).
alertsOnCurrent Проверять текущий бар — Переключатель, определяющий, проверять ли текущее значение (0) или предыдущее (1) бар для срабатывания оповещений.
alertsMessage Сообщения оповещений — Переключатель отображения всплывающих сообщений-оповещений на графике.
alertsSound Звуковые оповещения — Переключатель воспроизведения звукового сигнала при срабатывании оповещений.
alertsEmail Email-уведомления — Переключатель отправки email-уведомлений при срабатывании событий.
soundfile Звуковой файл — Имя звукового файла, воспроизводимого при срабатывании звуковых оповещений.
Interpolate Интерполяция — Переключатель интерполяции значений индикатора между барами на разных таймфреймах.
Получить полный код

Поиск по коду файла

#property indicator_separate_window
#property indicator_buffers    6
#property indicator_color1     LimeGreen
#property indicator_color2     Red
#property indicator_color3     LimeGreen
#property indicator_color4     Red
#property indicator_color5     Red
#property indicator_color6     Gold
#property indicator_width3     2
#property indicator_width4     2
#property indicator_width5     2
#property indicator_style1     STYLE_DOT
#property indicator_style2     STYLE_DOT
#property indicator_style6     STYLE_DOT
#property indicator_levelcolor MediumOrchid
#import "dynamicZone.dll"
   double dzBuy(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i );
   double dzSell(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i );
#import

extern string TimeFrame         = "Current time frame";
extern int    RsiMethod         = 2;
extern int    RsiOma_Period     = 14;
extern int    RsiOma_Price      = 0;
extern int    RsiOma_PriceShift = 0;
extern double Oma_Speed         = 3;
extern bool   Oma_Adaptive      = true;
extern int    MaPeriod          = 10;
extern int    MaType            = MODE_LWMA;
extern int    DzLookBackBars    = 35;
extern double DzBuyProbability  = 0.20;
extern double DzSellProbability = 0.20;
extern bool   arrowsVisible     = false;
extern string arrowsIdentifier  = "RsiomaArrows1";
extern color  arrowsUpColor     = DeepSkyBlue;
extern color  arrowsDnColor     = Red;
extern double arrowsUpperGap    = 0.75;
extern double arrowsLowerGap    = 0.75;

extern string note                = "turn on Alert = true; turn off = false";
extern bool   alertsOn            = false;
extern bool   alertsOnMaCross     = true;
extern bool   alertsOnSlopeChange = true;
extern bool   alertsOnCurrent     = true;
extern bool   alertsMessage       = true;
extern bool   alertsSound         = false;
extern bool   alertsEmail         = false;
extern string soundfile           = "alert2.wav";
extern bool   Interpolate         = true;

double rsi[];
double rsida[];
double rsidb[];
double ma[];
double dzu[];
double dzd[];
double trend[];
double slope[];

string indicatorFileName;
int    timeFrame;
bool   returnBars;
bool   calculateValue;

int init()
{
      // код доступен только после оплаты
   }
int deinit()
{
   string lookFor       = arrowsIdentifier+":";
   int    lookForLength = StringLen(lookFor);
   for (int i=ObjectsTotal()-1; i>=0; i--)
   {
      string objectName = ObjectName(i);
         if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
   }
   return(0); 
}

int start()
{
      // код доступен только после оплаты
   }

void manageArrow(int i)
{
   if (arrowsVisible )
   {
         string lookFor = arrowsIdentifier+":"+Time[i]; ObjectDelete(lookFor);
         if (trend[i]!=trend[i+1])
         {
            if (trend[i] == 1) drawArrow(i,arrowsUpColor,241,false);
            if (trend[i] ==-1) drawArrow(i,arrowsDnColor,242,true);
         }
   }
}               

void drawArrow(int i,color theColor,int theCode,bool up)
{
   string name = arrowsIdentifier+":"+Time[i];
   double gap  = iATR(NULL,0,20,i);

      ObjectCreate(name,OBJ_ARROW,0,Time[i],0);
         ObjectSet(name,OBJPROP_ARROWCODE,theCode);
         ObjectSet(name,OBJPROP_COLOR,theColor);
         if (up)
               ObjectSet(name,OBJPROP_PRICE1,High[i]+gap*arrowsUpperGap);
         else  ObjectSet(name,OBJPROP_PRICE1,Low[i] -gap*arrowsLowerGap);
}

double workOma[][7];
#define F01 0
#define F02 1
#define F03 2
#define F04 3
#define F05 4
#define F06 5
#define prc 6

double iOma(double price, double averagePeriod, double constant, bool ad

Показано первые 50% кода (символов: 13004)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 300,40₽ ≈ $15.89