Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 767
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не сразу заметил ответ. Ну если честно я не совсем понял что ты имеешь в виду, утверждая что в этом нет путаницы.
То есть как "не важно по какому времени функция StringToTime() отсчитывает прошедшие секунды"?
Функция берет по сути вообще левую дату (я считаю что дата локального ПК - левая) и сравнивает с ней текущее время сервера брокера, почему это может быть не важно?
Из приведенного скрина коммент говорит о том что время на твоем локальном компе опережает время брокера на 1 час, то есть сдвиг по GMT больше. Если бы он был на X часов меньше, то было бы критично, как в случае о котором я писал, про пятницу.
А по поводу окончания времени торговли. Я полагаю что для функции StringToTime() не должно иметь значение когда брокер заканчивает торговый день или неделю...
У меня нет другого объяснения.
Если сейчас в Москве 11:40, то от 01.01.1970 до текущего времени прошло XXX секунд.
Когда в Лондоне, к примеру, будет 11:40 то количество секунд будет такое-же как и в Москве сейчас... Только потому, что 01.01.1970 в Лондоне было на столько-же позже на сколько отличается текущее время. В сравнение идёт не указанное время, а только количество прошедших секунд.
Попробуй сам написать формулу расчёта количества секунд от 01.01.1970 00:00:00
Для короткого промежутка времени будет такая формула. От начала текущего месяца прошло 6*24*60*60 + 11*60*60 + 59*60 + текущее значение секунд по часам на которые ты смотришь.
Понятное дело что сравнение идет по количеству секунд, прошедших с 70-го года, но в этом количестве секунд учтено все - и дата и время.
Просто приведу пример, по сути упрощение возникшей недавно у меня проблемы.
У меня изначально было такое решение:
А теперь прикол: указанный в коде принт выскочит в пятницу, но не после 21:30, а в 00:00 на первом тике.
Потому что когда у сервера брокера наступила пятница, на моем локальном компе еще был четверг, таймшифт ведь разный.
В тестере же будет все ок и принт выскочит как и должен в пятницу после 21:30. Ну разве не путаница?
Понятное дело что сравнение идет по количеству секунд, прошедших с 70-го года, но в этом количестве секунд учтено все - и дата и время.
Просто приведу пример, по сути упрощение возникшей недавно у меня проблемы.
У меня изначально было такое решение:
А теперь прикол: указанный в коде принт выскочит в пятницу, но не после 21:30, а в 00:00 на первом тике.
Потому что когда у сервера брокера наступила пятница, на моем локальном компе еще был четверг, таймшифт ведь разный.
В тестере же будет все ок и принт выскочит как и должен в пятницу после 21:30. Ну разве не путаница?
Конечно путаница. Только путаница в твоей голове. TimeToString("21:30") будет давать текущую дату от 21:30:00 до 21:29:59 следующего дня. Я поправлю комментарии в твоём коде.
А вот такой код будет работать правильно
На одном ноутбуке стоИт два терминала МТ4: один с 4-мя знаками после запятой, второй - с 5-тью знаками. За одно и то же время трафик на первом 105/0 kb, на втором 3450/0 kb. Первый грухит процессор на 6%, второй - на 39%. В чем проблема? Это вообще норма?
AlexeyVik
Изменил дату у себя на компе на 2000 год.
запустил этот скрипт:
и получил:
следовательно функция StringToTime() берет дату с локального компа
AlexeyVik
Изменил дату у себя на компе на 2000 год.
запустил этот скрипт:
и получил:
следовательно функция StringToTime() берет дату с локального компа
Ну и что??? Пусть хоть с луны берёт, главное по этому времени "от и до" прошло XXX секунд и это полученное целочисленное число сравниваем с нужным нам количеством секунд прошедших от 01.01.1970 нужного нам времени.
Ты лучше проверь эту строку
в том месте где у тебя была проблема. Сегодня как-раз пятница.
Ты лучше проверь эту строку
в том месте где у тебя была проблема. Сегодня как-раз пятница.
я проверил, если на локальном компе дата меньше чем дата брокера, то принты есть,
а если на локальном компе дата больше чем дата брокера, то принтов нету
при этом время проверял то, которое уже точно прошло, то есть "11:30"
в первом случае TimeCurrent() сравнивается с 2014.11.06 11:30, а во втором случае с 2014.11.08 11:30
PS поправил выделенное
первая строка понятна, комментарий ко второй строке - нет.
Почему до пятницы далеко, когда она уже наступила? Ведь вторая строка исполняется только если наступила пятница.
я проверил, если на локальном компе дата меньше чем дата брокера, то принты есть,
а если на локальном компе дата больше чем дата брокера, то принтов нету
при этом время проверял то, которое уже точно прошло, то есть "11:30"
в первом случае TimeCurrent() сравнивается с 2014.11.06 11:30, а во втором случае с 2014.11.08 11:30
PS поправил выделенное
Ну вот у меня локальное время больше серверного на 1 час.
Этот скрипт
выводит такие значения
Сначала количество секунд прошедших с 01.01.1970 до указанного времени, а потом время в привычном нам виде.
Исходя из этого объясни что тебя смущает в этих значениях?
Да. Во втором комментарии я чуток не о том думал.
да.
Здравствуйте.
Есть такая задача. (не могу прикрутить к тику)
Если сработал отложенный ордер {то...}
В советнике для подсчета ордеров использую Terminal.mqh.
Терминал // Mas_Tip[0] открытые Buy
// если количество ордеров Buy увеличилось на 1 то...
if (Mas_Tip[0]+1)
{
функция
}
Все работает. Но срабатывает на каждом следующем тике.
Как прикрепить это дело к тику? А потом сравнить значение на предыдущем тике и на данном тике.