Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1473

 
Alexander Sevastyanov #:

Bu durumda herhangi bir tutarın iade edilme şansının neredeyse sıfır olduğuna inanıyorum.
Buradaki herkes zaten çok doğru cevap verdi.

Ama yine de denemekte fayda var.

Alexander, yardımın için teşekkür ederim. Programlama ve ticarette size başarılar. Her şey gönlünüzce olsun.
 
Valeriy Yastremskiy #:

Paranızla bir şey yapmadan önce, en azından asgari düzeyde bir kontrol yapın.

Aynı şekilde.

Umarım kredi değildir. Kesinlikle polise git.

Pratik tavsiye ve yardımlarınız için hepinize teşekkür ederim. Moderatörler lütfen forum kurallarını ihlal ettiğim için beni affedin. Foruma yeni katıldım ve brokerlar hakkında tartışmanın yasak olduğunu bilmiyordum. Kuralları dikkatlice okuyacağım ve ihlal etmeyeceğimi taahhüt edeceğim. Çağrıma yanıt veren herkese bir kez daha teşekkür ederim ve iyi şanslar.
 

Yorumun bir benzerini yapmaya çalıştım, ancak harfler daha büyüktü.

Genel olarak işe yaradı, harfler artık okunabilir.

Ancak OOP konusundaki bilgisizliğim nedeniyle, yorumum bilgisayarın çalışmasını çok iyi etkilemiyor,

Uzman Danışmanı birkaç grafik üzerinde bir yorumla çalıştırdıktan bir süre sonra, ekranın solmasına ve sunucunun yeniden başlatılmasına kadar kötü bir şey olur)))))

Terminalde bu kayıtların bir demetini günlüğe kaydeder.

MQL5  VirtualAlloc failed in large allocator, size=101104
MemoryException 101142 bytes not available, 0 heapmin result

Nasıl yapılacağını bilenlere yardım edin, böylece bellek sızmaz.

Eklenti yorum dosyası şöyle görünür:

#include <Canvas\Canvas.mqh>
void Comm(string txt, color clr = clrYellow, int FontSize = 20, string Font = "Consolas", int flag = FW_BOLD)
  {
   CCanvas canvas;

   int shift = 0;
   if(ChartGetInteger(0, CHART_SHOW_ONE_CLICK))
      shift = 60;
   canvas.Erase(0x00FFFFFF);
   canvas.FontNameSet(Font);
   canvas.FontFlagsSet(flag);
   canvas.FontSizeSet(FontSize);

   int width = 0, height = 0;
   string result[];
   int size = StringSplit(txt, StringGetCharacter("\n", 0), result);
   height = (int)(FontSize * 1.8 * size);

   for(int i = 0; i < size; i++)
     {
      int w = canvas.TextWidth(result[i]);
      if(width < w)
         width = w;
     }

   canvas.CreateBitmapLabel(0, 0, "Comment", 5, 20 + shift, width, height, COLOR_FORMAT_ARGB_NORMALIZE);
   for(int i = 0; i < size; i++)
      canvas.TextOut(0, (int)(FontSize * 0.8 * i), result[i], ColorToARGB(clr, 255));

   canvas.Update(true);
  }

Bu şekilde kullanım örneği:

#include <Comm.mqh>
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol, tick);
   if(tick.ask != 0 && tick.bid != 0)
      Comm(StringFormat("ask = %.5f\nbid = %.5f\ntime = %s", tick.ask, tick.bid, TimeToString(tick.time, TIME_DATE | TIME_SECONDS)));
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(0, "Comment");
   ChartRedraw();
  }
//+------------------------------------------------------------------+


CCanvas sınıfı ile yanlış bir şey yaptığım açık, ancak tam olarak neyin yanlış olduğunu anlamıyorum.

Dosyalar:
Comm.mq5  2 kb
Comm.mqh  2 kb
 
Aleksandr Slavskii #:

Yorumun bir benzerini yapmaya çalıştım ama harfler daha büyüktü.

Harfler artık okunabilir durumda.

Ancak OOP bilmediğim için yorumum bilgisayarın çalışmasını çok iyi etkilemiyor,

Uzman Danışmanı birkaç grafik üzerinde bir yorumla çalıştırdıktan bir süre sonra, ekranın solmasına ve sunucunun yeniden başlatılmasına kadar kötü bir şey olur))))))

Terminal günlüklerinde bu kayıtlardan bir demet var.

Nasıl yapılacağını bilenlere yardım edin, böylece bellek sızıntı yapmaz.

Ekteki yorum dosyası şu şekildedir:

Bunun gibi örnek kullanım:


CCanvas sınıfında bir şeyleri yanlış yaptığım açık, ancak tam olarak neyin yanlış olduğunu anlamıyorum.

CCanvas kütüphanesi olmadan, ancak OBJ_BITMAP_LABEL nesnesi ile kodla ilgileniyorsanız, koduma bakın ...

ClosingLots
ClosingLots
  • www.mql5.com
Индикатор информер.
 
Alexey Viktorov #:

CCanvas kütüphanesi olmadan ancak OBJ_BITMAP_LABEL nesnesi ile kodla ilgileniyorsanız koduma bakın ...

Teşekkürler, güzel çözüm, beğendim.


Ancak, "bir samurayın hedefi yoktur , sadece bir yolu vardır", bir yorumun nasıl yapılacağının çözümü benim için sınıfı kullanırken yaptığım hatanın ne olduğunu bulmaktan daha az önemli.

 
Aleksandr Slavskii #:

Teşekkür ederim, güzel çözüm, beğendim.


Ancak, "bir samurayın hedefi yoktur , sadece yolu vardır", nasıl yorum yapacağımı bulmaktan ziyade sınıfı kullanırken yaptığım hatanın ne olduğunu bulmayı önemsiyorum.

Kaç tane, kaç tane BitmapLabel oluşturuldu? (Ctrl+B --> Tümü).

 
Artyom Trishkin #:

Bir BitmapLabel kaç tane, ne miktarda oluşturulur? (Ctrl+B --> Tümü).

Tek bir grafikte, tek bir nesne.

Ve nasıl birden fazla olabilir? Oluşturulan tüm nesnelerin adı aynıdır - "Yorum".


Yazmayı unuttum.

Sorun, tek çekirdekli ve 1 gb belleğe sahip süper zayıf bir sunucuda ortaya çıkıyor. Ve sonra hemen değil, bir süre sonra.

Ancak kodda her şey normal olsaydı, sorun olmazdı diye düşünüyorum. Bir şey RAM'i tıkıyor, ne olduğunu anlayamıyorum.

Bunu bilmekbenim için neden önemli ?

Sunucu kapasitesi satın alabilirsiniz, bellek satın alabilirsiniz, sonsuza kadar yükseltebilirsiniz, ancak bu benim kodumu doğru yapmaz.

 
Aleksandr Slavskii #:

Tek bir çizelgede, tek bir nesne.

Nasıl birden fazla olabilir? Oluşturulan tüm nesnelerin adı aynıdır - "Yorum".


Yazmayı unuttum.

Sorun, tek çekirdekli ve 1 gb belleğe sahip süper zayıf bir sunucuda ortaya çıkıyor. Ve hemen değil, bir süre sonra.

Ancak kodla ilgili her şey normal olsaydı, sorun olmazdı diye düşünüyorum. Bir şey RAM'i tıkıyor, ne olduğunu anlayamıyorum.

Bunu anlamak benim için neden önemli ?

Daha fazla sunucu kapasitesi satın alabilirsiniz, daha fazla bellek satın alabilirsiniz, sonsuza kadar yükseltme yapabilirsiniz, ancak bu benim kodumu doğru yapmayacaktır.

Bir Uzman Danışman grafikten kaldırıldığında günlükte ne var? Genellikle size hangi nesnelerin sızıntı yaptığını söyler, bu da size bir arama yönü verir

 
Artyom Trishkin #:

EA grafikten kaldırıldığında günlükte ne var? Genellikle hangi nesnelerin sızıntı yaptığını söyler, bu da size bir arama yönü verir

Kayıtları sildim. Ama sorun değil, tekrar yapmak uzun sürmez. Şimdi sunucuda Uzman Danışmanı başlatacağım, sabah (belki daha erken) günlükler olacak.

Ancak hatırladığım kadarıyla, içlerinde belleğin nerede sızıntı yaptığına dair bir gösterge bulamadım.

Ve Uzman Danışman grafikten kaldırılmaz, büyük olasılıkla günlüklerde terminal kapanışının kaydı olmadığı için sunucuyu yeniden başlatır. Ancak bu kesin değil.

 
Aleksandr Slavskii #:

Kayıtları sildim. Ama sorun değil, tekrar yapmak uzun sürmez. Uzman Danışmanı şimdi sunucuda başlatacağım, kayıtları sabah (belki daha erken) alacağım.

Ancak hatırladığım kadarıyla, hafızanın nerede sızıntı yaptığına dair bir gösterge bulamadım.

Ve Uzman Danışman grafikten kaldırılmaz, büyük olasılıkla sadece sunucuyu yeniden başlatır, çünkü günlüklerde terminal kapanışının kaydı yoktur. Ancak bu kesin değildir.

Sorumun ne anlama geldiğini anlamamışsınız. Bellek bittiğinde ve patladığında sunucuyu beklemenize gerek yoktur.

Kodda bir nesne sızıntısı varsa, Uzman Danışman çalışırken evinizdeki yerel bilgisayarınızda yeniden derleyin - günlüklerde sızan nesnelerin sayısı ve türü hakkında bir mesaj görüntülenmelidir. Veya bir grafik üzerinde çalıştırın ve hemen indirin - sızıntı hakkında bir mesaj da görünmelidir, tabii ki varsa.