Имел в виду коррекцию разницы во времени в секундах между часами сервера и своего компа.
Вот у меня к примеру сейчас разница в 10 сек.
Задал TimeShift = 10 и теперь вижу разницу в 0-1 сек.
Эта разница будет очень медленно уплывать (часы ведь в компе кварцевые)
Имел в виду коррекцию разницы во времени в секундах между часами сервера и своего компа.
Вот у меня к примеру сейчас разница в 10 сек.
Задал TimeShift = 10 и теперь вижу разницу в 0-1 сек.
Эта разница будет очень медленно уплывать (часы ведь в компе кварцевые)
насколько я знаю, часы в компе очень даже ненадёжные.
Не думаю что это так.
Во всех компах уже давно есть часы реального времени, которые работают и при выключенном компе. Это теже кварцевые часы как и наручные.
Они конечно могут убежать на 30-100 сек за год,
и синхронизация в принципе не помешает.
Но для TimeOut и параметра хватит (раз в месяц поправить)
Спасибо за ссылку.
Посмотрю, синхронизация не помешает :)
Серьёзно доработал индикатор:
теперь он
- вычисляет и отрисовывает среднюю задержку
- пишет макс. задержку и время, когда она была (время серверное, т.е. брокера)
- выглядит приятнее (ИМХО)
в первом варианте индикатора ( к сожалению, у меня нет кода...) я, в процессе борьбы с остатками данных при переключении ТФ, попробовал в
int init()
{
.......
first = true;
........
return(0);
}
int start()
{
if ( first == true )
{
вставить
for ( int u = 100; u >= 0; u -- )
{ buf0[u] = 0; }
return(0);
При компиляции - всё хорошо, но при попытке прикрепить индикатор к графику, в лог выводилось сообщение, суть которого - нет такого файла, и, соответственно, прикрепить не можем...
при закомментировании строк
for ( int u = 100; u >= 0; u -- )
{ buf0[u] = 0; }
индикатор прикреплялся и работал.
Сегодня, когда я его начал дорабатывать, вспомнил про очистку, и попробовал вставить эти в строки. И всё заработало! НО, на самом деле, очистка не происходит, или происходит не полностью. В этом вы можете убедиться, порсто прикрепив текущую версию индикатора к гафику, или сменив ТФ: всегда появляется 1 бар, даже если тика не было... А исходя из кода, при первом запуске должна происходить очистка данных и выход. Подсчёт и прорисовка происходят только на следующем тике - когда опять запустится start():
if ( first == true )
{
......
for ( int u = Bars-1; u >= 0; u -- )
{ buf0[u] = 0; buf1[u] = 0; }
first = false;
return(0);
}
И вопрос мой заключался в следующем:
Это я чего-то не понимаю, или не правильно использую, или это ошибка МТ?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вот у меня к примеру сейчас разница в 10 сек.
Задал TimeShift = 10 и теперь вижу разницу в 0-1 сек.
Эта разница будет очень медленно уплывать (часы ведь в компе кварцевые)
Вот у меня к примеру сейчас разница в 10 сек.
Задал TimeShift = 10 и теперь вижу разницу в 0-1 сек.
Эта разница будет очень медленно уплывать (часы ведь в компе кварцевые)
насколько я знаю, часы в компе очень даже ненадёжные.
без синхронизации нельзя....
посмотри http://www.alpari-idc.ru/ru/forum/viewtopic.php?t=41838&highlight= там прога выложена для синхронизации. Очень простая....
Не думаю что это так.
Во всех компах уже давно есть часы реального времени, которые работают и при выключенном компе. Это теже кварцевые часы как и наручные.
Они конечно могут убежать на 30-100 сек за год,
и синхронизация в принципе не помешает.
Но для TimeOut и параметра хватит (раз в месяц поправить)
Спасибо за ссылку.
Посмотрю, синхронизация не помешает :)
у нас с тобой разная информация. кто-то из нас заблуждается =)
если интересно - можно эксперимент провести - заодно и проверим
Наверное ..
Но это в общем и не важно .. :)
теперь он
- вычисляет и отрисовывает среднюю задержку
- пишет макс. задержку и время, когда она была (время серверное, т.е. брокера)
- выглядит приятнее (ИМХО)
"TimeOut"
Ренат, я пытался вставить в конструкцию
if ( first == true ) { }"обнулялку значений"
for ( int u = 100; u >= 0; u -- ) { buf0[u] = 0; buf1[u] = 0; }и, пока небыло buf1, МТ говорил "не могу найти файл...", а сейчас просто некорректно работает.
Не подскажите в чём проблема?
К сожалению, я вообще не понял о чем речь.
в первом варианте индикатора ( к сожалению, у меня нет кода...) я, в процессе борьбы с остатками данных при переключении ТФ, попробовал в
int init() { ....... first = true; ........ return(0); } int start() { if ( first == true ) {вставить
for ( int u = 100; u >= 0; u -- ) { buf0[u] = 0; } return(0);При компиляции - всё хорошо, но при попытке прикрепить индикатор к графику, в лог выводилось сообщение, суть которого - нет такого файла, и, соответственно, прикрепить не можем...
при закомментировании строк
for ( int u = 100; u >= 0; u -- ) { buf0[u] = 0; }индикатор прикреплялся и работал.
Сегодня, когда я его начал дорабатывать, вспомнил про очистку, и попробовал вставить эти в строки. И всё заработало! НО, на самом деле, очистка не происходит, или происходит не полностью. В этом вы можете убедиться, порсто прикрепив текущую версию индикатора к гафику, или сменив ТФ: всегда появляется 1 бар, даже если тика не было... А исходя из кода, при первом запуске должна происходить очистка данных и выход. Подсчёт и прорисовка происходят только на следующем тике - когда опять запустится start():
if ( first == true ) { ...... for ( int u = Bars-1; u >= 0; u -- ) { buf0[u] = 0; buf1[u] = 0; } first = false; return(0); }И вопрос мой заключался в следующем:
Это я чего-то не понимаю, или не правильно использую, или это ошибка МТ?
Это я чего-то не понимаю, или не правильно использую, или это ошибка МТ?
Сегодня попробую повторить указанные действия и отвечу.