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

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

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

fxsaber , 2017.11.30 09:48

hafıza

Eylem/program türü TF veya sembolü değiştir hesap değişikliği
Gösterge OnDeinit ve OnInit çalıştırıldığında, global sınıf nesnesi değiştirilir (tam yeniden yükleme). Ön_hesaplananı sıfırlamaktan başka bir şey olmaz.
danışman OnDeinit ve OnInit çalıştırıldığında, global sınıf nesnesi değişmez . OnDeinit ve OnInit çalıştırıldığında , global sınıf nesnesi değiştirilir (tam yeniden yükleme).

Yeniden oturum açarken danışmanın tamamen yeniden başlatılmasını nasıl önleyeceğimi söyle (örneğin, manuel olarak)?

Yeniden giriş yaparken neden her şeyin sıfırlandığını anlamıyorum. Bu bir kusur mu?

 
fxsaber :

Çalışıyor, ancak doğru makroyu önerebilir misiniz?

El sanatlarınızın kalitesi konusunda çok endişeli değilseniz, o zaman ben daha da endişeliyim.

 
Vict :

El sanatlarınızın kalitesi konusunda çok endişeli değilseniz, o zaman benim için daha da fazla.

Burada MQL5'in özellikleri hakkında yazıyorlar.

 
fxsaber :

Burada MQL5'in özellikleri hakkında yazıyorlar.

Ve bunun UB değil de bir özellik olduğunu kim söyledi? Rıhtımlar hakkında bilgi var mı? Çoğu durumda, derleyiciye her türlü optimizasyonu yapma özgürlüğü vermek için UB gerekir, sonuç olarak çeşitli durumlarda gerçek kodda ne olacağı - xs, optimize edicinin havasına bağlıdır. Hatta bu kodu çaprazlarda çalıştırabilir ve bir sonuç elde edebilirim, sonra "Bakın özellik nedir" demeye başlayabilirim.

ML'nin ayrıntılı rıhtımları yoktur, burada aksi açıkça belirtilmediği sürece yalnızca haçlara odaklanmak içindir.

 
Vict :

Ve bunun UB değil de bir özellik olduğunu kim söyledi? Rıhtımlar hakkında bilgi var mı?

Burada rıhtımlarda olmayanlar hakkında yazıyorlar. Aksi takdirde şubede bir anlamı yoktur.

 
fxsaber :

Burada rıhtımlarda olmayanlar hakkında yazıyorlar. Aksi takdirde şubede bir anlamı yoktur.

Daldaki nokta, geliştiricilerin yorumları olsaydı olurdu, aksi takdirde ...

Yani evet, rıhtımlarda yazıyor: infaz emri / infaz emri, - bu nedenle, sizin için her şey yasal görünüyor. Ancak, yine de, profesyonellerde - bu gerçekten şiddetli bir ub olduğu göz önüne alındığında, yardımın gerçekten yürütme emri anlamına geldiğinden ve operatörlerin birleştirilmesi anlamına geldiğinden emin olmak istiyorum .

 
fxsaber :

Söyle bana, yeniden oturum açarken danışmanın tamamen yeniden başlatılmasını nasıl önleyebilirim (örneğin, manuel olarak)?

Yeniden giriş yaparken neden her şeyin sıfırlandığını anlamıyorum. Bu bir kusur mu?

Görev, yeniden giriş yaparken bazı hesaplamaları kaçırmak ve hesabı değiştirirken danışmanı silmekti . Bir yerde karar verildi.

Hesabı değiştirirken danışmanı silmeniz gerekiyorsa bu şekilde görünür.

 string GetGlobalNameAccount( void )
{
   return (:: MQLInfoString ( MQL_PROGRAM_NAME ) + ( string ):: ChartID () + "_Account" );
}

void SaveAccount( void )
{  
   if (!:: GlobalVariableSet (GetGlobalNameAccount(), CurrentAccount))
    :: Alert ( "GlobalVariableSet - ERROR!" );
  
   return ;
}

int LoadAccount( void )
{
   int Res = 0 ;
  
   const string Name = GetGlobalNameAccount();
    
   if (:: GlobalVariableCheck (Name))
  {
    Res = ( int ):: GlobalVariableGet (Name);
    
    :: GlobalVariableDel (Name);      
  }
  
   return (Res);
}

const int CurrentAccount = ( int ) AccountInfoInteger ( ACCOUNT_LOGIN );
int PrevAccount = 0 ;

int OnInit ( void )
{
  PrevAccount = LoadAccount();
  
   bool Res = !PrevAccount || (PrevAccount == CurrentAccount);
  
   if (Res)
  {
     // .....
  }
   else
     Alert ( "Account is changed! " + ( string )PrevAccount + " -> " + ( string )CurrentAccount);
    
   return (Res ? INIT_SUCCEEDED : INIT_FAILED );
}

void OnDeinit ( const int Reason )
{
   if (Reason == REASON_ACCOUNT )
    SaveAccount();
}


MQL5'teki en basit görev, bir bükülme ile dans etmenizi sağlar.

 
Vladimir Simakov :

Daldaki nokta, geliştiricilerin yorumları olsaydı olurdu, aksi takdirde ...

Yani evet, rıhtımlarda yazıyor: infaz emri / infaz emri, - bu nedenle, sizin için her şey yasal görünüyor. Ancak, yine de, profesyonellerde - bu gerçekten şiddetli bir ub olduğu göz önüne alındığında, yardımın gerçekten yürütme emri anlamına geldiğinden ve operatörlerin birleştirilmesi anlamına geldiğinden emin olmak istiyorum .

Lütfen bu konuyu kirletmeyin. C++ değil, MQL5 özellikleri hakkında konu

 
Artyom Trishkin :

Lütfen bu konuyu kirletmeyin. C++ değil, MQL5 özellikleri hakkında konu

Bir tür teneke, biri UB'ye yazıyor, diğeri onu körü körüne yankılıyor. Ve MKL yardımında olan hiçbir şey

Dikkat: MQL5 dilinde işlem yürütme önceliği, C++ dilinde kabul edilen önceliğe karşılık gelir ve MQL4 dilinde belirtilen öncelikten farklıdır.

Ve tabloda "Yürütme sırası" denilen şeye aslında "birliktelik" denir ve genellikle tanımlanmayan hesaplama sırasını etkilemez.

Pekala, tamam, bu nankör bir görev, işte tüm tekme uzmanları, neden tırmanıyorum.

 
Vict :
Dikkat: MQL5 dilinde işlem yürütme önceliği, C++ dilinde kabul edilen önceliğe karşılık gelir ve MQL4 dilinde belirtilen öncelikten farklıdır.

Büyük olasılıkla, bu yalnızca katı olmayan mod için geçerlidir.

Yüzlerce insan yıllardır burada platformlar arası şeyler yazıyor.
Neden: