Laguerre PPO
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «laguerre ppo 1.06 1090 fix.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор Laguerre PPO рассчитывает процентный осциллятор на основе фильтров Лагера с быстрой и медленной гамма-параметрами. Он вычисляет соотношение двух лагере-фильтров, а затем определяет процентильный ранг полученных значений за заданный период отбора, отображая результаты в отдельном окне в виде гистограмм с цветовой индикацией состояний.
Поддерживается работа на различных таймфреймах, включая межтаймфреймовый режим с возможностью интерполяции данных. Индикатор позволяет настраивать пороговые значения для определения состояний и уровни отображения.
Встроенная система уведомлений поддерживает всплывающие сообщения, звуковые сигналы, email-рассылку и push-уведомления. Индикатор предназначен для аналитики ценовых данных и технических показателей на платформе MetaTrader 5.
Настройки программы
| Настройка | Описание |
|---|---|
| Time frame (TimeFrame) | Таймфрейм для расчёта индикатора |
| Look back period (LookBack) | Период отбора для расчёта процентильного ранга |
| Fast Laguerre gamma value (GammaFast) | Быстрое гамма-значение фильтра Лагера |
| Slow Laguerre gamma value (GammaSlow) | Медленное гамма-значение фильтра Лагера |
| Price (Price) | Тип цены для расчёта |
| Lower percent to use (Percent1) | Нижний процентный порог для определения уровней |
| Higher percent to use (Percent2) | Верхний процентный порог для определения уровней |
| Turn alerts on? (alertsOn) | Включение или отключение системы уведомлений |
| Alerts on current (still opened) bar? (alertsOnCurrent) | Отслеживание сигнала на текущей (открытой) свече |
| Alerts should show pop-up message? (alertsMessage) | Отображение всплывающего сообщения при сигнале |
| Alerts should play alert sound? (alertsSound) | Воспроизведение звукового сигнала при срабатывании |
| Alerts should send push notification? (alertsPushNotif) | Отправка push-уведомлений при срабатывании сигнала |
| Alerts should send email? (alertsEmail) | Отправка email-уведомлений при срабатывании сигнала |
| Bars width for display (barsWidth) | Ширина столбцов гистограммы для отображения |
| Interpolate data in multi time frame mode? (Interpolate) | Интерполяция данных в межтаймфреймовом режиме |
Поиск по коду файла
#property description "Laguerre PPO"
#property description "made by mladen"
#property description "for more visit www.forex-station.com"
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 clrSilver
#property indicator_color2 clrSilver
#property indicator_color3 clrGreen
#property indicator_color4 clrLimeGreen
#property indicator_color5 clrOrangeRed
#property indicator_color6 clrSandyBrown
#property indicator_color7 clrDarkGray
#property indicator_color8 clrDarkGray
#property strict
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Time frame
extern int LookBack = 200; // Look back period
extern double GammaFast = 0.4; // Fast Laguerre gamma value
extern double GammaSlow = 0.8; // Slow Laguerre gamma value
extern ENUM_APPLIED_PRICE Price = PRICE_MEDIAN; // Price
extern double Percent1 = 80; // Lower percent to use
extern double Percent2 = 90; // Higher percent to use
extern bool alertsOn = false; // Turn alerts on?
extern bool alertsOnCurrent = true; // Alerts on current (still opened) bar?
extern bool alertsMessage = true; // Alerts should show pop-up message?
extern bool alertsSound = false; // Alerts should play alert sound?
extern bool alertsPushNotif = false; // Alerts should send push notification?
extern bool alertsEmail = false; // Alerts should send email?
extern int barsWidth = 2; // Bars width for display
extern bool Interpolate = true; // Interpolate data in multi time frame mode?
double pctRankT[],pctRankB[],histnu[],histnd[],histd[],histdd[],histu[],histuu[],ppoT[],ppoB[],stateu[],stated[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
if (Bars<=2) return(0);
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { histnu[0] = limit+1; return(0); }
if (TimeFrame != _Period)
{
limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/_Period));
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i]);
pctRankT[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,LookBack,GammaFast,GammaSlow,Price,Percent1,Percent2,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsPushNotif,alertsEmail, 6,y);
pctRankB[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,LookBack,GammaFast,GammaSlow,Price,Percent1,Percent2,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsPushNotif,alertsEmail, 7,y);
stateu[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,LookBack,GammaFast,GammaSlow,Price,Percent1,Percent2,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsPushNotif,alertsEmail,10,y);
stated[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,LookBack,GammaFast,GammaSlow,Price,Percent1,Percent2,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsPushNotif,alertsEmail,11,y);
histnd[i] = EMPTY_VALUE;
histnu[i] = EMPTY_VALUE;
histu[i] = EMPTY_VALUE;
histd[i] = EMPTY_VALUE;
histuu[i] = EMPTY_VALUE;
histdd[i] = EMPTY_VALUE;
if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;
int n,j; datetime time = iTime(NULL,TimeFrame,y);
for(n = 1; (i+n)<Bars && Time[i+n] >= time; n++) continue;
for(j = 1; j<n && (i+n)<Bars && (i+j)<Bars; j++)
{
pctRankT[i+j] = pctRankT[i] + (pctRankT[i+n] - pctRankT[i])*j/n;
pctRankB[i+j] = pctRankB[i] + (pctRankB[i+n] - pctRankB[i])*j/n;
}
}
for (int i=limit; i>=0; i--)
{
if (stateu[i]== 1) { histd[i] = pctRankT[i]; histnd[i] = pctRankB[i]; }
if (stateu[i]== 2) { histdd[i] = pctRankT[i]; histnd[i] = pctRankB[i]; }
if (stated[i]==-1) { histu[i] = pctRankB[i]; histnd[i] = pctRankT[i]; }
Показано первые 50% кода (символов: 7912)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.