А как же Вы "обходите" проблему с неполучением баров по второму символу для ФОРТС?
Добрый вечер, Михаил!
В целом, процедура такая:
- в OnInit только проверяется наличие символа в обзоре рынка - если символа нет, то делается попытка добавить его обзор рынка. Если добавить не удалось, то больше сделать ничего нельзя и выдается сообщение.
- в OnTimer и в OnCalculate выполняется однотипная процедура проверки синхронизации данных ( прежде, чем что-то делать дальше ):
// Если данные не сихронизированы, то попытаемся это сделать:if( SeriesInfoInteger( current_symbol, Period( ), SERIES_SYNCHRONIZED ) != true )
{
bars_loaded_flag = false;
if( SynchData( current_symbol, Period( ), current_datetime ) != true )
{
// Если данные синхронизировать не удалось, то дальше делать нечего:if( DebugInfoLevel == ENUM_DEBUG_LEVEL::ENUM_SHOW_DEBUG_DETAILED )
{
Print( TimeToString( TimeCurrent( ), TIME_DATE | TIME_MINUTES | TIME_SECONDS ), ": ", current_symbol, " - waiting for data synchronizing..." );
}
return( 0 );
}
}
- в случае, если данные не синхронизированы, вызывается функция SynchData, которая, собственно и пытается исправить ситуацию. Она на 99% взята из справки с некоторыми модификациями.
- в OnInit только проверяется наличие символа в обзоре рынка - если символа нет, то делается попытка добавить его обзор рынка. Если добавить не удалось, то больше сделать ничего нельзя и выдается сообщение.
- в OnTimer и в OnCalculate выполняется однотипная процедура проверки синхронизации данных ( прежде, чем что-то делать дальше ):
- в случае, если данные не синхронизированы, вызывается функция SynchData, которая, собственно и пытается исправить ситуацию. Она на 99% взята из справки с некоторыми модификациями.
Mikalas: А SynchData() подгружает историю с сервера?
В том числе, если необходимо. В МТ5 данные остальных ТФ формируются из баров М1, - если нет достаточной глубины истории в терминале и она (история) есть на сервере, то запускается подгрузка с сервера.
Добрый день, Дмитрий!
А как же Вы "обходите" проблему с неполучением баров по второму символу для ФОРТС?
Добрый день, Дмитрий!
А как же Вы "обходите" проблему с неполучением баров по второму символу для ФОРТС?
Добрый вечер, Михаил!
В целом, процедура такая:
- в OnInit только проверяется наличие символа в обзоре рынка - если символа нет, то делается попытка добавить его обзор рынка. Если добавить не удалось, то больше сделать ничего нельзя и выдается сообщение.
- в OnTimer и в OnCalculate выполняется однотипная процедура проверки синхронизации данных ( прежде, чем что-то делать дальше ):
- в случае, если данные не синхронизированы, вызывается функция SynchData, которая, собственно и пытается исправить ситуацию. Она на 99% взята из справки с некоторыми модификациями.
Как-то так.
Добрый вечер, Михаил!
В целом, процедура такая:
- в OnInit только проверяется наличие символа в обзоре рынка - если символа нет, то делается попытка добавить его обзор рынка. Если добавить не удалось, то больше сделать ничего нельзя и выдается сообщение.
- в OnTimer и в OnCalculate выполняется однотипная процедура проверки синхронизации данных ( прежде, чем что-то делать дальше ):
- в случае, если данные не синхронизированы, вызывается функция SynchData, которая, собственно и пытается исправить ситуацию. Она на 99% взята из справки с некоторыми модификациями.
Как-то так.
А SynchData() подгружает историю с сервера?