Hatalar, hatalar, sorular - sayfa 1700

 
fxsaber :

Bu fikir üzerine, kaldırılamaz bir gösterge elde edildi.

"Kendisine" olan bağlantının organizasyonu hakkında mı? Yani “çıkmadı”, ancak göstergeyi çok egzotik bir şekilde kendiniz yazdınız.

Göstergenin bu davranışıyla kafanız karıştıysa, yapmayın.

Ve nereye ekleneceği ve en azından teorik olarak nasıl yardımcı olabileceği. Bu bir terminal hatasıdır. Ve ciddi bir böcek. Çünkü şanslıydım - günlükte göstergenin çalıştığını görüyorum. Ve günlüklere çıktısı olmayan bu tür kaç gösterge terminalde sürülür ve onlar hakkında hiçbir şey bilmiyorsunuz. Ancak konular gündeme getirildi, ancak CPU'm neden boş bir terminale bu kadar yüklendi?

"Kendini ayağından vurmanın" birkaç yolu var. Gösterge basitçe çevrilebilir. Ve bunu kazara yapmak, tasarımınızı yanlışlıkla yazmaktan çok daha kolaydır. Bu aynı zamanda bir "terminal hatası" mı?

 
Anton :

"Kendisine" olan bağlantının organizasyonu hakkında mı? Yani “işe yaramadı”, ancak göstergeyi çok egzotik bir şekilde kendiniz yazdınız.

Göstergenin bu davranışıyla kafanız karıştıysa, yapmayın.

"Kendini ayağından vurmanın" birkaç yolu var. Gösterge basitçe çevrilebilir. Ve bunu kazara yapmak, tasarımınızı yanlışlıkla yazmaktan çok daha kolaydır. Bu aynı zamanda bir "terminal hatası" mı?

Bir terminal hatası, kullanıcının tamamen boş (açık çizelgeler olmadan) bir terminalde bilgisi olmadan ağır bir göstergenin kaldırılamamasıdır. Ve sonra sorular, terminaliniz CPU'yu neden birdenbire yüklüyor? Bu bir hata! Dahili görev yöneticisi yok, kontrol yok.
 
Anton :

"Kendisine" olan bağlantının organizasyonu hakkında mı? Yani “çıkmadı”, ancak göstergeyi çok egzotik bir şekilde kendiniz yazdınız.

Bu egzotik değil, göstergede kendini tanımlama girişimi. Daha medeni bir şekilde yapmaya çalıştım, hüsran çıktı
 #property indicator_separate_window
#property indicator_buffers 0
#property indicator_plots    0

bool WhereIAm( long &Chart_ID, int &Sub_Window )
{
   const string PrevShortName = MQLInfoString ( MQL_PROGRAM_NAME );  
  
   MathSrand (( int ) TimeCurrent ());
   const string ShortName = ( string ) MathRand ();
    
   IndicatorSetString ( INDICATOR_SHORTNAME , ShortName);    
  
  Chart_ID = ChartFirst ();

   Print (Chart_ID);
  
   while (Chart_ID > 0 )
  {
     const int Total = ( int ) ChartGetInteger (Chart_ID, CHART_WINDOWS_TOTAL );
    
     for (Sub_Window = 0 ; Sub_Window < Total; Sub_Window++)
    {
       const int TotalIndicators = ChartIndicatorsTotal (Chart_ID, Sub_Window);
      
       for ( int i = 0 ; i < TotalIndicators; i++)
         if (ShortName == ChartIndicatorName (Chart_ID, Sub_Window, i))
        {
           IndicatorSetString ( INDICATOR_SHORTNAME , PrevShortName);
          
           return ( true );
        }
    }
    
    Chart_ID = ChartNext (Chart_ID);
  }

   IndicatorSetString ( INDICATOR_SHORTNAME , PrevShortName);
  
   return ( false );
}


#define TOSTRING(A) #A + " = " + ( string )A + " "

void OnInit ( void )
{
   long Chart_ID;
   int Sub_Window;
  
   if (WhereIAm(Chart_ID, Sub_Window))
     Print (TOSTRING(Chart_ID) + TOSTRING(Sub_Window));
    
   return ;
}
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[] )
{
   return (rates_total);
}
İşte püf noktaları, çünkü Servis Masasında, en hafif tabirle, yanlış yönlendirildiler .
 
fxsaber :
Uzun zamandır MQL5'te yazmıyorum, hiç programcı olmadım. MQL4'ü biliyordum, şimdi biraz MQL5 biliyorum. Neden neredeyse her gün MT5 hatalarıyla karşılaşıyorum? Aslında, sokaktaki bir adam neredeyse her gün tesadüfen böcek bulur! Bu nedir, neden bu kadar nemli? deneyenler yok mu MT can sıkıcı olmaya başladı derken yalan söylemiyorum. Ve daha da sinir bozucu, başka bir şey üzerinde nasıl program yapacağımı bilmediğimin farkına varmak.

Aslında? İnanması zor :)

Denemek

 
pako :

Aslında? İnanması zor :)

Denemek

Ticaret için sadece ihtiyacım var. Bir terminal, bir test cihazı vb. oluşturursam herhangi bir vızıltı almayacağım. Hayatım yüzlerce yılla ölçülmez.
 
fxsaber :
Bu egzotik değil, göstergede kendini tanımlama girişimi. Daha medeni bir şekilde yapmaya çalıştım, ama bir serseri olduğu ortaya çıktı.

2. noktaya dikkat edin:

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Servis masasındaki cevap pahasına - tüm insanlar bazen yanılıyor.

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
Операции с графиками / ChartWindowFind - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber :
Ticaret için sadece ihtiyacım var. Bir terminal, bir test cihazı vb. oluşturursam herhangi bir vızıltı almayacağım. Hayatım yüzlerce yılla ölçülmez.
mt'den tarihleri aldık, dll'de işledik
 
pako :
mt'den tarihleri aldık, dll'de işledik
Dil ile ilgili herhangi bir sorun, görselleştirme (göstergeler) ve tarih (kopya işaretleri) ile ilgili sorunlar yoktur. DLL'de yazmak - boğulmak içindir.
 
Anton :

2. noktaya dikkat edin:

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Servis masasındaki cevap pahasına - tüm insanlar bazen yanılıyor.

Teşekkürler, ShortName belirsizliği ile ilgili sorunu çözmeye devam ediyor.
 
fxsaber :
Dil ile ilgili herhangi bir sorun, görselleştirme (göstergeler) ve tarih (kopya işaretleri) ile ilgili sorunlar yoktur. DLL'de yazmak - boğulmak içindir.
Tiki'de balık var mı?