hist_stepma_stoch_kv1_ex_02.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «hist_stepma_stoch_kv1_ex_02.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, отображающий два гистограммных буфера в отдельном подокне графика. Рассчитывает волатильностную меру на основе взвешенного диапазона цен за заданный период и формирует два стохастических значения, разность которых распределяется по двум буферам: отрицательные значения попадают в первый буфер (красный), положительные — во второй (зелёный). Индикатор динамически определяет размеры шагов на основе текущего и экстремального диапазона волатильности, что влияет на уровень зашумлённости и чувствительность линий.
Настройки программы
| Настройка | Описание |
|---|---|
| PeriodWATR | Период WATR — Количество баров, используемых для расчёта взвешенного диапазона цен (WATR), определяющего базовую волатильность. |
| Kwatr | Коэффициент Kwatr — Множитель, применяемый к значению WATR для определения размера шага при расчёте уровней индикатора. |
| HighLow | Режим HighLow — Выбор режима расчёта: при значении 0 используются цены закрытия, при значении 1 — диапазон High/Low для определения уровней. |
| NumberOfBarsToCalculate | Количество баров для расчёта — Максимальное количество баров, обрабатываемых индикатором при каждом обновлении. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green
extern int PeriodWATR=10;
extern double Kwatr=1.0000;
extern int HighLow=0;
extern int NumberOfBarsToCalculate = 500;
double LineMinBuffer[];
double LineMidBuffer[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
string short_name;
short_name = "Max bars to count: |"+(Bars-1)+"| ";
IndicatorShortName(short_name);
int i,shift,TrendMin,TrendMax,TrendMid;
double SminMin0,SmaxMin0,SminMin1,SmaxMin1,SumRange,dK,WATR0,WATRmax,WATRmin,WATRmid;
double SminMax0,SmaxMax0,SminMax1,SmaxMax1,SminMid0,SmaxMid0,SminMid1,SmaxMid1;
double linemin,linemax,linemid,Stoch1,Stoch2,bsmin,bsmax;
double prev_y = 0,prev_b = 0;
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--)
{
SumRange=0;
for (i=PeriodWATR-1;i>=0;i--)
{
dK = 1+1.0*(PeriodWATR-i)/PeriodWATR;
SumRange+= dK*MathAbs(High[i+shift]-Low[i+shift]);
}
WATR0 = SumRange/PeriodWATR;
WATRmax=MathMax(WATR0,WATRmax);
if (shift==NumberOfBarsToCalculate-1-PeriodWATR) WATRmin=WATR0;
WATRmin=MathMin(WATR0,WATRmin);
int StepSizeMin=MathRound(Kwatr*WATRmin/Point);
int StepSizeMax=MathRound(Kwatr*WATRmax/Point);
int StepSizeMid=MathRound(Kwatr*0.5*(WATRmax+WATRmin)/Point);
if (HighLow>0)
{
SmaxMin0=Low[shift]+2*StepSizeMin*Point;
SminMin0=High[shift]-2*StepSizeMin*Point;
SmaxMax0=Low[shift]+2*StepSizeMax*Point;
SminMax0=High[shift]-2*StepSizeMax*Point;
SmaxMid0=Low[shift]+2*StepSizeMid*Point;
SmПоказано первые 50% кода (символов: 3631)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.