Откуда вы беретё, что на РАЗНЫХ ТАЙМФРЕМАХ, будет ОДИНАКОВОЕ КОЛИЧЕСТВО БАРОВ?
int dil=enumToTF(TimeFrame_2)/enumToTF(TimeFrame_1);
ArraySetAsSeries(Time_1,true);
int fwga=CopyTime(_Symbol,TimeFrame_1,0,rates_total,Time_1);
ArraySetAsSeries(Time_2,true);
int fga=CopyTime(_Symbol,TimeFrame_2,0,rates_total,Time_2);
ArraySetAsSeries(High_2,true);
int lfga=CopyHigh(_Symbol,TimeFrame_2,0,rates_total,High_2);
ArraySetAsSeries(Low_2,true);
int gfga=CopyLow(_Symbol,TimeFrame_2,0,rates_total,Low_2);
ArraySetAsSeries(High_1,true);
int la=CopyHigh(_Symbol,TimeFrame_1,0,rates_total,High_1);
ArraySetAsSeries(Low_1,true);
int ga=CopyLow(_Symbol,TimeFrame_1,0,rates_total,Low_1);
ArraySetAsSeries(Close_1,true);
int rga=CopyClose(_Symbol,TimeFrame_1,0,rates_total,Close_1);
ну как еще вам обяснить (я не понимаю что вы имеете ввиду)
TimeFrame_2=60;
TimeFrame_1=5;
for(int i=1;i<CountBar/dil;i++) проходим по часовым барам i=1 начало с первого часового бара
{
double max=iHigh(Symbol(),TimeFrame_2,i); максимум часового бара
double min=iLow(Symbol(),TimeFrame_2,i); минимум часового бара
datetime timeStartDiap=iTime(Symbol(),TimeFrame_2,i-1); время открытия часового бара i-1 (нулевого)
int startBar=iBarShiftMQL4(Symbol(),TimeFrame_1,timeStartDiap,false); номер 5 минутного бара соответстующего времени открытия часового бара
datetime timeEndDiap=iTime(Symbol(),TimeFrame_2,i-2); время открытия часового бара i-2 (здесь функция выведет -1 если i-2 будет <0)
int endBar=iBarShiftMQL4(Symbol(),TimeFrame_1,timeEndDiap,false); номер 5 минутного бара соответстующего времени открытия часового бара i-2if(i==1){endBar=0;} если стартовый бар будет i=1 то конечный бар на 5мин будет 0for(int s=startBar;s>=endBar;s--) здесь проходимся по 5 минутных барах
{
if(iClose(Symbol(),TimeFrame_1,s)<min)если закрытие 5мин меньше лоу часовой то запускаем функцию
{
PoiskProboyaUP(iHigh(Symbol(),TimeFrame_1,s),s-1,endBar,i);
break;
}
if(iClose(Symbol(),TimeFrame_1,s)>max) если закрытие 5мин больше хая часовой то запускаем функцию
{
PoiskProboyaDW(iLow(Symbol(),TimeFrame_1,s),s-1,endBar,i);
break;
}
}
}
по индикаторным буферам нужно пройтись и что-то записать - так как индикаторные буферы это динамические массивы. Иначе будет выход за пределы массива - в поисках пробоев идёт обращение к индексу индикаторного буфера, которого ещё нет.
Я же говорю, давайте по порядку.
Откуда вы беретё, что на РАЗНЫХ ТАЙМФРЕМАХ, будет ОДИНАКОВОЕ КОЛИЧЕСТВО БАРОВ?
Начнём с начала. Что делает индикатор?
сделал по другому так мне понятней
и легче
сам код расчета индикатора на MQL4 работает отлично и сигналы есть
может что то с буферами неправильно я сделал?
сам код расчета индикатора на MQL4 работает отлично и сигналы есть
может что то с буферами неправильно я сделал?
ну как еще вам обяснить (я не понимаю что вы имеете ввиду)
так понятно?
иначе я незнаю как обяснить чтоб вы поняли))
извините за предоставленные неудобста
Прежде чем искать пробои:
по индикаторным буферам нужно пройтись и что-то записать - так как индикаторные буферы это динамические массивы. Иначе будет выход за пределы массива - в поисках пробоев идёт обращение к индексу индикаторного буфера, которого ещё нет.