laguerre rsi with laguerre filter 2.2 (arrows + alerts).mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «laguerre rsi with laguerre filter 2.2 (arrows + alerts).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 5, отображаемый в отдельном окне. Он рассчитывает значение Laguerre RSI — сглаженный индикатор относительной силы на основе полиномов Лагерра — и дополнительно применяет Laguerre-фильтр для сглаживания полученной линии.
Индикатор поддерживает несколько режимов смены цвета линии: по пересечению сигналов, по зонам, по уровням и по изменению наклона. Также можно отображать зону без торговли в виде прямоугольника с текстовой подписью.
Продукт позволяет настраивать отображение стрелок на барах при смене цвета и поддерживает многоканальные уведомления: всплывающие сообщения, звуковые сигналы, push-уведомления и электронную почту. Все параметры, включая периоды, гаммы, уровни, цвета и настройки уведомлений, настраиваются пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| Indicator unique ID (UniqueID) | Уникальный идентификатор — Уникальный идентификатор индикатора. |
| Laguerre RSI gamma (RsiPeriod) | Гамма Laguerre RSI — Гамма-фактор для расчёта Laguerre RSI. |
| Price (RsiPrice) | Тип цены — Тип цены для расчёта Laguerre RSI. |
| Laguerre RSI smooth gamma (RsiSmoothGamma) | Гамма сглаживания Laguerre RSI — Гамма-параметр сглаживания Laguerre RSI. |
| Laguerre RSI smooth speed (min 0, max 6) (RsiSmoothSpeed) | Скорость сглаживания Laguerre RSI — Скорость сглаживания Laguerre RSI (от 0 до 6). |
| Laguerre filter gamma (FilterPeriod) | Гамма Laguerre-фильтра — Гамма-фактор для расчёта Laguerre-фильтра. |
| Laguerre filter speed (min 0, max 6) (FilterSpeed) | Скорость сглаживания фильтра — Скорость сглаживания Laguerre-фильтра (от 0 до 6). |
| Level up (LevelUp) | Верхний уровень — Верхний уровень для определения зон и смены цвета. |
| Level down (LevelDown) | Нижний уровень — Нижний уровень для определения зон и смены цвета. |
| Display no trade zone? (NoTradeZoneVisible) | Отображать зону без торговли — Отображение зоны без торговли. |
| No trade zone up (NoTradeZoneUp) | Верхняя граница зоны без торговли — Верхняя граница зоны без торговли. |
| No trade zone down (NoTradeZoneDown) | Нижняя граница зоны без торговли — Нижняя граница зоны без торговли. |
| No trade zone color (NoTradeZoneColor) | Цвет зоны без торговли — Цвет прямоугольника зоны без торговли. |
| No trade zone text color (NoTradeZoneTextColor) | Цвет текста зоны без торговли — Цвет текста внутри зоны без торговли. |
| Color change on : (ColorOn) | Режим смены цвета — Режим смены цвета линии индикатора. |
| Color for up (ColorUp) | Цвет для роста — Цвет линии при значении выше (рост). |
| Color for down (ColorDown) | Цвет для нисходящего направления — Цвет линии при значении ниже (нисходящее направление). |
| Shadow color (ShadowColor) | Цвет тени — Цвет тени линии индикатора. |
| Main line width (LineWidth) | Толщина основной линии — Толщина основной линии индикатора. |
| Shadow width (<=0 main line width+3) (ShadowWidth) | Толщина тени — Толщина тени линии (если 0 или меньше — толщина основной линии плюс 3). |
| Alerts on true/false? (alertsOn) | Уведомления включены — Включение или отключение уведомлений. |
| Alerts on still opened bar true/false? (alertsOnCurrent) | Уведомления на текущем баре — Отправка уведомлений на текущем открытом баре. |
| Alerts pop-up message true/false? (alertsMessage) | Всплывающие сообщения — Отображение всплывающего сообщения при срабатывании уведомления. |
| Alerts sound true/false? (alertsSound) | Звуковые сигналы — Воспроизведение звукового сигнала при срабатывании уведомления. |
| Alerts push notification true/false? (alertsPushNotif) | Push-уведомления — Отправка push-уведомлений. |
| Alerts email true/false? (alertsEmail) | Уведомления по email — Отправка уведомлений по электронной почте. |
| Sound file (soundFile) | Звуковой файл — Путь к звуковому файлу для уведомлений. |
| Arrows visible true/false? (arrowsVisible) | Отображать стрелки — Отображение стрелок на графике. |
| Arrows drawn on newest bar of higher time frame bar true/false? (arrowsOnNewest) | Стрелки на новейшем баре старшего ТФ — Размещение стрелок на новейшем баре старшего таймфрейма. |
| Unique ID for arrows (arrowsIdentifier) | Идентификатор стрелок — Уникальный идентификатор для стрелок. |
| Upper arrow gap (arrowsUpperGap) | Отступ стрелки вверх — Отступ вверх от цены для размещения стрелки роста. |
| Lower arrow gap (arrowsLowerGap) | Отступ стрелки вниз — Отступ вниз от цены для размещения стрелки нисходящего сигнала. |
| Up arrow color (arrowsUpColor) | Цвет стрелки роста — Цвет стрелки для роста. |
| Down arrow color (arrowsDnColor) | Цвет стрелки нисходящего сигнала — Цвет стрелки для нисходящего сигнала. |
| Up arrow code (arrowsUpCode) | Код стрелки роста — Код стрелки для роста. |
| Down arrow code (arrowsDnCode) | Код стрелки нисходящего сигнала — Код стрелки для нисходящего сигнала. |
| Up arrow size (arrowsUpSize) | Размер стрелки роста — Размер стрелки для роста. |
| Down arrow size (arrowsDnSize) | Размер стрелки нисходящего сигнала — Размер стрелки для нисходящего сигнала. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 10
#property indicator_color1 clrSilver
#property indicator_color2 clrSilver
#property indicator_color3 C'255,238,210'
#property indicator_color10 clrDimGray
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
#property indicator_style10 STYLE_DASHDOTDOT
#property strict
enum enPrices
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_average, // Average (high+low+open+close)/4
pr_medianb, // Average median body (open+close)/2
pr_tbiased, // Trend biased price
pr_tbiased2, // Trend biased (extreme) price
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage, // Heiken ashi average
pr_hamedianb, // Heiken ashi median body
pr_hatbiased, // Heiken ashi trend biased price
pr_hatbiased2, // Heiken ashi trend biased (extreme) price
pr_habclose, // Heiken ashi (better formula) close
pr_habopen , // Heiken ashi (better formula) open
pr_habhigh, // Heiken ashi (better formula) high
pr_hablow, // Heiken ashi (better formula) low
pr_habmedian, // Heiken ashi (better formula) median
pr_habtypical, // Heiken ashi (better formula) typical
pr_habweighted,// Heiken ashi (better formula) weighted
pr_habaverage, // Heiken ashi (better formula) average
pr_habmedianb, // Heiken ashi (better formula) median body
pr_habtbiased, // Heiken ashi (better formula) trend biased price
pr_habtbiased2 // Heiken ashi (better formula) trend biased (extreme) price
};
enum enColorOn
{
col_onSign, // Change color on signal cross
col_onZone, // Change color on zone
col_onLevels, // Change color on levels cross
col_onSlope, // Change color on slope change
col_noChange // No color channge
};
extern string UniqueID = "Laguerre rsi & filter 1"; // Indicator unique ID
extern double RsiPeriod = 41; // Laguerre RSI gamma
extern enPrices RsiPrice = 0; // Price
extern double RsiSmoothGamma = 0.001; // Laguerre RSI smooth gamma
extern int RsiSmoothSpeed = 2; // Laguerre RSI smooth speed (min 0, max 6)
extern double FilterPeriod = 16; // Laguerre filter gamma
extern int FilterSpeed = 2; // Laguerre filter speed (min 0, max 6)
extern double LevelUp = 0.85; // Level up
extern double LevelDown = 0.15; // Level down
extern bool NoTradeZoneVisible = true; // Display no trade zone?
extern double NoTradeZoneUp = 0.65; // No trade zone up
extern double NoTradeZoneDown = 0.35; // No trade zone down
extern color NoTradeZoneColor = C'255,238,210'; // No trade zone color
extern color NoTradeZoneTextColor = clrBlack; // No trade zone text color
extern enColorOn ColorOn = col_onZone; // Color change on :
extern color ColorUp = clrLimeGreen; // Color for up
extern color ColorDown = clrRed; // Color for down
extern color ShadowColor = C'255,238,210'; // Shadow color
extern int LineWidth = 3; // Main line width
extern int ShadowWidth = 0; // Shadow width (<=0 main line width+3)
input bool alertsOn = true; // Alerts on true/false?
input bool alertsOnCurrent = false; // Alerts on still opened bar true/false?
input bool alertsMessage = true; // Alerts pop-up message true/false?
input bool alertsSound = false; // Alerts sound true/false?
input bool alertsPushNotif = false; // Alerts push notification true/false?
input bool alertsEmail = false; // Alerts email true/false?
input string soundFile = "alert2.wav"; // Sound file
input bool arrowsVisible = false; // Arrows visible true/false?
input bool arrowsOnNewest = false; // Arrows drawn on newest bar of higher time frame bar true/false?
input string arrowsIdentifier = "lag Arrows1"; // Unique ID for arrows
input double arrowsUpperGap = 0.5; // Upper arrow gap
input double arrowsLowerGap = 0.5; // Lower arrow gap
input color arrowsUpColor = clrBlue; // Up arrow color
input color arrowsDnColor = clrCrimson; // Down arrow color
input int arrowsUpCode = 221; // Up arrow code
input int arrowsDnCode = 222; // Down arrow code
input int arrowsUpSize = 2; // Up arrow size
input int arrowsDnSize = 2; // Down arrow size
double lag[],fil[],levu[],levd[],buffer1da[],buffer1db[],buffer1ua[],buffer1ub[],shadowa[],shadowb[],colors[];
string shortName;
int init()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason) { ObjectsDeleteAll(0,arrowsIdentifier+":"); ObjectsDeleteAll(0,UniqueID+":"); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = fmin(Bars - counted_bars,Bars-1);
double gammar = 1 - 10/(RsiPeriod+9.0);
double gammaf = 1 - 10/(FilterPeriod+9.0);
if (colors[limit]==-1) { CleanPoint(limit,buffer1da,buffer1db); CleanPoint(limit,shadowa,shadowb); }
if (colors[limit]== 1) { CleanPoint(limit,buffer1ua,buffer1ub); CleanPoint(limit,shadowa,shadowb); }
for(int i = limit; i >= 0 ; i--)
{
lag[i] = LaGuerreRsi(getPrice(RsiPrice,Open,Close,High,Low,i),gammar,RsiSmoothGamma,RsiSmoothSpeed,i);
fil[i] = LaGuerreFil(lag[i],gammaf,FilterSpeed,i);
levu[i] = fmax(NoTradeZoneUp,NoTradeZoneDown);
levd[i] = fmin(NoTradeZoneUp,NoTradeZoneDown);
buffer1da[i] = EMPTY_VALUE;
buffer1db[i] = EMPTY_VALUE;
buffer1ua[i] = EMPTY_VALUE;
buffer1ub[i] = EMPTY_VALUE;
shadowa[i] = EMPTY_VALUE;
shadowb[i] = EMPTY_VALUE;
switch (ColorOn)
{
case col_noChange: colors[i] = 0; break;
case col_onSign: colors[i] = (lag[i]>fil[i]) ? 1 : (lag[i]<fil[i]) ? -1 : (i<Bars-1) ? colors[i+1] : 0; break;
case col_onZone: colors[i] = (lag[i]>levu[i]) ? 1 : (lag[i]<levd[i]) ? -1 : 0; break;
case col_onLevels: colors[i] = (lag[i]>fmax(LevelUp,LevelDown)) ? 1 : (lag[i]<fmin(LevelUp,LevelDown)) ? -1 : 0; break;
case col_onSlope: colors[i] = (i<Bars-1) ? (lag[i]>lag[i+1]) ? 1 : (lag[i]<lag[i+1]) ? -1 : colors[i+1] : 0; break;
}
if (colors[i] == -1) { PlotPoint(i,buffer1da,buffer1db,lag); PlotPoint(i,shadowa,shadowb,lag); }
if (colors[i] == 1) { PlotPoint(i,buffer1ua,buffer1ub,lag); PlotPoint(i,shadowa,shadowb,lag); }
if (arrowsVisible)
{
string lookFor = arrowsIdentifier+":"+(string)Time[i]; if (ObjectFind(0,lookFor)==0) ObjectDelete(0,lookFor);
if (i<(Bars-1) && colors[i] != colors[i+1])
{
if (colors[i] == 1) drawArrow(i,arrowsUpColor,arrowsUpCode,arrowsUpSize,false);
if (colors[i] ==-1) drawArrow(i,arrowsDnColor,arrowsDnCode,arrowsDnSize, true);
}
}
}
if (NoTradeZoneVisible)
{
string name = UniqueID+":zone";
int window = WindowFind(shortName);
if (ObjectFind(name) == -1)
ObjectCreate(name,OBJ_RECTANGLE,window,0,0,0,0);
ObjectSet(name,OBJPROP_TIME1,Time[Bars-1]);
ObjectSet(name,OBJPROP_TIME2,Time[0]);
ObjectSet(name,OBJPROP_PRICE1,NoTradeZoneUp);
ObjectSet(name,OBJPROP_PRICE2,NoTradeZoneDown);
ObjectSet(name,OBJPROP_COLOR,NoTradeZoneColor);
ObjectSet(name,OBJPROP_BACK,true);
name = UniqueID+":text";
if (ObjectFind(name) == -1)
ObjectCreate(name,OBJ_TEXT,window,0,0);
ObjectSet(name,OBJPROP_TIME1,Time[0]+30*Period()*60);
ObjПоказано первые 50% кода (символов: 14533)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.