Hatalar, hatalar, sorular - sayfa 1028

 
tol64 :

O zaman a) neden nesne için çalışıyor b) değiştirilirse parçalanmaya başlarlar

'0x00000008' - can't convert enum

ve hepsi değil, 21 satırdan sadece 18'i...

Her şeyi yeniden yazmaya çalışacağım, hala net değil. Beğendiğinizi yazın.

 
Silent :

O zaman a) neden nesne için çalışıyor b) değiştirilirse parçalanmaya başlarlar

ve hepsi değil, 21 satırdan sadece 18'i...

Her şeyi yeniden yazmaya çalışacağım, hala net değil. Beğendiğinizi yazın.

 ENUM_TIMEFRAMES current_period_tf= PERIOD_CURRENT ;
   string n="";
   if ( _Period == PERIOD_M1 )  {current_period_tf= PERIOD_M1 ;};
   if ( _Period == PERIOD_M2 )  {current_period_tf= PERIOD_M2 ;};
   if ( _Period == PERIOD_M3 )  {current_period_tf= PERIOD_M3 ;};
   if ( _Period == PERIOD_M4 )  {current_period_tf= PERIOD_M4 ;};
   if ( _Period == PERIOD_M5 )  {current_period_tf= PERIOD_M5 ;};
   if ( _Period == PERIOD_M6 )  {current_period_tf= PERIOD_M6 ;};
   if ( _Period == PERIOD_M10 ) {current_period_tf= PERIOD_M10 ;};
   if ( _Period == PERIOD_M12 ) {current_period_tf= PERIOD_M12 ;};
   if ( _Period == PERIOD_M15 ) {current_period_tf= PERIOD_M15 ;};
   if ( _Period == PERIOD_M20 ) {current_period_tf= PERIOD_M20 ;};
   if ( _Period == PERIOD_M30 ) {current_period_tf= PERIOD_M30 ;};
   if ( _Period == PERIOD_H1 )  {current_period_tf= PERIOD_H1 ;};
   if ( _Period == PERIOD_H2 )  {current_period_tf= PERIOD_H2 ;};
   if ( _Period == PERIOD_H3 )  {current_period_tf= PERIOD_H3 ;};
   if ( _Period == PERIOD_H4 )  {current_period_tf= PERIOD_H4 ;};
   if ( _Period == PERIOD_H6 )  {current_period_tf= PERIOD_H6 ;};
   if ( _Period == PERIOD_H8 )  {current_period_tf= PERIOD_H8 ;};
   if ( _Period == PERIOD_H12 ) {current_period_tf= PERIOD_H12 ;};
   if ( _Period == PERIOD_D1 )  {current_period_tf= PERIOD_D1 ;};
   if ( _Period == PERIOD_W1 )  {current_period_tf= PERIOD_D1 ;};
   if ( _Period == PERIOD_MN1 ) {current_period_tf= PERIOD_MN1 ;};
   ChartSetSymbolPeriod ( ChartID (), _Symbol , PERIOD_M1 );
   ObjectSetInteger ( 0 ,n, OBJPROP_TIMEFRAMES ,current_period_tf);
   ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);
 
tol64 :
Evet, yaptım, teşekkürler, tıklıyorum).
 
Silent :
Evet, yaptım, teşekkürler, tıklıyorum).

Şimdi şunu deneyin:

   string n= "" ;
   ENUM_TIMEFRAMES current_period_tf= _Period ;
   ChartSetSymbolPeriod ( ChartID (), _Symbol , PERIOD_M1 );
   ObjectSetInteger ( 0 ,n, OBJPROP_TIMEFRAMES ,current_period_tf);
   ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);

 
MetaDriver :

Şimdi şunu deneyin:

Denedim, M1'den otomatik olarak dönemem. yukarıdaki gibi sıralarsam

 if ( _Period == PERIOD_M1 )  {current_period_tf= PERIOD_M1 ;};

her seferinde dönüyorum ama hemen _Period atarsam, M1'e düştüğüm için orada kaldım.

upd, göstergenin sonunu bile kaydetmez

     if ( _Period == PERIOD_M1 ) { ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);};

xs neden üzerine yazıyor, şimdilik anlıyorum.

 

Bu, senkronizasyon yerine bir koltuk değneğidir (hafta sonu, kene olmadığında). Fikir bir tank gibidir - bir hata var - geçiş. M1'e ve geri.

   if ( _LastError != 0 )
     {
       ChartSetSymbolPeriod ( ChartID (), _Symbol , PERIOD_M1 );
       ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);
     };
   if ( _LastError == 0 )
     {
       ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);
     };
// и контрольный
   if ( _Period == PERIOD_M1 ) { ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);};
sadece M1'den her zaman serbest bırakılmaz.
 
Silent :

Denedim, M1'den otomatik olarak dönemem. yukarıdaki gibi sıralarsam

her seferinde dönüyorum ama hemen _Period atarsam, M1'e düştüğüm için orada kaldım.

Davanız küçük bir kayma ile tedavi ediliyor.

   string n= "" ;
   ENUM_TIMEFRAMES current_period_tf= _Period ;
   ChartSetSymbolPeriod ( ChartID (), _Symbol , PERIOD_M1 );
   Sleep ( 150 );
   ObjectSetInteger ( 0 ,n, OBJPROP_TIMEFRAMES ,current_period_tf);
   ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);

Ben daha kötüyüm. (Bu arada, Slip'siz davanız işe yaramadan önce, birkaç hafta önce durdu)

Aynı şema, diğer (geçersiz) çizelgelerde korkunç kaymalar olmadan çalışmayı durdurdu:

 void cChartReInit::Run() // Scanning all charts and reinit if button is pushed
  {
   for ( long i= ChartNext ( 0 );i> 0 ;i= ChartNext (i))
    {
     if (! ChartGetInteger (i, CHART_WINDOW_IS_VISIBLE )) continue ;
     long wc = ChartGetInteger (i, CHART_WINDOWS_TOTAL );
     long wi = ObjectFind (i, pButtonName);
     if (--wc!=wi) { CreateReinitButton(i); ChartRedraw (i); continue ;}
     if ( ObjectGetInteger (i,pButtonName, OBJPROP_STATE ))
       {
         ObjectSetInteger (i,pButtonName, OBJPROP_STATE , false );
         ENUM_TIMEFRAMES cp = ChartPeriod (i);
         Sleep ( 1350 );  // раньше это было не нужно
         ChartSetSymbolPeriod (i, ChartSymbol (i), ((cp== PERIOD_M1 ) ? PERIOD_M5 : PERIOD_M1 ));
         Sleep ( 1350 );  // раньше это было не нужно
        ChartSetSymbolPeriod (i, ChartSymbol (i), cp);
       }
     ChartRedraw (i);
    } // for(Charts)
  }
Buradan kod: https://www.mql5.com/en/code/224
ChartReinit
ChartReinit
  • oylar: 7
  • 2010.11.29
  • Vladimir Gomonov
  • www.mql5.com
Кнопочная переинициализация чарта с перерасчетом всех индикаторов, а также простенький и прозрачный объектно-ориентированный пример обработки всех чартов из одного эксперта.
 
MetaDriver :

Davanız küçük bir kayma ile tedavi ediliyor.

Ben daha kötüyüm. (Bu arada, Slip'siz davanız işe yaramadan önce, birkaç hafta önce durdu)

Ancak aynı şema, diğer (mevcut olmayan) çizelgelerde korkunç kaymalar olmadan çalışmayı durdurdu:

Buradan kod: https://www.mql5.com/ru/code/224/10323

Göstergelerde kayma çalışmıyor, değil mi?

404. sayfaya bağlantı atar

 
Silent :

Göstergelerde kayma çalışmıyor, değil mi?

404. sayfaya bağlantı atar

Mdya. :(

Bazı iplik maliyetli döngüleri deneyin ..

Bunu bir zamanlayıcı aracılığıyla yapabilirsiniz, ancak bu FSE'yi sevmiyorum.

// Bağlantı düzeltildi. İlk kez "kodlarım" üzerinden aldım, şimdi kod tabanına genel giriş yoluyla. // Şu anda çalışıyor mu? Yoksa herkese açık bir bağlantı almak için oturumu kapatmam mı gerekiyor?

 
MetaDriver :

Mdya. :(

Bazı iplik maliyetli döngüleri deneyin ..

Bunu bir zamanlayıcı aracılığıyla yapabilirsiniz, ancak bu FSE'yi sevmiyorum.

OnTimer'ı başka bir TF'ye geçmek yerine ChartRedraw ile tutturmaya çalıştım - boğuk, güncellemeler, ancak hata kilitleniyor.

Biraz daha sigara içeceğim.

upd, bunların hepsinin akışlarla bağlantılı olduğuna dair bir şüphe var. Birbirlerine uymadıkları bir yerde biri hata veriyor, diğeri kendi kendine tıklıyor. Ancak senkronize değil. Ve tam bir yeniden hesaplama için bir komut yoktur.

Daha fazlasını denedim

 #define   RESET 0

   if ( _LastError != 0 )
     {
     return (RESET);
     };
hiç çalışmıyor gibi görünüyor. Kod tabanında almama rağmen.