[SERVICE DESK] Zamanlayıcıda kıdemli TF'nin zamanı alınırken hata oluştu! - sayfa 13

 
Alexey Kozitsyn :

1. maddeyi okuyun .

Çubuğun açılış saatini almak için, zamanlayıcı tamamen işe yaramaz ve grafikten farklı başka bir sembolden değilse diğer veriler. En azından her milisaniyede bir, mevcut çizelgeden farklı bir sembolle ilgili değilse tekrar kontrol edin, ancak mevcut sembolün farklı bir TF'si olması ilginçtir. Yeni veriler gelene kadar güncellenmeyecektir. Ve şu anki sembol üzerinde devam eden tüm çalışmalara sahipsiniz. Bu yüzden bir zamanlayıcı ile uğraşmayın. Geri kalanı zaten birkaç kez çiğnendi. Konu dolaştı.

 
Konstantin Nikitin :

Çubuğun açılış saatini almak için, zamanlayıcı tamamen işe yaramaz ve grafikten farklı başka bir sembolden değilse diğer veriler. En azından her milisaniyede bir, mevcut çizelgeden farklı bir sembolle ilgili değilse tekrar kontrol edin, ancak mevcut sembolün farklı bir TF'si olması ilginçtir. Yeni veriler gelene kadar güncellenmeyecektir. Ve şu anki sembol üzerinde devam eden tüm çalışmalara sahipsiniz. Bu yüzden bir zamanlayıcı ile uğraşmayın. Geri kalanı zaten birkaç kez çiğnendi. Konu dolaştı.

Dostum, belli ki burada olan bitene girmiyorsun. Artık zamanlayıcıyla ilgili değil, unut gitsin. Zamanlayıcı benim gerçek görevim ile ilgili. Şimdi sorun, alınan verilerin hatasında. Okumanızı tavsiye ettiğim 1. Nokta, IsConnected() varsa, göstergenin sunucuya yalnızca ikinci OnCalculate() olayında bağlanacağıdır. Onlar. Önceki tavsiyen işe yaramaz.

 
Alexey Kozitsyn :

Dostum, belli ki burada olan bitene girmiyorsun. Artık zamanlayıcıyla ilgili değil, unut gitsin. Zamanlayıcı benim gerçek görevim ile ilgili. Şimdi sorun, alınan verilerin hatasında. Okumanızı tavsiye ettiğim 1. Nokta, IsConnected() varsa, göstergenin sunucuya yalnızca ikinci OnCalculate() olayında bağlanacağıdır. Onlar. Önceki tavsiyen işe yaramaz.

Bunu deneysel olarak test ettiniz mi? kontrol etmenizi tavsiye ederim. Bu yüzden terminali bir test ile yeniden başlatın.

 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[]
)
{
   static int num = 1 ;
   
     
     if ( IsConnected () )
           if ( num == 1 )
               Comment ( "Test: " , num );
     num++;
     return (rates_total);
}

Ve görünen nedir?

İlk geçişte, sunucuya bir bağlantı varsa, her şey yolunda gider.

 
Konstantin Nikitin :

Bunu deneysel olarak test ettiniz mi? kontrol etmenizi tavsiye ederim. Bu yüzden terminali bir test ile yeniden başlatın.

Ve görünen nedir?

İlk geçişte, sunucuya bir bağlantı varsa, her şey yolunda gider.

Piyasa çalışmadığında aklı başında ve ayık hafızası olan kim test eder?

Ve evet, ampirik olarak test ettim, ki bunun hakkında yazdım .

 
Alexey Kozitsyn :

Piyasa çalışmadığında aklı başında ve ayık hafızası olan kim test eder?

Ve evet, ampirik olarak test ettim, ki bunun hakkında yazdım .

Ve çalışan veya çalışmayan bir pazarın bununla ne ilgisi var. Gösterge başladı, işleme başladı. İlk geçişin sonucu yorumda. Dedin

Alexey Kozitsyn :

Sizin için okuyun - IsConnected() varlığında göstergenin sunucuya yalnızca ikinci OnCalculate() olayında bağlanacağını söylüyor. Onlar. Önceki tavsiyen işe yaramaz.

 
Konstantin Nikitin :

Ve çalışan veya çalışmayan bir pazarın bununla ne ilgisi var. Gösterge başladı, işleme başladı. İlk geçişin sonucu yorumda. Dedin

Mde. Tamam ozaman. Ve şimdi bu göstergeniz tabloya yüklenmiş olarak terminali kapatın ve yeniden başlatın.

 
Alexey Kozitsyn :

Mde. Tamam ozaman. Ve şimdi bu göstergeniz tabloya yüklenmiş olarak terminali kapatın ve yeniden başlatın.

yani bu grafik

ve ilk yayınlanmasından sadece birkaç dakika önce yapıldı. Bu bugün. Ve terminali yeniden başlattıktan sonra.
Sunucu ile iletişim hafta sonları da kurulur. Aynı bakiyeyi kontrol edin, oturum kapatılmadan önce devre dışı bırakıldıysa en son verileri alabilirsiniz.

 
Konstantin Nikitin :

yani bu grafik

ve ilk yayınlanmasından sadece birkaç dakika önce yapıldı. Bu bugün. Ve terminali yeniden başlattıktan sonra.
Sunucu ile iletişim hafta sonları da kurulur. Aynı bakiyeyi kontrol edin, oturum kapatılmadan önce devre dışı bırakıldıysa en son verileri alabilirsiniz.

 #property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   if ( ! IsConnected () )
     {
         Print ( __FUNCTION__ , ": IsConnected = false" );
         return ( 0 );
     }
   //---
   Print ( "Connected!" );
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

bana sonucu verir:

 2018.10 . 06 18 : 24 : 32.261 test_isConnected GBPUSD,M1: initialized
2018.10 . 06 18 : 24 : 32.313 test_isConnected GBPUSD,M1: OnCalculate : IsConnected = false
2018.10 . 06 18 : 24 : 33.080 test_isConnected GBPUSD,M1: Connected!
Ve kodunuz yüklenirken herhangi bir yorum göstermiyor.
 
Alexey Kozitsyn :

bana sonucu verir:

Ve kodunuz yüklenirken herhangi bir yorum göstermiyor.

Pekala, burada seçenekler var. Sunucum bazen Pazar günleri bakım için kapanıyor ve daha sonra uzun sürmüyor. Bu, iletişim eksikliğinin nedenlerinden biri olabilir.
İkincisi, büyük olasılıkla, gösterge başlamadan önce terminalin sunucuyla iletişim kurmak için zamanı yoktur.
hemen bağlanıyorum.

 
Konstantin Nikitin :

Pekala, burada seçenekler var. Sunucum bazen Pazar günleri bakım için kapanıyor ve daha sonra uzun sürmüyor. Bu, iletişim eksikliğinin nedenlerinden biri olabilir.
İkincisi, büyük olasılıkla, gösterge başlamadan önce terminalin sunucuyla iletişim kurmak için zamanı yoktur.
hemen bağlanıyorum.

Ördek sonra işi kolaylaştırın: şimdi göstergemi düzenlemelerinizle birlikte grafiğe yükleyin . Terminali kapatın. Pazartesi açın ve sonucu görün. Daha fazla tartışma işe yaramaz.