- Как поймать новый тик?
- Подскажите как лучше сделать?
- Пересчет индикатора в Советнике
Попробуйте такой скрипт, может поможет
while(!IsStopped()){ WindowRedraw(); int hwnd=WindowHandle(Symbol(),Period()); if(hwnd!=0){ PostMessageA(hwnd,WM_COMMAND,33324,0); } Sleep(50); }
Прокоментируйте, пожалуйста, работу этого скрипта, не понятно, как мне его использовать. Мне нужно, чтобы по приходу нового бара, до появления второго тика, вырабатывалась серия импульсов (например, 20, количество должно регулироваться), и по каждому импульсу запускался и заново пересчитывался цикл расчета на истории котировок:
for (j=0; j<1000; j++) { TT[j]=(High[j]+Low[j])/2; .............. }
Прокоментируйте, пожалуйста, работу этого скрипта, не понятно, как мне его использовать. Мне нужно, чтобы по приходу нового бара, до появления второго тика, вырабатывалась серия импульсов (например, 20, количество должно регулироваться), и по каждому импульсу запускался и заново пересчитывался цикл расчета на истории котировок:
Разберитесь как он работает и используйте элементы кода,
(только не забудьте что там нужно включение #include <WinUser32.mqh>)
или запускайте паралельно с основной прогой, обновление графика равносильно тику.
Но при переносе кода помните что Sleep() работет только в скриптах.
А как мне его использовать для решения моей задачи сформулированной в предыдущем посте?
Наверно никак.
Может что-то такое подойдет. На первом тике нового бара выполняется 20 раз, на следующи 1 раз.
int start(){ static datetime LastTime=0; if(LsatTime==0){ LastTime=Time[0]; } if(Time[0]!=LastTime){ LastTime=Time[0]; n=20; } else{ n=1; } for(x=0;x<n;x++){ for (j=0; j<1000; j++){ TT[j]=(High[j]+Low[j])/2; .............. } } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования