Ошибки, баги, вопросы - страница 1808
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тут, действительно, пока только так обойти. Выбором наибольшего времени. Но это дополнительные затраты на получении на каждом OnBookEvent() двух значений времени...
Заявка в СД #1674783
Пожалуйста, решите как можно скорее!
Сделайте эмуляцию TimeTradeServer через GetMicrosecondCount. Либо в 99% BookEvent добавляйте разность между TimeTradeServer и TimeCurrent.
Это все равно получение нескольких параметров.
Вопрос не в количестве параметров, а в их суммарной дешевизне.
Т.е. Вы считаете, что TimeTradeServer() будeт работать быстрее, чем SymbolInfoInteger( _Symbol, SYMBOL_TIME )?
TimeTradeServer работает через GetMicrosecondCount, прибавляя соответствующую разность к TimeCurrent.
Что Вам нужно получить - не знаю. Но экономия на единицах микросекунд мне видится нецелесообразной.
TimeTradeServer работает через GetMicrosecondCount, прибавляя соответствующую разность к TimeCurrent.
Что Вам нужно получить - не знаю. Но экономия на единицах микросекунд мне видится нецелесообразной.
Мне нужно получить корректное значение текущего времени. Я делаю запрос из OnBookEvent() текущего времени, чтобы записать значение параметра, привязанного ко времени. И мне нужно время именно текущее, а не прошедшее и, желательно, без костылей в виде получения нескольких значений времени с выбором наибольшего значения. TimeCurrent(), по идее (и по описанию в документации), должна справляться с этой задачей. Но оказалось, что сейчас она этого не делает!
{
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). Оттуда выцарапать время в миллисекундах.