Hatalar, hatalar, sorular - sayfa 591

 
alexvd :

Gelelim servis masasına.

Nasıl kapatıldığını açıklar mısınız? Kaldırılan (durdurulan) hizmetler? Sorunlu aracıların günlüklerini ekleyin.

Günlüklerde bazı garip proxy ayarları . Aracı yapılandırmalarında proxy ayarlarını yaptınız mı? Lütfen temsilci yöneticinizin common.ini dosyasını uygulamaya ekleyin.

Dün için, günlüklere baktığım ortaya çıktı ...

Herşey yolunda.

 
TheXpert :

Sonraki kod:

Sorunlar:

2011.12.05 22:01:28 RectLabel (EURUSD,H1) konum = {12, 176314750}
2011.12.05 22:01:28 RectLabel (EURUSD,H1) diğer = {123, 456}

Yani, başlatma listesi çalışmadı, yapıda çöp var. Bu bir hata mı, değil mi?

Bu bir derleyici hatasıdır - böyle bir yapıyı başlatmanın (kopya oluşturucu olmadan) imkansız olduğuna dair bir hata vermedi. Düzeltildi. Mesaj için teşekkürler.
 
Deinitialization anlayamıyorum. "Uzman çiftten kaldırıldı ..." mesajı neden iki kez oluyor?
//+------------------------------------------------------------------+
//|                                                   testDeinit.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"



//+------------------------------------------------------------------+
class CTest_Expert
  {

public:
                     CTest_Expert();
                    ~CTest_Expert() { Deinit(); }
                   
   void              Processing();
   void              Deinit();
   bool              StartTimer(int nCounSeconds);
   void              StopTimer();
   string   Exp_Symbol;
  };

   CTest_Expert arSymbols[];

//+------------------------------------------------------------------+
//| Конструктор                                                      |
//+------------------------------------------------------------------+
CTest_Expert::CTest_Expert()
  {

  }
//+------------------------------------------------------------------+
//| Функция удаления динамических объектов                           |
//+------------------------------------------------------------------+
void CTest_Expert::Deinit()
  {
  
   Print("Эксперт выгружен с пары "+Exp_Symbol);
   Comment("");

  }
//+------------------------------------------------------------------+
//|Инициализация таймера                                             |
//+------------------------------------------------------------------+
bool CTest_Expert::StartTimer(int nCountSeconds)
  {
   return(EventSetTimer(nCountSeconds));
  }
//+------------------------------------------------------------------+
//|Уничтожение таймера                                               |
//+------------------------------------------------------------------+

void CTest_Expert::StopTimer()
  {
      EventKillTimer();
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ArrayResize(arSymbols, 5);
   arSymbols[0].Exp_Symbol="0";
   arSymbols[1].Exp_Symbol="1";
   arSymbols[2].Exp_Symbol="2";
   arSymbols[3].Exp_Symbol="3";
   arSymbols[4].Exp_Symbol="4";
  
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
      int nSize=ArraySize(arSymbols);
      Print("nSize = " + IntegerToString(nSize));
      for(int i=0;i<nSize;i++)
        {
         Print("-------"+IntegerToString(i)+"--------");
         arSymbols[i].Deinit();
         Print("---------------");
        }
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  
  }
//+------------------------------------------------------------------+

Sonuç

2011.12.06 16:59:52 testDeinit (EURUSD,M5) EA, çift 4'ten kaldırıldı
2011.12.06 16:59:52 testDeinit (EURUSD,M5) EA, çift 3'ten kaldırıldı
2011.12.06 16:59:52 testDeinit (EURUSD,M5) EA, çift 2'den kaldırıldı
2011.12.06 16:59:52 testDeinit (EURUSD,M5) Expert Advisor, çift 1'den yüklendi
2011.12.06 16:59:52 testDeinit (EURUSD,M5) Expert Advisor 0 çiftinden yüklendi
2011.12.06 16:59:52 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:52 testDeinit (EURUSD,M5) EA, çift 4'ten kaldırıldı
2011.12.06 16:59:52 testDeinit (EURUSD,M5) -------4--------
2011.12.06 16:59:52 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) EA, çift 3'ten kaldırıldı
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------3--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) Expert Advisor, çift 2'den yüklendi
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------2--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) Expert Advisor, çift 1'den yüklendi
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------1--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) EA, 0 çiftinden boşaltıldı
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------0--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) nSize = 5

 
Konstantin83 :
Deinitialization anlayamıyorum. "Uzman çiftten kaldırıldı ..." mesajı neden iki kez oluyor?
                    ~CTest_Expert() { Deinit(); }

   CTest_Expert arSymbols[];

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
      int nSize=ArraySize(arSymbols);
      Print("nSize = " + IntegerToString(nSize));
      for(int i=0;i<nSize;i++)
        {
         Print("-------"+IntegerToString(i)+"--------");
         arSymbols[i].Deinit();
         Print("---------------");
        }
  
  }

OnDeinit'ten ilk arama. Yıkıcıdan ikinci çağrı
 
mql5 :
Bu bir derleyici hatasıdır - böyle bir yapıyı başlatmanın (kopya oluşturucu olmadan) imkansız olduğuna dair bir hata vermedi. Düzeltildi. Mesaj için teşekkürler.

hayır. İşte bazı ek ayrıntılar.

Yardım, basit yapıların aşağıdaki gibi basit türlerin değişkenleri olarak kopyalanabileceğini söylüyor:

{
   Pos pos = { 100 , 100 };
   Pos pos1 = pos; // копи конструктор
   pos = pos1; // копи оператор
}

O zaman bu neden başlatma listesinde yapılamaz? Yukarıdaki başlatma yöntemini kaybetmemek için yapıcıları açıkça tanımlamak istemiyorum.

Prensip olarak, kritik değil, sadece son yorumu duymak istiyorum.

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

12 pencere açıkken terminali başlatıyorum, 325 MB RAM yiyor.

Çoklu para birimi Uzman Danışmanı başlatıyorum, terminal 990 MB RAM tüketiyor. EA, son 48 saat için 5 dakikalık çubuklara bakar + "fraktal" göstergesini kullanır. Yalnızca bir sembolü takas etmek için koşarsanız, 400 MB alır. 12 karakter üzerinde çalışırken bu bellek tüketimi normal mi?

 
Konstantin83 :
Çoklu para birimi Uzman Danışmanı başlatıyorum, terminal 990 MB RAM tüketiyor. EA, son 48 saat için 5 dakikalık çubuklara bakar + "fraktal" göstergesini kullanır. Yalnızca bir sembolü takas etmek için koşarsanız, 400 MB alır. 12 karakter üzerinde çalışırken bu bellek tüketimi normal mi?
Yalın Göstergenin Yeniden Hesaplanması için İlkeler makalesine bakın
 
Fraktalı belirtmeyi unuttum - bu standart bir göstergedir + tüm hesaplamalar her beş dakikada bir yapılır
 
Konstantin83 :
Fraktalı belirtmeyi unuttum - bu standart bir göstergedir + tüm hesaplamalar her beş dakikada bir yapılır

en azından belgelenmiş bir tsifir gösterirsin. geliştiriciler neyi ve nasıl kendi başınıza yaptığınızı nasıl bilirler.
kodunuzdan sorunun özünü doğru bir şekilde formüle etmeye ve vurgulamaya çalışın. tüketim hacminin hangi koşullarda artmaya, derginin çıktısını almaya ve göstermeye başlar.
vobschem en azından sorunun teknik bir açıklaması olarak.

 
sergeev :

en azından belgelenmiş bir tsifir gösterirsin. geliştiriciler neyi ve nasıl kendi başınıza yaptığınızı nasıl bilirler.
kodunuzdan sorunun özünü doğru bir şekilde formüle etmeye ve vurgulamaya çalışın. tüketim hacminin hangi koşullarda artmaya, derginin çıktısını almaya ve göstermeye başlar.
vobschem en azından sorunun teknik bir açıklaması olarak.

Önceden, muhtemelen çok fazla olmadığı için işgal edilen bellek miktarına dikkat etmedim. Dün ve bugün sistemin yavaşladığını fark ettim, görev yöneticisini açtım ve orada terminal 900 MB yedi. izlemeye başladı. Başlangıçta 12 pencere açık - 325 MB, uzman penceresini bekliyorum - 990 MB, bu yüzden uzmanın yemek yediğini düşündüm. Ayarlarda "grafikler - penceredeki maksimum çubuklar" sınırsızdı. 50.000 olarak değiştirilen terminal, 110 ağırlığında başlatıldı , yine sınırsız olarak değiştirildi. Şimdi, Expert Advisor çalışırken, 208 MB yani. iyi.