ФОРТС Прошу помощи - страница 28

 

Всем спасибо!

Разобрались в Сервисдеск с SymbolIsSynchronized()

Может быть успеют поправить в следующем билде...

 
Михаил:

Извините, но все стандартные библиотеки "заточены" для работы на ФОРЕКС.

Я, да и многие другие, не используют их для работы на ФОРТС.

К сожалению, я не смогу Вам помочь в использовании стандартных библиотек

Михаил, я стандартную библиотеку MetaQuotes использую на ФОРТС вполне успешно. Правда пришлось создать несколько дополнительных классов в которых ввел методы с дополнительными проверками и условиями. Но ни каких проблем не наблюдаю кроме одного - там где в рассчетах используется спред. На форекс как то не так сильно он скачет :)

PS. Кто знает как подменить историю в МТ5? Брокер Открытие, секция ФОРТС, на счетах демо стали твориться непонятности с котировками, а без демо ни как не проверить работу некоторых алгоритмов.

 

Konstantin Karpov:

PS. Кто знает как подменить историю в МТ5? Брокер Открытие, секция ФОРТС, на счетах демо стали твориться непонятности с котировками, а без демо ни как не проверить работу некоторых алгоритмов.

Я знаю - никак. Но MQ обещала появление внешних фидеров...
 
Konstantin Karpov:

PS. Кто знает как подменить историю в МТ5? Брокер Открытие, секция ФОРТС, на счетах демо стали твориться непонятности с котировками, а без демо ни как не проверить работу некоторых алгоритмов.

Можно выгрузить историю в csv файл, загрузить эту историю в МТ4, там с историей можно делать все что угодно.

Я так делал. Но придется советник переписывать на МТ4. 

 
Konstantin Karpov:

Михаил, я стандартную библиотеку MetaQuotes использую на ФОРТС вполне успешно. Правда пришлось создать несколько дополнительных классов в которых ввел методы с дополнительными проверками и условиями. Но ни каких проблем не наблюдаю кроме одного - там где в рассчетах используется спред. На форекс как то не так сильно он скачет :)

PS. Кто знает как подменить историю в МТ5? Брокер Открытие, секция ФОРТС, на счетах демо стали твориться непонятности с котировками, а без демо ни как не проверить работу некоторых алгоритмов.

Извините, я не знал.

В следующий раз, если будут спрашивать как использовать стандартные библиотеки на ФОРТС,

я сошлюсь на Вас.

 
Видимо, я поторопился написать, что в следующем билде ( 1117 ) поправят...:(
 
Privet.Kak sdelat,ctob nebylo proskolzenyje orderov  po novostiam. Mozet est kakoi ta instrument?
 
1973drvu:
Privet.Kak sdelat,ctob nebylo proskolzenyje orderov  po novostiam. Mozet est kakoi ta instrument?
Privet!Ispolzui Limitnie OrdErA!
 

Или я что-то не так делаю или опять бага?

//+------------------------------------------------------------------+
//|                                                       Spread.mq5 |
//|                                          Copyright 2015, Mikalas |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Mikalas"
#property link      "http://www.mql5.com"
#property version   "1.20"
//
#property indicator_separate_window

#property indicator_buffers 2
#property indicator_plots   2

//--- plot Label1
#property indicator_label1  "Curr spread"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrYellow
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Label2
#property indicator_label2  "Midle"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrDeepPink
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- Levels
#property indicator_level1 0
#property indicator_level2 0
#property indicator_level3 0
//---
#property indicator_levelwidth 1
//---
#property indicator_levelstyle STYLE_DOT
//---
ENUM_TIMEFRAMES time_frame; //Таймфрейм
//
string sec_symbol;
//
input string StartData = "2015.03.16"; //Дата начала расчёта индикатора
input double Otstup    = 10;           //Отступ от min/max
input bool   UseHour   = false;        //Считать за последние часы
input int    CPeriod   = 24;           //Период расчёта индикатора (часы)  
//--- indicator buffers
double MainBuffer[], MidleBuffer[];
double sec_close[1];
double mid_spread;
double max_value; 
double min_value;
//
ulong spread_cnt;
//---
datetime start_time;
datetime end_time;
datetime sec_times[];
//
int sec_bars;
int mem_bars;
int next_month;
int b_period;
int back_period;
//
uint timer_time;
//
bool b_found;
bool is_timer;
bool is_busy;
//
//+------------------------------------------------------------------+
//| Indicator Expert set second symbol function                      |
//+------------------------------------------------------------------+
string SetSecSymbol( const string aSymbol )
{
  int str_tire = 0;
  int str_tochka = 0;
  ushort let_symbol;
  string str_month, str_year;
  long aYear;
    
  int str_size = StringLen( aSymbol );
    
  for( int i = 0; i < str_size; i++ )
  {
    let_symbol = StringGetCharacter( aSymbol, i );
      
    if ( let_symbol == '-' )
    {
      str_tire = i;
    }
      
    if ( let_symbol == '.' )
    {
      str_tochka = i;
    }
  }
    
  if ( ( str_tire != 0 ) && ( str_tochka != 0 ) )
  {
    str_month = StringSubstr( aSymbol, str_tire + 1, str_tochka - str_tire - 1 );
    str_year = StringSubstr( aSymbol, str_tochka + 1, str_size - str_tochka - 1 );
    
    if ( str_month == "12" )
    {
      str_month = IntegerToString( next_month );
        
      aYear = StringToInteger( str_year );
      aYear = aYear + 1;
      str_year = IntegerToString( aYear );
    }
    else
    {
      long aMonth = StringToInteger( str_month );
      aMonth = aMonth + next_month;
      
      if ( aMonth > 12 )
      {
        aMonth = aMonth - 12;
        aYear = StringToInteger( str_year );
        aYear = aYear + 1;
        str_year = IntegerToString( aYear );
      } 
      str_month = IntegerToString( aMonth );
    }
  }
//--- Set new symbol 
  return( StringSubstr( aSymbol, 0, str_tire + 1 ) + str_month + "." + str_year );
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
bool CheckBrent( const string a_symbol )
{
  ushort let_symbol;
  int str_size = StringLen( a_symbol );
    
  for( int i = 0; i < str_size; i++ )
  {
    let_symbol = StringGetCharacter( a_symbol, i );
      
    if ( let_symbol == '-' )
    {
      string str_info = StringSubstr( a_symbol, 0, i );
//---      
      if ( str_info == "BR" )
      {
        return( true );
      }
    }
  }
  return( false );
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
  is_busy = false;
  is_timer = false;
  timer_time = 30 * 1000;
  back_period = CPeriod * 60;
  mid_spread = 0.0;
  spread_cnt = 0;
  time_frame = PERIOD_CURRENT;
  next_month = 3;
  max_value = -DBL_MAX; 
  min_value = DBL_MAX;
//---
  if ( CheckBrent( _Symbol ) ) next_month = 1;
//---
  sec_symbol = SetSecSymbol( _Symbol );
//---
  //---Check for symbol present
  if ( !SymbolInfoInteger( sec_symbol, SYMBOL_SELECT ) )
  {
    ResetLastError();
//---    
    if ( GetLastError() != ERR_MARKET_UNKNOWN_SYMBOL )
    {
      SymbolSelect( sec_symbol, true );
    }
    else
    {
      Print( "OnInit: Неизвестный символ - ", sec_symbol );
      return( INIT_FAILED );
    }    
  }
//---
    //---Check program  
  if ( MQL5InfoInteger( MQL5_PROGRAM_TYPE ) == PROGRAM_INDICATOR && Period() == time_frame && Symbol() == sec_symbol )
  {
    Print( "OnInit: Не пройдена проверка типа программы!" );
    return( INIT_FAILED );
  }    
//---
  end_time = datetime( SymbolInfoInteger( _Symbol, SYMBOL_EXPIRATION_TIME ) );
  start_time = datetime( StringToTime( StartData ) + 19 * 3600 + 5 * 60 );
 // }  
//---  
  IndicatorSetInteger( INDICATOR_DIGITS, 0 );
  IndicatorSetString( INDICATOR_SHORTNAME, "Spread" );
//---  
  SetIndexBuffer( 0, MainBuffer, INDICATOR_DATA );
  PlotIndexSetDouble( 0, PLOT_EMPTY_VALUE, EMPTY_VALUE );
  ArraySetAsSeries( MainBuffer, true );
//---  
  SetIndexBuffer( 1, MidleBuffer, INDICATOR_DATA );
  PlotIndexSetDouble( 1, PLOT_EMPTY_VALUE, EMPTY_VALUE );
  ArraySetAsSeries( MidleBuffer, true );
//---
  IndicatorSetInteger( INDICATOR_LEVELCOLOR, 0, clrLime );
  IndicatorSetInteger( INDICATOR_LEVELCOLOR, 1, clrAqua );
  IndicatorSetInteger( INDICATOR_LEVELCOLOR, 2, clrLime ); 
//---
  ArraySetAsSeries( sec_times, true );   
//---
  if ( ( TimeTradeServer() - start_time ) < 60 )
  {
    Print( "Слишком мал промежуток времени!" );
    return( INIT_FAILED );
  }
//--- try load data
  GetBars( sec_symbol, time_frame, start_time, end_time );
  is_timer = EventSetMillisecondTimer( timer_time );
//---
  return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
// Custom indicator DeInit function                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  if ( is_timer )
  {
    EventKillTimer();
    is_timer = false;
  }  
//---  
  if ( reason == REASON_INITFAILED )
  {
    Print( "Индикатор удалён! Причина - ошибка инициализации." );
  //  ChartIndicatorDelete( 0, 1, "Spread" ); 
  }
}
//+------------------------------------------------------------------+
// Custom indicator DeInit function                                  |
//+------------------------------------------------------------------+
void OnTimer()
{
  if ( ( is_busy ) || IsStopped() ) return;
//---  
  GetBars( sec_symbol, time_frame, start_time, end_time );
}
//+------------------------------------------------------------------+
// Custom indicator Check timer function                             |
//+------------------------------------------------------------------+
bool CheckTimer( const uint start_value, const uint per_value )
{
  uint end_value = GetTickCount();
  
  if ( end_value < start_value )
  {
    if ( ( start_value - end_value ) >= per_value ) return( true );
  } 
  else
  {
    if ( ( end_value - start_value ) >= per_value ) return( true );
  }
  return( false );
}
//+------------------------------------------------------------------+
//| Custom indicator Get local data function                         |
//+------------------------------------------------------------------+
void GetLocalData( const string a_symbol, ENUM_TIMEFRAMES a_period, datetime start_date, datetime end_date )
{
  datetime times[1];
  int fail_cnt = 0;
//---
  while ( ( fail_cnt < 5 ) && !IsStopped() )
  {
    long first_date = long( SeriesInfoInteger( a_symbol, PERIOD_M1, SERIES_TERMINAL_FIRSTDATE ) );
//---
    if ( first_date > 0 )
    {
      Print( "GetLocalData: Первая дата в терминале есть.");
      if ( datetime( first_date ) < start_date )
      {
        Print( "Нет данных в терминале за заданный период!");
        break;
      }    
//--- force timeseries build
      CopyTime( a_symbol, a_period, datetime( first_date ) + datetime( PeriodSeconds( a_period ) ), 1, times );
      
//--- wait to build timeseries 
      uint start_tick = GetTickCount();
//---        
      while ( !CheckTimer( start_tick, 5 ) )
      {
        fail_cnt--;
        fail_cnt++;
      }    
//---
      if ( bool( SeriesInfoInteger( a_symbol, a_period, SERIES_SYNCHRONIZED ) ) ) break;
    }     
    fail_cnt++;
  }  
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function                        |
//+------------------------------------------------------------------+
void LoadServerData( const string a_symbol, ENUM_TIMEFRAMES period, const datetime start_date, const datetime end_date  )
{
  int fail_cnt = 0;
//---
  while ( ( fail_cnt < 5 ) && !IsStopped() )
  {   
    long first_date = long( SeriesInfoInteger( a_symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE ) );
//---    
    if ( first_date <= 0 )
    {
      uint start_tick = GetTickCount();
//---        
      while ( !CheckTimer( start_tick, 10 ) )
      {
        fail_cnt--;
        fail_cnt++;
      }
    }
    else
    {
      Print( "LoadServerData: Первая дата на сервере есть. Пробуем построить таймсерию...");
      GetLocalData( a_symbol, period, start_date, end_date );
      break;
    }  
    fail_cnt++;
  }  
}
//+------------------------------------------------------------------+
//| Custom indicator Get bars function                               |
//+------------------------------------------------------------------+
int GetBars( string symbol, ENUM_TIMEFRAMES period, const datetime start_date, const datetime end_date )
{
  int fail_cnt = 0;
//---
  while ( ( fail_cnt < 5 ) && !IsStopped() )
  {
//---Check symbol is synchronized  
    if ( SymbolIsSynchronized( symbol ) )
    {
      Print( "Символ синхронизирован. Проверяем таймсерию...");
//---Check series is synchronized
      if ( bool( SeriesInfoInteger( symbol, period, SERIES_SYNCHRONIZED ) ) )
      {
        Print( "Серия синхронизирована. Пробуем получить бары...");
        return( Bars( symbol, period ) );
      }
      else
      {
        Print( "Серия не сихронизирована. Пробуем получить данные из терминала...");
        GetLocalData( symbol, period, start_date, end_date );
      }    
    }
    else
    {
      Print( "Символ не синхронизирован. Пробуем получить данные с сервера...");
      LoadServerData( symbol, period, start_date, end_date );
    }
    fail_cnt++;
  }  
  return( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator fill buffers function                           |
//+------------------------------------------------------------------+
void FillBuffers( const int count, const int value )
{
  if ( ( count > 0 ) && ( value > 0 ) )
  {
    for ( int i = count - 1; i >= 0; i-- )
    {
      MainBuffer[i] = MainBuffer[i + 1];
      MidleBuffer[i] = MidleBuffer[i + 1];
    }  
  }  
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
  int nStartBar = rates_total - prev_calculated;
  if ( nStartBar == 0 ) return( rates_total );
//---
  is_busy = true;  
//---
  ArraySetAsSeries( time, true );
  ArraySetAsSeries( close, true );
//---
  sec_bars = GetBars( sec_symbol, time_frame, start_time, end_time );
//---  
  if ( sec_bars < 1 )
  {
    Print( "OnCalculate: Не получены бары по символу ", sec_symbol );
    FillBuffers( nStartBar, prev_calculated );
    is_busy = false;
    return( prev_calculated );
  }
  else
  {
    sec_bars = CopyTime( sec_symbol, time_frame, end_time, sec_bars, sec_times );
    if ( sec_bars < 1 )
    {
      Print( "OnCalculate: Не скопированы тийминги по символу ", sec_symbol );
      FillBuffers( nStartBar, prev_calculated );
      is_busy = false;
      return( prev_calculated );
    }
  }

//---
  is_busy = false;  
//--- 
  return( rates_total );
}

 Символ синхронизирован. Серия синхронизирована, а бары не возможно получить:

2015.05.29 15:45:03.762 Spread (CHMF-6.15,H1)   Символ не синхронизирован. Пробуем получить данные с сервера...
2015.05.29 15:45:03.838 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:03.838 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:03.838 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:03.838 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:03.838 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:33.854 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:33.854 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:56.788 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:56.788 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:56.788 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:56.962 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:56.962 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:56.962 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:57.232 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:57.232 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:57.232 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:57.802 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:57.802 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:57.802 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:58.236 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:58.236 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:58.236 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:58.665 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:58.665 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:58.665 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:58.711 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:58.711 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:58.711 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:58.781 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:58.781 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:58.781 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:59.263 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:59.263 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:59.263 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:59.761 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:59.761 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:59.761 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:45:59.813 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:45:59.813 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:45:59.813 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:00.259 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:00.259 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:00.259 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:00.307 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:00.307 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:00.307 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:00.763 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:00.763 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:00.763 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:00.823 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:00.823 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:00.823 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:01.321 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:01.321 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:01.321 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:01.793 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:01.793 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:01.793 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:01.831 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:01.831 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:01.831 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:02.855 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:02.855 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:02.855 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
2015.05.29 15:46:03.499 Spread (CHMF-6.15,H1)   Символ синхронизирован. Проверяем таймсерию...
2015.05.29 15:46:03.499 Spread (CHMF-6.15,H1)   Серия синхронизирована. Пробуем получить бары...
2015.05.29 15:46:03.499 Spread (CHMF-6.15,H1)   OnCalculate: Не получены бары по символу CHMF-9.15
 

Билд 1150 (реальный счёт) по-прежнему индикатор не работает! 

2015.06.08 17:30:12.188 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.198 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.202 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.311 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.311 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.457 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.457 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.458 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.458 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.461 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.461 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.462 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.462 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.463 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.463 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:12.464 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:12.464 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:16.870 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:16.870 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:16.871 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:16.871 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:16.872 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:30:16.888 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:30:16.888 Spread (BR-6.15,M1)     GetLocalData: Нет баров за выбранный период! Пробуем построить таймсерию...
2015.06.08 17:30:16.888 Spread (BR-6.15,M1)     GetLocalData: Таймсерия не построена!
2015.06.08 17:30:16.888 Spread (BR-6.15,M1)     OnCalculate: Не получены бары по символу BR-7.15
2015.06.08 17:31:01.840 Spread (BR-6.15,M1)     GetBars: Символ не синхронизирован. Пробуем получить данные с сервера...
2015.06.08 17:31:01.840 Spread (BR-6.15,M1)     LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные...
2015.06.08 17:31:01.840 Spread (BR-6.15,M1)     GetLocalData: Нет баров за выбранный период! Пробуем построить таймсерию...
2015.06.08 17:31:01.840 Spread (BR-6.15,M1)     GetLocalData: Таймсерия не построена!
2015.06.08 17:31:01.840 Spread (BR-6.15,M1)     OnCalculate: Не получены бары по символу BR-7.15