Hatalar, hatalar, sorular - sayfa 2793

 
Alexey Viktorov :

Orada bir gif olduğunu bile fark etmedim ... Şimdi baktım ama orada her şey çok hızlı, anlayacak zamanım yok. Az önce, geçmişte ayrı olarak kabul edilen "Takas" sütununun görüntülenmediğini fark ettim. Veya kelimelerle sayılarla açıklayın.

Devre dışı bırakılmış takas sütununu kendim fark etmediğime şaşırdım.

Teşekkürler, sorun çözüldü.

 
Andrey Khatimlianskii :

Devre dışı bırakılmış takas sütununu kendim fark etmediğime şaşırdım.

Teşekkürler, sorun çözüldü.

Yaşasın kazandık.

 
ChartSetSymbolPeriod kullanırken, OnDeinit işlevi 1 döndürür Program grafikten kaldırıldı ve mantıksal olarak 3 Symbol veya   grafik dönemi   değiştirildi
 

Hata, if (...) koşulu karşılanırsa, döngüyü hiçbir şeyin kesmemesidir.

 if ( (vm + vs * ( double )i) * tvp * 250.0 < ml ) { cv = vm + vs * ( double )i; Print (i, ": L/ML - " ,cv, " / " ,ml); };


İşte bir video



Ve işte betiğin tam kodu

 void OnStart ()
  {
//---
   
   double tvp  = SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE_LOSS ),
          vm   = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ),
          vs   = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP ),
          ml   = AccountInfoDouble ( ACCOUNT_EQUITY ) * 0.015 ,
          cv   = - 1.0 ,
          loss = 0.0 ;
   
   for ( int i = 0 ; i < 20000 ; i++)
     {
       Print (i);
       //if( (vm + vs * (double)i) * tvp * 250.0 < ml ) { cv = vm + vs * (double)i; Print(i,": L/ML - ",cv," / ",ml); };
       /*loss = cv * tvp * 250.0;
      Print(NormalizeDouble(loss,2));
      Print(NormalizeDouble(ml,2)); Print(" ");
     */ };
   
  }
 
Alexandr Sokolov :

Hata, if (...) koşulu karşılanırsa, döngüyü hiçbir şeyin kesmemesidir.

Kodunuz buna benzer

 double a = 3 ;

for ( int i = 0 ; a > 300 ; i++)
{
 if (a != 3 )
   Print ( "Никогда такого не будет" );
}
 

Nedense, göstergem grafik nesneleri kaybetmeye başladı ve onları silmiyor. Sınıf yıkıcıda otomatik silme kullanıyorum. Ararım:

 ObjectDelete (chartID, name);

Sonuç olarak, yanlış alıyorum. GetLastError()'u çağırıyorum ve 4101 hatası alıyorum ("Yanlış grafik kimliği "). Diyelim ki... Kaldırılan grafik nesnesinin chartID'sini ChartID() işlevinin sonucuyla karşılaştırıyorum ve bunlar tamamen aynı. Nesnenin grafikten silinmemesinin nedeni ne olabilir ve nasıl atlanabilir?

 
Mihail Matkovskij :

Nedense, göstergem grafik nesneleri kaybetmeye başladı ve onları silmiyor. Sınıf yıkıcıda otomatik silme kullanıyorum. Ararım:

Sonuç olarak, yanlış alıyorum. GetLastError()'u çağırıyorum ve 4101 hatası alıyorum ("Yanlış grafik kimliği "). Diyelim ki... Kaldırılan grafik nesnesinin chartID'sini ChartID() işlevinin sonucuyla karşılaştırıyorum ve bunlar tamamen aynı. Nesnenin grafikten silinmemesinin nedeni ne olabilir ve nasıl atlanabilir?

benzer sorunlar birikiyor https://www.mql5.com/en/forum/1111/page2785#comment_17002122

Belki yaratıcılar bir şeyler yapar)

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2020.06.22
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

burada herhangi bir geri bildirim olmaması, olduğu gibi, konunun yalnızca olumsuzluğu başka bir hoş olmayan bulgudan atmak için gerekli olduğunu söylüyor)


 #include <Arrays\ArrayObj.mqh>

class CPosition: public CObject
{
   public :
       string       meTicket;
      CPosition::CPosition( string inT)
      { this .meTicket = inT;}         
};

class CColl: public CArrayObj
{
public :
   string    meWrongProperty;
CPosition  * operator []( const int index) const { return (CPosition*)At(index);} 
};

class CCollOfColl: public CArrayObj
{
public :
CColl  * operator []( const int index) const { return (CColl*)At(index);} 
};



void OnStart ()
{
   CCollOfColl lCOC;
   CColl       *lC;
   
   lC = new CColl();
   lC.Add( new CPosition( "00" ));
   lC.Add( new CPosition( "01" ));
   lCOC.Add(lC);
   
   lC = new CColl();
   lC.Add( new CPosition( "10" ));
   lC.Add( new CPosition( "11" ));
   
   lCOC.Add(lC);
   
   for ( int i= 0 ;i<lCOC.Total();i++)
     {
       for ( int j= 0 ;j<lCOC[i].Total();j++)
         {
           printf (lCOC[i][j].meTicket);
          lCOC[i][j].me
         }
     }
}


bence editör meWrongProperty yerine meTicket'i önermeliydi)

 

2530 inşa

Üçüncü yapı yuvalamasında hiçbir zeka görünmez.

 //+------------------------------------------------------------------+
//|                                                   TestStruct.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

//----------------------------------------------------
struct STRUCT_TIME_IN_FORCE
{
   string GTC; 
   string IOC;  
   string FOK; 
}; 
//----------------------------------------------------
struct STRUCT_SYMBOLS  
{
   string                symbol;                
   STRUCT_TIME_IN_FORCE timeInForce;            
};

//----------------------------------------------------
struct STRUCT_EXCH_INFO  
{
   string          timeZone;      
   long            serverTime;     
   STRUCT_SYMBOLS symbols[];  
};


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
{
   STRUCT_EXCH_INFO Info;
   ArrayResize (Info.symbols, 10 );
   
   Info.symbols[ 0 ].timeInForce. //??? На третьем вложении не появляется интеллесенс

}
//+------------------------------------------------------------------+
 
Dmytryi Voitukhov :

Danışmanın pazarını kontrol ederken, partinin hesaplanmasında hatalar vardı.

Test cihazında hata yok.

Kod daha kolay olamazdı. Nasıl yanlış olabilir?

Bir ticaret robotunun Market'te yayınlanmadan önce hangi kontrollerden geçmesi gerektiği makalesini okuyun

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку, так как небольшая ошибка в логике советника или индикатора может привести к убыткам на торговом счете. Именно поэтому нами разработана серия базовых проверок, призванных обеспечить необходимый уровень качества продуктов Маркета. Если в процессе проверки...