Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 168

 
Slava :

Bir bellek sızıntısı iletisi aldığınızda, bu belleği boşaltmak için açık bir komut olmadığı anlamına gelir.

Program çıktığında (yani, işlemin sonunda bu tür mesajları alırsınız), her durumda, sızdırılmış olan da dahil olmak üzere tüm belleği boşaltır.

Belki de "sızıntı" terimini çok gevşek kullandım. Mesele şu ki, bir kaynak bellekte kalır ve nesne silinse bile adı tanınmaz. Ve adını biliyorsak, bu kaynağı oluşturan program dışında hiçbir yerden silinemez.


Artık Market için Terminal'i VPS'ye asacak (bilerek değil) ve betik yürütüldükten sonra silinmeyen kaynaklarla tüm belleği dolduracak bir betik yazmak çok kolay.

 

Bazı ticaret sunucuları aynı anda birkaç hesap türü içerebilir. Örneğin, ECN ve standart. Bu durumda, sembollerin önekleri olmayabilir, yani. isimler uyuşuyor.

Bu durumda, çubuk geçmişi (grafikteki mevcut teklif/ask/son değeri dahil) ve onay geçmişi her zaman yalnızca bir hesap türüne karşılık gelir.

Ve Piyasa İncelemesinden gelen veriler - bağlı olduğu kişiye.


Bu nedenle, Piyasa İzleme'nin çizelgeler ve kene geçmişiyle tamamen uyumlu olmadığını görmek kolaydır.

 

Birkaç kez, savaş danışmanının durduğu harita sembolünde rastgele (elle) bir değişiklikle karşılaştım.

Karakter değişikliği koruması.

 int OnInit ()
{
   static const string Symb = _Symbol ;  
   const bool Res = ( _Symbol != Symb);
  
   if (Res)
     Alert ( "Symbol is change!" );
  
   return (Res); // Защита от смены символа.
}
 
Bir danışmanı başlatırken, genellikle fiyat geçmişini ne zaman alacağınıza karar vermeniz gerekir. Her seferinde manuel girmemek için bunu yaptım.
 #define WEEK ( 7 * 24 * 3600 )
input datetime temp = __DATE__ - WEEK ;

Buna göre hikayeyi derlemeden bir hafta önce alıyorum. Uygun bir şekilde.

 
fxsaber :
Bir danışmanı başlatırken, genellikle fiyat geçmişini ne zaman alacağınıza karar vermeniz gerekir. Her seferinde manuel girmemek için bunu yaptım.

Buna göre hikayeyi derlemeden bir hafta önce alıyorum. Uygun bir şekilde.

Neden optimize ediciye bir kez daha güvenelim? Daha iyi:

#define HAFTA 604800

 

Programın acil olarak kesilmesinin işlevi, iyi sonuçlanmış gibi görünüyor.

 #define EXIT (STD_CExit( __LINE__ , __FUNCTION__ )).Exit

class STD_CExit{
   string function;
   int line;
public :
   STD_CExit( int _line, string _func):line(_line),function(_func){}
   void Exit( string reason= NULL );
};
//--------------------------------------------------------------------------
void STD_CExit::Exit( string reason= NULL ){
   Alert ( StringFormat ( "Abort in line %i, function %s.\nReason: %s." ,line,function,reason== NULL ||reason== "" ? "Unknow" :reason));
   int a= 0 ;
   int b= 1 /a;}

void OnStart ()
{
   Test();
}

void Test(){
   EXIT( "Some reason" );
}
 
Vladimir Simakov :

Programın acil olarak kesilmesi işlevi, buna değer görünüyor

şey gerekli - zaten olmasına sevindim .., işte @Vict ile bu sorunu çözdük https://www.mql5.com/en/forum/318246/page10#comment_12651569

ama bu:

- http://www.delphibasics.ru/Exit.php'den Çıkmayın

- İptal Etme http://www.delphibasics.ru/Abort.php

bu Halt http://www.delphibasics.ru/Halt.php

UPD: Böyle bir senaryo çok gerekli

 void OnTick ()
{
   if (!getData()) EXIT( "No data" );
}
bool getData()
{
   return ( false );
}
 
Igor Makanu :

şey gerekli - zaten olmasına sevindim .., işte @Vict ile bu sorunu çözdük https://www.mql5.com/en/forum/318246/page10#comment_12651569

ama bu:

- http://www.delphibasics.ru/Exit.php'den Çıkmayın

- İptal Etme http://www.delphibasics.ru/Abort.php

bu Halt http://www.delphibasics.ru/Halt.php

UPD: Böyle bir senaryo çok gerekli

Şimdiye kadar bu mümkün olmadı :(
 
Vladimir Simakov :
Şimdiye kadar bu mümkün olmadı :(

bu yüzden ona çok ihtiyacı var!

geliştiriciler normal bir çıkış/iptal verdiyse, örneğin TF - OHLC verileri hazır değilse, verilerin işlenmesini doğru bir şekilde kesmek mümkün olacaktır, ayrıca sunucuya bir sipariş göndermeyi işlemek de yararlı olacaktır. ... OnTick()'ten çıkmak için sonsuz dönüşü () çözmeden kodu herhangi bir yerde kesmek ve bir sonraki tıklamadan önce çıkmak uygundur

 
Igor Makanu :

bu yüzden ona çok ihtiyacı var!

geliştiriciler normal bir çıkış/iptal verdiyse, örneğin TF - OHLC verileri hazır değilse, verilerin işlenmesini doğru bir şekilde kesmek mümkün olacaktır, ayrıca sunucuya bir sipariş göndermeyi işlemek de yararlı olacaktır. ... OnTick()'ten çıkmak için sonsuz dönüşü () çözmeden kodu herhangi bir yerde kesmek ve bir sonraki tıklamadan önce çıkmak uygundur

Şey, o zamana kadar yapamadım...