Вот-вот, так я о том же спрашивал, а меня вы все не хотели понять! Но спасибо вам всем, что никто не мог ничего толком помочь, поэтому я всё отладил самостоятельно, и всё в 00:00 меняется чётко по всем парам без компилляций и обновлений и без применения newMQL4! И всё благодаря вам!
Позлорадствовал вволю, ядом, поди, всю клавиатуру забрызгал )))
Да обидно! Перечитай, сколько мне прочли поучений, особенно, ты! Конечно, старался как-то навести меня на что-то, но сам не удосужился вникнуть! А ведь главная ошибка оказалась в оригинале, потому в 0 часов, поскольку с сервера нет тика буфферы отключались и не рисовали, а рисовали только на следующем баре уже новое значение, потому образовывался перерыв. А объекты уровней, вообще сами не переключались, т.к. Автор думал, наверно, что всё равно спать пора! А мне важно было сразу видеть изменения уровней!
Читай внимательнее что я написал в вопросе - все буферы рисует у меня, ничего нигде не пропускает, да и код не менялся с до-маркетового билда. А вот считать перестали все версии что в кодобазе нашёл плюс переделанная моя версия тоже не пересчитывает значения буферов, какие были - те дальше и рисует...
Да и поучения я тебе по большей части насчёт винды той восьмой, а не индикатора какого-то вроде писал, и вообще, на обиженных воду возят (:
Вот она ошибка в DailyPivotPoints:
for(cnt=begin_bar; cnt>=0; cnt--) { yesterday_close=iClose(NULL,PERIOD_D1,cnt+1); today_open=iOpen(NULL,PERIOD_D1,cnt); yesterday_high=iHigh(NULL,PERIOD_D1,cnt+1); yesterday_low=iLow(NULL,PERIOD_D1,cnt+1); P = (yesterday_high+yesterday_low+yesterday_close+today_open)/4;// switch(ExtFormula) { case 1 : R = P + P - yesterday_low; S = P + P - yesterday_high; break; case 2 : R = P + yesterday_high - yesterday_low; S = P - yesterday_high + yesterday_low; break; case 3 : R = P + P - yesterday_low - yesterday_low + yesterday_high; S = P + P - yesterday_high - yesterday_high + yesterday_low; } if(ExtDraw==true) { first_bar=iBarShift(NULL,0,iTime(NULL,PERIOD_D1,cnt)); //-1; // эти минусы 1 не дают соединиться линиям- if(cnt>0) last_bar=iBarShift(NULL,0,iTime(NULL,PERIOD_D1,cnt-1)); //-1; // уровням, т.к. в 0:00:00 никогда нет тика! else last_bar=0; while(first_bar>=last_bar) { if(first_bar==last_bar && last_bar>0) break; if(ExtFormula==0) ExtMapBuffer1[first_bar]=P; else { ExtMapBuffer1[first_bar]=R; ExtMapBuffer2[first_bar]=S; } first_bar--; } } } P = NormalizeDouble((yesterday_high + yesterday_low + yesterday_close)/3,Digits);
Но потом воодушевившись, ещё многое поменял и получил полноценный автомат, т.к. на ночь не отключаюсь!
Читай внимательнее что я написал в вопросе - все буферы рисует у меня, ничего нигде не пропускает, да и код не менялся с до-маркетового билда. А вот считать перестали все версии что в кодобазе нашёл плюс переделанная моя версия тоже не пересчитывает значения буферов, какие были - те дальше и рисует...
Да и поучения я тебе по большей части насчёт винды той восьмой, а не индикатора какого-то вроде писал, и вообще, на обиженных воду возят (:
Так у меня тоже из кодобазы МКовский! Да я не обижаюсь, просто страшно на себя злился, что не мог допетрить! Потом стал всё разбирать по косточкам и нашёл ещё много других возможностей, и теперь это у меня, как информационный центр, все комменты о торговле выводит, а советник только занят своим прямым делом, но ещё не готов. Пришлось многое менять, так что сейчас всё внимание ему!
Этот что ли 4й: yesterday_low=iLow(NULL,PERIOD_D1,cnt+1);
Ну и что? А iBarShift(NULL,0,iTime(NULL,PERIOD_D1,cnt)); У него 3 параметра, а не 4.
Спасибо! Справился в Доке, что нужен 4й параметр: exact=false Так что нужно вставить, но тогда
iBarShift(NULL,0,iTime(NULL,PERIOD_D1,cnt),false); Что-то не то!
Но у меня и без этого всё меняется по времени, не дожидаясь бара! ;))
А у тебя это: int sh = iBarShift(NULL, period, Time[i], false);
Благодарю за наводку! А почему сами Стринги-скрипторы от МКотцев не пишут по правилам?!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Долго не трогал пивоты, а сейчас попытался запустить в тестере на пустом советнике несколько версий из кодобазы и одну переработанную мной, странное поведение у них, на смене периода расчёта индикатор или вообще не пересчитывается (моя версия), или рисует какую-то чушь, до принудительной инициализации вызовом и подтверждением настроек. Билд 670. Все эти индикаторы взяты из кодобазы, на билде 482 всё работает, а на 670 что-то не так.
Вот, например, этот - в 482 перерасчитывается нормально, сам, в 670 рисует такое, пока не стукнешь его по башке:
а вот этот мой, он просто прямые линии рисует с момента первого расчёта и до повторной компиляции (в билде 482 всё нормально перерасчитывается без дополнительных пинков или пляски с бубном):