Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 667
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, для Форекса это годится, потому что тики приходят часто. А если не для Форекса ?
Суть в том, что при инициализации время переменной "starttime" будет больше на несколько секунд, чем время сервера.
Это не так. Проверьте прямо сейчас, если не влом)). Но, дело не в этом. Мне нужно сейчас, до прихода первого тика обработать информацию так, чтобы с приходом нового(первого) тика всё уже было готово к работе.
Я этим пользуюсь несколько лет, но мне не нужно ничего обрабатывать, пока нет тиков. Вам нужно другое решение, и по ссылке что дал оно должно быть
По ссылке там только TimeLocal(), а этого хотелось избежать.
Вы, правы, " starttime=(int)TimeCurrent()+sec; // например +5 секунд", естественно больше TimeCurrent(). Это я погорячился, мозг уже видать расплавился совсем ))
По ссылке там только TimeLocal(), а этого хотелось избежать.
В зависимости от задачи, можно попробовать использовать связку TimeCurrent()+OnTimer(), ну или TimeCurrent()+TimeGMT()+TimeGMTOffset()
Можно все условия выполнять по таймеру, а торговые по TimeCurrent() Решений много, но выбор за вами под индивидуальную задачу.
В зависимости от задачи, можно попробовать использовать связку TimeCurrent()+OnTimer(), ну или TimeCurrent()+TimeGMT()+TimeGMTOffset()
Можно все условия выполнять по таймеру, а торговые по TimeCurrent() Решений много, но выбор за вами под индивидуальную задачу.
А как, в моём вопросе, можно применить OnTimer() ?
Флаг запрета работы держать до тех пор, пока не будет всё просчитано, например...
А как, в моём вопросе, можно применить OnTimer() ?
Ну не мне знать, что вы будете считать до открытия рынка)
К примеру так:
void OnTimer() {
// Обрабатываем информацию независимо от работы рынка в функции DataProcessing
DataProcessing();
if(TimeCurrent()>starttime) { // если рынок работает
connection=true; // ставим флаг в положение "true"
... // или сразу обрабатываем весь остальной код, в основном - торгвый
}
}
void DataProcessing() {
// что-то делаем по таймеру
}
if(connection==true) { // или здесь торговые операции и остальной код, чтоб не в таймере
...
}
Ну не мне знать, что вы будете считать до открытия рынка)
Видимо, вопрос должен "отстояться". Возможно мне придётся поменять логику архитектуры кода. "Утро вечера мудреней"
Ещё раз ОГРОМНОЕ СПАСИБО !!!!