hist_stepma_stoch_kv1_ex_03.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «hist_stepma_stoch_kv1_ex_03.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный файл является пользовательским индикатором для MetaTrader 4, который отображает в отдельном подокне две гистограммные линии. Индикатор рассчитывает значения на основе заданного количества баров и параметров сглаживания. В коде используются два буфера, которые выводятся как гистограмма красного и зелёного цветов. Расчёт выполняется в функции start(), которая вызывается на каждом новом баре. Индикатор не содержит торговых операций и не является советником. Все входные параметры задаются через extern-переменные. Подтверждённых публичных названий продукта в исходном коде нет, поэтому product_name оставлен пустым.
Настройки программы
| Настройка | Описание |
|---|---|
| PeriodWATR | Период WATR — Целое число, задающее период усреднения для расчёта диапазона волатильности. |
| Kwatr | Коэффициент шага — Числовой коэффициент, влияющий на масштаб шага при построении линий индикатора. |
| HighLow | Использовать 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 theDelta;
double prev_y = 0,prev_b = 0;
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--)
{
SumRange=0;
Stoch1 = 0.0;
Stoch2 = 0.0;
for (i=PeriodWATR-1;i>=0;i--)
{
dK = 1+1.0*(PeriodWATR-i)/PeriodWATR;
SumRange+= dK*(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;
Показано первые 50% кода (символов: 3693)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.