dz_rsioma_-_oma_pre-filtered.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dz_rsioma_-_oma_pre-filtered.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.