Ошибки, баги, вопросы - страница 1809
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не проверял
{
static ulong PrevStartTime = GetMicrosecondCount();
static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
const ulong NowTime = GetMicrosecondCount();
if (PrevTimeCurrent < NewTimeCurrent)
{
PrevTimeCurrent = NewTimeCurrent;
PrevStartTime = NowTime;
}
return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
Можно было точнее. Например, пробежаться по всем символам, сделав запрос SymbolInfoTick (+ CopyTicks). Оттуда выцарапать время в миллисекундах. Только не понимаю, какое практическое применение этому может быть.
Все просто - синхронизация! Все дело в ней! Сейчас доступно много данных: тики, сентимент, стакан. Миллисекундное время есть ТОЛЬКО у тиков! А как быть с временем прихода остальных данных? У стакана - его нет. У сентимента - его тоже нет! Соответственно, если собирать все данные вместе - не получится их синхронизовать! Не возможен комплексный анализ! Не понимаю, почему разработчики не уделяют этому должное внимание. Данные есть, а работать с ними точно - невозможно! Вот и приходится выкручиваться, но даже "костыли" работают, как выяснилось, не всегда правильно.
Давно назрел штатный миллисекундный аналог TimeCurrent, с его отражением в GUI.
Баг с TimeCurrent() исправили, сказали будет сегодня на MQ-Demo.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 1545: Быстрое переключение между окнами и изменение цен мышью
fxsaber, 2017.02.16 10:16
Могли бы Вы в будущих анонсах указывать еще номера СД-заявок, по которым внесены исправления?Хорошо бы сделать за правило
Ошибка при компиляции: нельзя функцию определить позднее даже при наличии объявления до
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
return i2;
}
void OnStart()
{
g();
}
int f() { return 0; }
Ошибка при компиляции: нельзя функцию определить позднее даже при наличии объявления до
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
return i2;
}
void OnStart()
{
g();
}
int f() { return 0; }
По-моему, логично.
А вот почему здесь нет ошибки - не понятно.
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
return i2;
}
class A
{
public:
A() { f(); }
};
A a;
void OnStart()
{
g();
}
int f() { return 0; }
По-моему, логично.
А вот почему здесь нет ошибки - не понятно.
Ошибка логична только если возникает какая-либо есть коллизия. Если все выполняется правильно - то излишние ошибки лишают гибкости
Скомпилировал в версии 1531. При запуске получил:
2017.02.16 18:55:19.101 MQL5 'TradePanel.ex5' has newer unsupported version, please update your client terminal
Хорошо, что не на боевом счете.