MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1007

 
Alexey Viktorov :

Zaman eksi zaman bölü PeriodSeconds()

bu cuma-pazartesi geçişinde yanlış uzunluk olabilir (veya tarihte eksik çubuklar varsa)

zaman noktalarını okumak ve ardından çubukları belirlemek daha iyidir

 datetime time1=( datetime ) ObjectGetInteger (ExtChartID,name, OBJPROP_TIME , 0 );
datetime time2=( datetime ) ObjectGetInteger (ExtChartID,name, OBJPROP_TIME , 1 );

int bar1= iBarShift ( _Symbol , _Period ,time1);
int bar2= iBarShift ( _Symbol , _Period ,time2);
 
Taras Slobodyanik :

bu cuma-pazartesi geçişinde yanlış uzunluk olabilir (veya tarihte eksik çubuklar varsa)

zaman noktalarını okumak ve ardından çubukları belirlemek daha iyidir

Kabul ediyorum. Kendinizi ve beyninizi rahatsız etmeyin. O zaman tarihler arasındaki çubuk sayısını almak daha iyidir.

 int    Bars ( 
   string            symbol_name,     // имя символа 
   ENUM_TIMEFRAMES   timeframe,       // период 
   datetime          start_time,       // с какой даты 
   datetime          stop_time         // по какую дату 
   );
 
int start()
{
  if(Check()==false)
      return;  
      
  int TotalOrders;
  double NewPrice, NewLots, NewTP, NewSL;
  /*****************************************************************************/
  /* Здесь часть кода, которая работает при каждом новом тике                  */ 
  /*****************************************************************************/
  TotalOrders = CountOfOrders(); 
     double sprd = Ask-Bid;
     int tot = CountOfOrders2();
     double spred = spred/Point*(tot-1);

  if(tot > 1)PercCloseDown();


bu kısımda hata var



Bana bir robotu nasıl başlatacağımı söyle


 
Ivan Butko :

bu kısımda hata var

Bana bir robotu nasıl başlatacağımı söyle

Burada değişken bildirilir ve hemen bölünür:

 double spred = spred/ Point *(tot- 1 ); 

Yanlışlıkla derleyicinin bu değişkeni (spred) bildirilmemiş olarak algıladığı görülmektedir. Bu da en azından iyi değil, çünkü (değişken) başlatılmamış - global bir değişken olmadığı için orada tanımsız bir değer olabilir ...

Daha önce ilan etmeye çalışın ve ona bir değer verin
 
Yevhenii Levchenko :

Burada değişken bildirilir ve hemen bölünür:

Yanlışlıkla derleyicinin bu değişkeni (spred) bildirilmemiş olarak algıladığı görülmektedir. Bu da en azından iyi değil, çünkü (değişken) başlatılmamış - global bir değişken olmadığı için orada tanımsız bir değer olabilir ...

Daha önce ilan etmeye çalışın ve ona bir değer verin

Eugene, yürekten!
Ateşlendi, teşekkürler

 

MQL5'te ise ne yapmalı ...

 if ( BarsCalculated (handle) == - 1 )

... zaten bölgede bir dakika geçti ve sorun aynı. Neden bu kadar uzun?


Hata 4806 - İstenen veri bulunamadı ... - danışmanın onu bulmasını nasıl sağlayabilirim?

 
Ivan Butko :
int start()
{
  if(Check()==false)
      return;  
      
  int TotalOrders;
  double NewPrice, NewLots, NewTP, NewSL;
  /*****************************************************************************/
  /* Здесь часть кода, которая работает при каждом новом тике                  */ 
  /*****************************************************************************/
  TotalOrders = CountOfOrders(); 
     double sprd = Ask-Bid;
     int tot = CountOfOrders2();
     double spred = spred/Point*(tot-1);

  if(tot > 1)PercCloseDown();


bu kısımda hata var



Bana bir robotu nasıl başlatacağımı söyle


61. satır, bu hangi satır?
 

Yetersiz bellek hatası nasıl yakalanır?


Neden böyle bir mesaj var?


Yaklaşık 20 bin satırlık bir program yazdı . Birçok farklı sınıf, dizi, yapı.

Yaklaşık iki üç günde bir süre, mesaj hafızadan silinir.

Belleğin hangi işlevde sızdırdığını nasıl yakalayacağımı bilmiyorum.

 
Sergey Likho :

Yetersiz bellek hatası nasıl yakalanır?


Neden böyle bir mesaj var?


Yaklaşık 20 bin satırlık bir program yazdı . Birçok farklı sınıf, dizi, yapı.

Yaklaşık iki üç günde bir süre, mesaj hafızadan silinir.

Belleğin hangi işlevde sızdırdığını nasıl yakalayacağımı bilmiyorum.

dikkatlice bakın, böylece her yeni karşılık gelmelidir. senin silmen

yani, yalnızca kodu dikkatlice okuyarak. Okumayı daha kolay ve eğlenceli hale getirmek için aynı anda yorum yapın :-)

Ayrıca, her sınıf için test senaryosu komut dosyaları yazmak ve bu şekilde sınıfların içindeki sızıntıları kontrol etmek de iyi bir fikirdir.

 
Maxim Kuznetsov :

dikkatlice bakın, böylece her yeni karşılık gelmelidir. senin silmen

yani, yalnızca kodu dikkatlice okuyarak. Okumayı daha kolay ve eğlenceli hale getirmek için aynı anda yorum yapın :-)

Ayrıca, her sınıf için test senaryosu komut dosyaları yazmak ve bu şekilde sınıfların içindeki sızıntıları kontrol etmek de iyi bir fikirdir.

Yeni, sil kullanmayın. Sınıf öğeleri en baştan bildirilir ve onları yeniden oluşturmuyorum.

Temel olarak dizilerle çok fazla çalışma.


Test senaryosu komut dosyaları nelerdir?