FORTS Lütfen yardım edin - sayfa 12

 
komposter :
Kus, Edward, kus =)
Pekala, çıkar onu, bu süreci "Yu") aracılığıyla yapıyorum))
 
Mikalas :

Bunu anladım, ama bana yukarıda anlattığım gibi yapmanın neden imkansız olduğunu söyleyin?

Bu, bilgi işleme hızını hiçbir şekilde etkilemez:

Enstrüman hakkında herhangi bir bilgi varsa, ilk ortaya çıkış tarihini girip hafızada saklıyoruz - 8 bayt!

Onu saklamanız bile gerekmez ve SymbolSelect() yaptığınızda, onu hafızada saklayın.

SeriesInfoInteger işlevi ( SERIES_TERMINAL_FIRSTDATE ) tarafından erişildiğinde şunu elde ederiz:

A -1 - veri yok

B. 0 - dpny mevcut ancak hazır değil

B. İlk bilgi tarihi

O zaman her şey açık ve şeffaf olurdu.

-1 - Sunucuya gidin

0 - Bir zaman serisini kontrol etmek ve (veya) oluşturmak için bir sonraki yinelemeyi bekliyoruz

> 0 Bir zaman serisi oluşturma

Referansınızdan, neredeyse bunu yaptığınızı fark ettim, öyle değilmiş.

Görünüşe göre bir programcı yazmaya başladı ve başka biri bitirdi

Uygulamanız FOREX için iyi, ancak FORTS için çok uygun değil.

Fiyatlar uzun süre FORTS'a gelmeyebilir ve zaman serisi payati'den kaldırılır.

ve tüm veri alma sürecini tekrar ve sunucuya yapılan çağrı ile tekrarlamanız gerekir !

Birçok sembolün verileriyle çalışmak için uzmanları kullanın, her şey uygun ve basit olacaktır. MT5 ortamındaki göstergeler, öncelikle zaman serisi verilerine dayalı olarak hızlı hesaplama yapmak ve hesaplama sonuçlarını bir grafik üzerinde görüntülemek için tasarlanmıştır. Platformun geliştirilmesi sırasında uzmanlara sunulan birçok özellik aldılar, ancak temel mimari sınırlamalar kaldı. Ve göstergeler ve uzmanlar arasındaki farkı tamamen ortadan kaldırmak için hiçbir neden yok. Bir kez daha hatırlatırım ki en önemli fark, uzmanların kendi işleme iş parçacığına sahip olmalarıdır. Göstergeler bir servis iş parçacığında hesaplanır ve bu iş parçacığı diğer birçok işlevi yerine getirir. Bu nedenle uzmanlarla paylaşılan işlevsellik bile farklı bir uygulamaya sahiptir.

Tarihe erişime gelince, burada evrensel bir çözüm yok. Terminal, tüketicinin arzusunu önceden tahmin edemez, yani. EA'nın yalnızca bir tarih almak isteyip istemediği veya mevcut tüm geçmişi talep etmek isteyip istemediği. Seçim, zaman çerçevesine hızlı erişim lehine terminalde yapılmıştır, yani. kullanıcının isteği üzerine, geçmişin mevcut (sunucu ile senkronize edilmiş) durumunu tam olarak önbelleğe almak için bir girişimde bulunulur. Tekrarlanan aktif erişim üzerine bir bahis yapılır. Evet, bu yaklaşımın uygun olmadığı bir uygulama sınıfı var. Ancak programcı, terminali "kişisel olarak kendisi için" yeniden yazma gereksinimlerine takılmazsa, mevcut işlevsellikte bir çözüm bulacaktır. Hiç bir çözüm yoksa, ancak o zaman işlevselliği genişletme sorunu ortaya çıkar.

Genellemeler olmadan belirli bir kodla belirli bir sorunu tanımlayın. Aksi takdirde, tek bir işlevin yanlış anlaşılan işlevselliğinin "her şey yanlış" ve "her şey uygunsuz" olarak şişirildiği ortaya çıkıyor.

 
antt :

Birçok sembolün verileriyle çalışmak için uzmanları kullanın, her şey uygun ve basit olacaktır. MT5 ortamındaki göstergeler, öncelikle zaman serisi verilerine dayalı olarak hızlı hesaplama yapmak ve hesaplama sonuçlarını bir grafik üzerinde görüntülemek için tasarlanmıştır. Platformun geliştirilmesi sırasında uzmanlara sunulan birçok özellik aldılar, ancak temel mimari sınırlamalar kaldı. Ve göstergeler ve uzmanlar arasındaki farkı tamamen ortadan kaldırmak için hiçbir neden yok. Bir kez daha, en önemli fark, uzmanların kendi işleme iş parçacığına sahip olmasıdır. Göstergeler bir servis iş parçacığında hesaplanır ve bu iş parçacığı birçok başka işlevi yerine getirir. Bu nedenle uzmanlarla paylaşılan işlevsellik bile farklı bir uygulamaya sahiptir.

Tarihe erişime gelince, burada evrensel bir çözüm yok. Terminal, tüketicinin arzusunu önceden tahmin edemez, yani. EA'nın yalnızca bir tarih almak isteyip istemediği veya mevcut tüm geçmişi talep etmek isteyip istemediği. Seçim, zaman çerçevesine hızlı erişim lehine terminalde yapılmıştır, yani. kullanıcının isteği üzerine, geçmişin mevcut (sunucu ile senkronize edilmiş) durumunu tam olarak önbelleğe almak için bir girişimde bulunulur. Tekrarlanan aktif erişim üzerine bir bahis yapılır. Evet, bu yaklaşımın uygun olmadığı bir uygulama sınıfı var. Ancak programcı, terminali "kişisel olarak kendisi için" yeniden yazma gereksinimlerine takılmazsa, mevcut işlevsellikte bir çözüm bulacaktır. Hiç bir çözüm yoksa, ancak o zaman işlevselliği genişletme sorunu ortaya çıkar.

Genellemeler olmadan belirli bir kodla belirli bir sorunu tanımlayın. Aksi takdirde, tek bir işlevin yanlış anlaşılan işlevselliğinin "her şey yanlış" ve "her şey uygunsuz" olarak şişirildiği ortaya çıkıyor.

İyi günler, Anton!

Cevabınızı parçalayalım:

1. "Çok karakterli verilerle çalışmak için uzmanları kullanın, her şey rahat ve basit olacaktır."

Grafikte görüntülenen 3 sembol için bir geçmişe (kapat) ihtiyacım var.

Yakından EA'dan tarih almanın başka bir yolu var mı?

Ve danışmandan sonuçları almak için "bahçeyi çitle çevirmeniz" gerekiyor (ayrı bir pencerede)!

2. "Geçmişe erişime gelince, burada evrensel bir çözüm yok. Terminal, tüketicinin arzusunu, yani uzmanın yalnızca bir tarih almak mı yoksa mevcut tüm geçmişi mi talep etmek istediğini önceden tahmin edemez"

Tüketicinin ne istediğini tahmin etmenize gerek yok. Semboldeki verilerin VE TÜMÜNÜN hangi durumda olduğunu "söylemeniz" yeterlidir!.

Daha sonra kullanıcı, bir sonraki adımda hangi eylemleri gerçekleştirmesi gerektiğini TAM OLARAK bilecektir.

3. "Ancak programcı, terminali "kişisel olarak kendisi için" yeniden yazma gereksinimlerine takılıp kalmazsa, mevcut işlevsellikte bir çözüm bulacaktır."

Söylemedim ve dahası "kendim için" bir şey yapmayı talep etmedim ve çözüm elbette her zaman mevcut işlevsellikte bulunacak.

4. " Hiç bir çözüm yoksa, ancak o zaman işlevselliği genişletme sorunu ortaya çıkar. "

İşlevselliği genişletmeye gerek yok, sadece kolaylık ve kullanım hızı için küçük değişiklikler yapabilirsiniz.

5. " Belirli bir sorunu, genellemeler olmadan, belirli bir kodla tanımlayın. Aksi takdirde, tek bir işlevin yanlış anlaşılan işlevselliğinin "her şey yanlış" ve "her şey uygunsuz" olarak şişirildiği ortaya çıkıyor "

Tamam, belirli bir kodla sorunun "genişletilmiş" bir açıklamasına hazırlanacağım.

Ancak, ne yazık ki, kılavuza "güvenemezsiniz" ...

Cevapladığınız için teşekkürler.

 
Mikalas :


Her zaman olduğu gibi, kullanıcının konumu , ben evrenin merkeziyim ve dünya benim etrafımda dönüyor. Olan işlevselliği kullanmak gereklidir. Ayrıca, verilerin nasıl elde edileceği birden fazla kez gösterildi.
 
barabashkakvn :
Her zaman olduğu gibi, kullanıcının konumu, ben evrenin merkeziyim ve dünya benim etrafımda dönüyor. Olan işlevselliği kullanmanız gerekir. Ayrıca, verilerin nasıl alınacağı bir kereden fazla gösterildi.
2x2 ne kadar?
 
barabashkakvn :
Her zaman olduğu gibi, kullanıcının konumu, ben evrenin merkeziyim ve dünya benim etrafımda dönüyor. Olan işlevselliği kullanmak gereklidir. Ayrıca, verilerin nasıl alınacağı bir kereden fazla gösterildi.

Ve tam tersini düşünüyorsun. Evrenin merkezi geliştiriciler ve dünya onların etrafında mı dönüyor? Ne olmuş?

O zaman bir soruyu cevaplamak için, bu terminal kimin için? Geliştiriciler bunu kendileri için mi yoksa kullanıcı için mi yapıyor?

Kendileri için ise, soru yok ... her şey yolunda.

Ancak kullanıcı için, en azından fikirlerini dinlemeniz gerekir ...

 
antt :

........

Genellemeler olmadan belirli bir kodla belirli bir sorunu tanımlayın. Aksi takdirde, tek bir işlevin yanlış anlaşılan işlevselliğinin "her şey yanlış" ve "her şey uygunsuz" olarak şişirildiği ortaya çıkıyor.

Açıklama:

Gerçek hesap FORTS komisyoncusu.

Sorun - Zaman serisi verileri alamıyorum.

1. Resimler terminalde veri olduğunu gösteriyor.

2. İşte kod:

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

#property indicator_buffers 1
#property indicator_plots    1

//--- plot Label1
#property indicator_label1   "Data"
#property indicator_type1   DRAW_LINE
#property indicator_color1   clrYellow
#property indicator_style1   STYLE_SOLID
#property indicator_width1   1
//---
ENUM_TIMEFRAMES time_frame; //Таймфрейм
//
string sec_symbol;
//
input string StartData = "2015.03.16" ; //Дата начала расчёта индикатора
//--- indicator buffers
double MainBuffer[];
//---
datetime start_time;
datetime end_time;
datetime sec_times[];
//
int   sec_bars;
//
int next_month;
//+------------------------------------------------------------------+
//| 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 ()
{
  time_frame = PERIOD_CURRENT ;
  next_month = 3 ;
//---
   if ( CheckBrent( _Symbol ) ) next_month = 1 ;
//---
  sec_symbol = SetSecSymbol( _Symbol );
//---
   SymbolSelect ( sec_symbol, true );  
//---
  end_time = datetime ( SymbolInfoInteger ( _Symbol , SYMBOL_EXPIRATION_TIME ) );
  start_time = datetime ( StringToTime ( StartData ) + 19 * 3600 + 10 * 60 );
//---  
   IndicatorSetInteger ( INDICATOR_DIGITS , 0 );
   IndicatorSetString ( INDICATOR_SHORTNAME , "FORTS" );
   SetIndexBuffer ( 0 , MainBuffer, INDICATOR_DATA );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries ( MainBuffer, true );
//---
   if ( ( TimeCurrent () - start_time ) < 60 )
  {
     Print ( "Слишком мал промежуток времени!" );
     return ( INIT_FAILED );
  }
//--- 
   Print ( "OnInit: Получение баров для символа " , sec_symbol, "..." ); 
  sec_bars = GetBars( sec_symbol, time_frame, start_time, end_time );
//---
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//|  Custom indicator deinitialization function                      |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason )
{
   if ( reason == REASON_INITFAILED )
  {
     ChartIndicatorDelete ( 0 , 1 , "FORTS" ); 
  }
}
//+------------------------------------------------------------------+
// 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                         |
//+------------------------------------------------------------------+
int GetLocalData( const string a_symbol, ENUM_TIMEFRAMES a_period, datetime start_date, datetime end_date )
{
   datetime times[ 1 ];
//---  
   long first_date = SeriesInfoInteger ( a_symbol, PERIOD_M1 , SERIES_TERMINAL_FIRSTDATE );  
  
   if ( first_date > 0 )
   Print ( "GetLocalData: Первая дата в терминале есть." );
  {
//--- force timeseries build
     CopyTime ( a_symbol, a_period, datetime ( first_date ) + PeriodSeconds ( a_period ), 1 , times );
//--- check date
    first_date = SeriesInfoInteger ( a_symbol, PERIOD_M1 , SERIES_FIRSTDATE );
//---        
     if ( first_date > 0 && first_date <= long ( start_date ) )
    {
       bool is_sync = bool ( SeriesInfoInteger ( a_symbol, a_period, SERIES_SYNCHRONIZED ) ); 
//---     
       if ( is_sync )
      {
         Print ( "GetLocalData: Серия синхронизирована." );
         return ( Bars ( a_symbol, a_period, start_date, end_date ) );
      }
    }  
  }
   Print ( "GetLocalData: Не удалось построить таймсерию!" );
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function                        |
//+------------------------------------------------------------------+
int LoadServerData( const string a_symbol, ENUM_TIMEFRAMES period, const datetime start_date, const datetime end_date  )
{
   SeriesInfoInteger ( a_symbol, PERIOD_M1 , SERIES_SERVER_FIRSTDATE );
   int fail_cnt = 0 ;
//---
   while ( fail_cnt < 10 )
  {
     uint start_tick = GetTickCount ();
//---    
     while ( !CheckTimer( start_tick, 5 ) )
    {
       if ( SymbolIsSynchronized ( a_symbol ) )
      {
         Print ( "LoadServerData: Символ синхронизирован." );
         return ( GetLocalData( a_symbol, period, start_date, end_date ) );
      }
    }
    fail_cnt++;
    start_tick = GetTickCount ();
  }
   Print ( "LoadServerData: Не удалось загрузить историю с сервера!" );
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator Get bars function                               |
//+------------------------------------------------------------------+
int GetBars( string symbol, ENUM_TIMEFRAMES period, const datetime start_date, const datetime end_date )
{
//---Check for symbol present
   if ( ! SymbolInfoInteger ( symbol, SYMBOL_SELECT ) )
  {
     ResetLastError ();
//---    
     if ( GetLastError () != ERR_MARKET_UNKNOWN_SYMBOL )
    {
       SymbolSelect ( symbol, true );
    }
     else
    {
       Print ( "GetBars: Неизвестный символ - " , symbol );
       return ( 0 );
    }    
  }
//---Check program  
   if ( MQL5InfoInteger ( MQL5_PROGRAM_TYPE ) == PROGRAM_INDICATOR && Period () == period && Symbol () == symbol )
  {
     Print ( "GetBars: Не пройдена проверка типа программы!" );
     return ( 0 );
  }  
//---
   if ( SymbolIsSynchronized ( symbol ) )
  {
     Print ( "GetBars: Символ синхронизирован." );
//---Check series syncronization
     bool is_sync = bool ( SeriesInfoInteger ( symbol, period, SERIES_SYNCHRONIZED ) );
   
     if ( is_sync )
    {
       Print ( "GetBars: Серия синхронизирована." );
       return ( Bars ( symbol, period, start_date, end_date ) );
    }
     else
    {
       Print ( "GetBars: Локальная загрузка..." );
       return ( GetLocalData( symbol, period, start_date, end_date ) );
    }  
  }
   else
  {
     Print ( "GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера..." );
     return ( LoadServerData( symbol, period, start_date, end_date ) );
  }       
//---  
   return ( 0 );
}
//+------------------------------------------------------------------+
//| 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;
//---
   ArraySetAsSeries ( time, true );
   ArraySetAsSeries ( close, true );
   ArraySetAsSeries ( sec_times, true );
//---
   Print ( "OnCalculate: Получение баров для символа " , sec_symbol, "..." );
  sec_bars = GetBars( sec_symbol, time_frame, start_time, end_time );
//---  
   if ( sec_bars < 1 )
  {
     Print ( "OnCalculate: Не получены бары по символу - " , sec_symbol );
     return ( prev_calculated );
  }
   else
  {
    sec_bars = CopyTime ( sec_symbol, time_frame, 0 , sec_bars, sec_times );
     if ( sec_bars < 1 )
    {
       Print ( "OnCalculate: Не скопированы тийминги по символу - " , sec_symbol );
       return ( prev_calculated );
    }
  }
   Print ( "OnCalculate: Данные получены." );
 
   return ( rates_total );
}

//+------------------------------------------------------------------+

3. Ve işte sonuç:

 2015.03 . 31 06 : 39 : 16.826 Ind_test (BR- 4.15 ,M1)   OnInit : Получение баров для символа BR- 5.15 ...
2015.03 . 31 06 : 39 : 16.827 Ind_test (BR- 4.15 ,M1)   GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера...
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   LoadServerData: Символ синхронизирован.
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   GetLocalData: Первая дата в терминале есть.
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   GetLocalData: Не удалось построить таймсерию!
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   OnCalculate : Получение баров для символа BR- 5.15 ...
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   GetBars: Символ синхронизирован.
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   GetBars: Серия синхронизирована.
2015.03 . 31 06 : 39 : 16.848 Ind_test (BR- 4.15 ,M1)   OnCalculate : Не получены бары по символу - BR- 5.15
2015.03 . 31 06 : 39 : 49.379 Ind_test (ED- 6.15 ,M1)   OnInit : Получение баров для символа ED- 9.15 ...
2015.03 . 31 06 : 39 : 49.379 Ind_test (ED- 6.15 ,M1)   GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера...
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   LoadServerData: Символ синхронизирован.
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   GetLocalData: Первая дата в терминале есть.
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   GetLocalData: Не удалось построить таймсерию!
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   OnCalculate : Получение баров для символа ED- 9.15 ...
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   GetBars: Символ синхронизирован.
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   GetBars: Серия синхронизирована.
2015.03 . 31 06 : 39 : 49.399 Ind_test (ED- 6.15 ,M1)   OnCalculate : Не получены бары по символу - ED- 9.15
2015.03 . 31 06 : 39 : 55.555 Ind_test (Eu- 6.15 ,M1)   OnInit : Получение баров для символа Eu- 9.15 ...
2015.03 . 31 06 : 39 : 55.555 Ind_test (Eu- 6.15 ,M1)   GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера...
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   LoadServerData: Символ синхронизирован.
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   GetLocalData: Первая дата в терминале есть.
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   GetLocalData: Не удалось построить таймсерию!
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   OnCalculate : Получение баров для символа Eu- 9.15 ...
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   GetBars: Символ синхронизирован.
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   GetBars: Серия синхронизирована.
2015.03 . 31 06 : 39 : 55.567 Ind_test (Eu- 6.15 ,M1)   OnCalculate : Не получены бары по символу - Eu- 9.15
2015.03 . 31 06 : 40 : 01.683 Ind_test (GAZR- 6.15 ,M1) OnInit : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 06 : 40 : 01.683 Ind_test (GAZR- 6.15 ,M1) GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера...
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) LoadServerData: Символ синхронизирован.
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) GetLocalData: Первая дата в терминале есть.
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) GetLocalData: Не удалось построить таймсерию!
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) OnCalculate : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) GetBars: Символ синхронизирован.
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) GetBars: Серия синхронизирована.
2015.03 . 31 06 : 40 : 01.694 Ind_test (GAZR- 6.15 ,M1) OnCalculate : Не получены бары по символу - GAZR- 9.15
Dosyalar:
20150331.log  7 kb
 

Nasıl oynanır?

Terminal açılmak üzere bağlandı, başlatmadan önce tüm karakterlerin geçmişi diskten silindi

Başlangıçtan bu yana gösterge günlüğü

 2015.03 . 31 11 : 00 : 35.611 tmp6 (GAZR- 6.15 ,M1)     OnInit : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 11 : 00 : 35.611 tmp6 (GAZR- 6.15 ,M1)     GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера...
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     LoadServerData: Символ синхронизирован.
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     GetLocalData: Не удалось построить таймсерию!
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     GetBars: Символ синхронизирован.
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     GetBars: Серия синхронизирована.
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Не получены бары по символу - GAZR- 9.15
2015.03 . 31 11 : 00 : 36.306 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 11 : 00 : 36.306 tmp6 (GAZR- 6.15 ,M1)     GetBars: Символ синхронизирован.
2015.03 . 31 11 : 00 : 36.306 tmp6 (GAZR- 6.15 ,M1)     GetBars: Серия синхронизирована.
2015.03 . 31 11 : 00 : 36.306 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Данные получены.
2015.03 . 31 11 : 00 : 37.123 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 11 : 00 : 37.123 tmp6 (GAZR- 6.15 ,M1)     GetBars: Символ синхронизирован.
2015.03 . 31 11 : 00 : 37.123 tmp6 (GAZR- 6.15 ,M1)     GetBars: Серия синхронизирована.
2015.03 . 31 11 : 00 : 37.123 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Данные получены.


Gördüğünüz gibi, başlangıçtan itibaren bir saniyeden daha kısa bir süre içinde sembol verileri göstergenin kullanımına sunuldu.

 
alexvd :

Nasıl oynanır?

Terminal açılmak üzere bağlandı, başlatmadan önce tüm karakterlerin geçmişi diskten silindi

Başlangıçtan bu yana gösterge günlüğü


Gördüğünüz gibi, başlangıçtan bir saniyeden kısa bir süre sonra, sembol verileri gösterge için kullanılabilir hale geldi.

Tünaydın!

Yani İKİNCİ, e-ticaretle, zamanı gelmedi mi?

1. Yani, senkronize bir sembol ve senkronize bir zaman serisi ile elde edemeyiz.

barlar ( hemen ) - bu normal mi?

( Benim için ) bir hatadır.

 2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     GetBars: Символ синхронизирован.
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     GetBars: Серия синхронизирована.
2015.03 . 31 11 : 00 : 35.638 tmp6 (GAZR- 6.15 ,M1)     OnCalculate : Не получены бары по символу - GAZR- 9.15

2. TERMİNAL'de veri var ise (16 Mart sonrası tüm çubuklar için şekle bakınız) sunucuya gitmek zorunda kalıyoruz, bu normal mi?

Rahatsızlık ve uzun bilgi alımı ( benim için) açıktır.

 2015.03 . 31 11 : 00 : 35.611 tmp6 (GAZR- 6.15 ,M1)     OnInit : Получение баров для символа GAZR- 9.15 ...
2015.03 . 31 11 : 00 : 35.611 tmp6 (GAZR- 6.15 ,M1)     GetBars: Символ НЕ синхронизирован. Загрузка данных с сервера...
 
Mikalas :

Tünaydın!

Yani e-ticaret ile İKİNCİ, zamanı gelmedi mi?

Baştan beri ikinci, yani. başlangıçta bir kez. "Zaman değil."
Neden: