Начало всех баров в начале торг. сессии.внимание, вопрос:
эти 5минутные бары считаются как?
начиная с предыдущего минутного бара?
или начиная с конца последней 5минутки? но тогда где начало - с начала всех баров?
вот этот момент вообще не ясен.
спасибо, а как определить, каким по счету минутным баром в пятиминутке является текущий бар?Начало всех баров в начале торг. сессии.
Потому что ты его разжал, а потом начал искать самый высокий хай находясь в минутках. т.е. система будет смотреть мах значение time5m за последние 3 бара минуток.почему то за последние 3 бара минуток?
а это на что:
time5m = TimeFrameCompress( High, in5Minute);// заношу в массив цены хаев на 5минутках
Посмотри время бара в минутах и посчитай. Если в настройках Ами установлено время начала бара (а так и должно быть), то если время бара в минутах заканчивется на 0 или 5, то он первый, если на 1 или 6 то второй и т.д.спасибо, а как определить, каким по счету минутным баром в пятиминутке является текущий бар?
ну т.е. вот у нас рисуется новая пятиминутка:
нарисовали первую минутку, потом вторую, потом третью - вот эта третья текущая
как узнать, что она третья?
типа функции: n = NumberOfFive(); // функция ывыдает результат, если эта первая минутка в новой пятиминутке - то 1, если вторая - 2, если третья 3, если четвертая 4, если пятая 5, если опять первая 1 и т.д.
я сначала нашел максимальный хай на 5минутках, а потом его разжал о_ОПотому что ты его разжал, а потом начал искать самый высокий хай находясь в минутках. т.е. система будет смотреть мах значение time5m за последние 3 бара минуток.
действительно просто, как я сам не додумался...Посмотри время бара в минутах и посчитай. Если в настройках Ами установлено время начала бара (а так и должно быть), то если время бара в минутах заканчивется на 0 или 5, то он первый, если на 1 или 6 то второй и т.д.
Проверять лень. Я бы сделал тако как извратился:
function NumberOfFive()
{
result = 0;
BarTime = Minute();
StrTime = NumToStr(BarTime);
newstring = StrRight( StrTime, 5);
Num = StrToNum(newstring);
Num = IIf (Num >=5, Num-5, Num);
result = num+1;
return result;
}
n = NumberOfFive();
Plot(n, "n", colorBlue);
считаю, что такая обработка данных через строку - это мегаизврат в программировании, но все работает =)
function NumberOfFive() {
BarTime = Minute();
Num = round(frac(BarTime/5)*5)+1;
return Num;
}
извени я затупил.я сначала нашел максимальный хай на 5минутках, а потом его разжал о_О
в хелпе аналогия с МА была
Поробуй таким макаромспасибо
а что насчет
CurrentLow = LLV(L, NumberOfHour());
на графике работает верно, но тормозит просто безбожно
(правда у меня загружены 4 года минуток.... видимо он их все обрабатывает).
как ему сказать что все не надо, а только пару деньков последних?
когда ставлю lastValue (NumberOfHour()) - то результат неправильный, а просто с NumberOfHour() результат правильный, но безбожно тормозит - около минуты
SetChartOptions(0, chartShowDates );
StartWeekly = DayOfWeek() < Ref(DayOfWeek(), -1);
CurrentLow = LLV(L, BarsSince(StartWeekly ));
Plot(C, "", colorBlack, styleCandle);
Plot(CurrentLow, "", colorRed);
Ты это хочеш получить?а вот и глюки!
при попытке вычислить ЛОЙ нового незавершенного часа:
CurrentLow = LLV(L, NumberOfHour());
амиброкер просто зависает.
хм... чето подумал он подумал и отвис =)
что ж так медленно работает-то, вроде циклов нет.
может вместо NumberOfHour() брать его последнее значение?
примерноТы это хочеш получить?
r=IIf(Hour()==Ref(Hour(),-1),0,1);
f=BarsSince(r)+1;
CurrentLow = LLV(L, f);
Plot( CurrentLow, "CurrentLow", colorBlue );
Plot(C, "", colorBlack, styleBar);
У меня нетпримерно
этот код немного некорректно работает,
т.к. час длится с 10-30 до 11-30.
а тут уже в 11-00 меняется значение в большую сторону, чего быть не может, т.к. лой не может стать выше в течение часа - только ниже
тогда система будет в будущее заглядывать!У меня нетДа возьми ты тогда L с сжатый с часовика и все, какраз будет llv часа.