FORTS Veuillez nous aider - page 28

 

Merci à tous !

Le Service Desk a découvert que SymbolIsSynchronized()

Peut-être auront-ils le temps de le corriger dans la prochaine version...

 
Михаил:

Désolé, mais toutes les bibliothèques standard sont "réglées" pour fonctionner sur le FOREX.

Moi, et beaucoup d'autres, ne les utilisons pas pour travailler sur le FOREX.

Malheureusement, je ne peux pas vous aider à utiliser les bibliothèques standard.

Michael, j'utilise la bibliothèque standard MetaQuotes avec beaucoup de succès sur le FOREX. Cependant, j'ai dû créer quelques classes supplémentaires dans lesquelles j'ai introduit des méthodes avec des contrôles et des conditions supplémentaires. Cependant, je ne vois aucun problème, sauf un : les écarts sont utilisés dans les calculs. Le spread n'est pas si élevé en forex :).

PS. Qui sait comment modifier l'historique dans MT5 ? Mon courtier est Otkritie, j'ai des problèmes avec les cotations sur les comptes de démonstration et je ne peux pas vérifier certains algorithmes sans démo.

 

Konstantin Karpov:

PS. Qui sait comment remplacer l'historique dans MT5 ? Je ne sais pas comment modifier l'historique dans MT5.

Je sais - tu ne peux pas. Mais MQ a promis l'apparition de mangeurs externes...
 
Konstantin Karpov:

PS. Qui sait comment remplacer l'historique dans MT5 ? Je travaille sur ce sujet depuis longtemps et j'y travaille depuis longtemps maintenant.

Vous pouvez décharger l'historique dans un fichier csv et télécharger cet historique sur MT4, où vous pouvez faire ce que vous voulez avec l'historique.

Je l'ai fait. Mais nous devrons réécrire le conseiller expert sur MT4.

 
Konstantin Karpov:

Mikhail, j'utilise la bibliothèque standard MetaQuotes sur FORTS avec beaucoup de succès. Cependant, j'ai dû créer quelques classes supplémentaires dans lesquelles j'ai introduit des méthodes avec des contrôles et des conditions supplémentaires. Toutefois, je ne vois pas de problème, sauf un, celui de l'utilisation de l'écart dans les calculs. Le spread n'est pas si élevé en forex :).

PS. Qui sait comment modifier l'historique dans MT5 ? Mon courtier est Otkritie, j'ai une situation étrange avec les cotations sur mes comptes de démonstration et je ne peux pas vérifier certains algorithmes sans lui.

Je suis désolé, je ne savais pas.

La prochaine fois, si quelqu'un demande comment utiliser les bibliothèques standard sur FORTS,

Je les renverrai à vous.

 
Apparemment, j'ai été trop hâtif en écrivant que la prochaine version (1117) sera corrigée... :(
 
Privet.Kakdelat,ctob nebylo proskolzenyje ordersov po novostiam. Mozet est kakoi instrument ?
 
1973drvu:
Privet.Kakdelat,ctob nebylo proskolzenyje ordersov po novostiam. Mozet est kakoi instrument ?
Privet ! Ispolzui Limitnie OrdErA !
 

Ou est-ce que je fais quelque chose de mal ou encore un bug?

 //+------------------------------------------------------------------+
//|                                                       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 );
}

Le symbole est synchronisé. La série est synchronisée et les barres ne peuvent pas être obtenues :

 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
 

Bild 1150(compte réel) toujours l'indicateur ne fonctionne pas !

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
Raison: