#zerolag_hma_stochasic.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «#zerolag_hma_stochasic.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор #zerolag_hma_stochasic — это пользовательский индикатор для MetaTrader 4, рассчитывающий стохастик, сглаженный нулевого лага на основе Халл Moving Average (HMA). Основная линия строится на основе стохастика, пропущенного через двойное сглаживание HMA, а сигнальная линия представляет собой скользящее среднее от основной линии. Индикатор отображается в отдельном окне с уровнями 80, 20 и 0.
Поддерживается работа на различных таймфреймах через параметр TimeFrame, включая режим возврата баров и режим расчёта значения для межтаймфреймовых расчётов. Доступна интерполяция значений между барами при переходе на меньший таймфрейм. Индикатор использует 4 буфера отрисовки: основная линия стохастика, сигнальная линия и точки для отображения сигналов направления тренда.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм для расчёта индикатора (например, M1, H4, D1 или current time frame) |
| HMALength | Длина периода Халл Moving Average, применяемого для сглаживания стохастика |
| KPeriod | Период %K стохастика |
| DPeriod | Период %D стохастика, используемый также для расчёта сигнальной линии |
| Slowing | Параметр замедления стохастика |
| Method | Метод усреднения для расчёта сигнальной линии и сглаживания |
| Price | Тип цены, используемой для расчёта стохастика |
| Interpolate | Переключатель интерполяции значений между барами при межтаймфреймовом расчёте |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Gold
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_level1 80
#property indicator_level2 20
#property indicator_level3 0
extern string TimeFrame = "current time frame";
extern int HMALength = 10;
extern int KPeriod = 14;
extern int DPeriod = 5;
extern int Slowing = 5;
extern int Method = 0;
extern int Price = PRICE_CLOSE;
extern bool Interpolate = true;
double hma[];
double hmada[];
double hmadb[];
double hma1[];
double hma2[];
double trend[];
double SignalBuffer[];
string indicatorFileName;
bool returnBars;
bool calculateValue;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { trend[0] = limit+1; return(0); }
if (calculateValue || timeFrame==Period())
{
if (!calculateValue) if (trend[limit] == -1) CleanPoint(limit,hmada,hmadb);
for(i=limit; i>=0; i--) {
hma1[i] = iHma(iStochastic(NULL,0,KPeriod,DPeriod,Slowing,Method,Price,MODE_MAIN,i),HMALength,i,0);
hma2[i] = iHma(hma1[i] ,HMALength,i,2);
hma[i] = 2.0*hma1[i]-hma2[i];
hmada[i] = EMPTY_VALUE;
hmadb[i] = EMPTY_VALUE;
trend[i] = trend[i+1];
if (hma[i] > hma[i+1]) trend[i] = 1;
if (hma[i] < hma[i+1]) trend[i] = -1;
if (!calculateValue && trend[i] == -1) PlotPoint(i,hmada,hmadb,hma);
}
for (int cnt = 0; cnt < limit; cnt++) {
SignalBuffer[cnt] = iMAOnArray(hma,Bars,DPeriod,0,Method,cnt);
}
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (trend[limit] == -1) CleanPoint(limit,hmada,hmadb);
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",HMALength,Price,5,y);
hma[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",HMALength,PrПоказано первые 50% кода (символов: 4705)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.