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

 
ramis866 :
Biri bana danışmanları nasıl kullanacağımı söyleyebilir mi?
Yardımı görüntüleyin: Uzman Danışmanları ayarlama ve çalıştırma .
 
Çocuklar! Zaman çerçevesi değiştirildiğinde, EA yeniden başlar. Sonuç olarak, çizdiği tüm grafikleri varsayılan görünüme döndürür. Zaman çerçevesini değiştirirken yeniden başlatma nasıl devre dışı bırakılır?
 
net :
Çocuklar! Zaman çerçevesi değiştirildiğinde, EA yeniden başlar. Sonuç olarak, çizdiği tüm grafikleri varsayılan görünüme döndürür. Zaman çerçevesini değiştirirken yeniden başlatma nasıl devre dışı bırakılır?

Belki de danışmandaki nüansı düzeltmek daha iyidir, böylece çizdiği grafikler zaman çerçevesini değiştirdikten sonra doğru şekilde görüntülenir?

 
net :
Çocuklar! Zaman çerçevesi değiştirildiğinde, EA yeniden başlar. Sonuç olarak, çizdiği tüm grafikleri varsayılan görünüme döndürür. Zaman çerçevesini değiştirirken yeniden başlatma nasıl devre dışı bırakılır?

Yasaklanamaz. Ve grafikleri saklamam gerekir mi? Aslında, çizelgenin her bir zaman dilimi için tüm yapılar çarpıcı biçimde değişebilir. Örneğin, grafiğin farklı dönemlerinde MACD göstergesini alın. Ve grafik yapılar çok gerekliyse, danışmanın mantığını değiştirmeniz gerekir.

EA ve gösterge, grafik periyodu değiştirildikten sonra yeniden başlatılmalıdır - OnInit() işlevinin mantığı budur - Init olay işleyicisi:

İçinde

İstemci terminali programı (EA veya özel gösterge) yükledikten ve global değişken başlatma sürecini başlattıktan hemen sonra, varsa OnInit() işlevi tarafından işlenen Init olayı gönderilir. Bu olay ayrıca finansal enstrüman ve/veya grafik periyodu değiştirildikten sonra, programı MetaEditor'da yeniden derledikten sonra, Expert Advisor veya özel gösterge kurulum penceresinden giriş parametrelerini değiştirdikten sonra oluşturulur. EA, hesap değiştirildikten sonra da başlatılır. Komut dosyaları için Init olayı tetiklenmez.

 
barabashkakvn :

Yasaklanamaz. Ve grafikleri saklamam gerekir mi? Aslında, çizelgenin her bir zaman dilimi için tüm yapılar çarpıcı biçimde değişebilir. Örneğin, grafiğin farklı dönemlerinde MACD göstergesini alın. Ve grafik yapılar çok gerekliyse, danışmanın mantığını değiştirmeniz gerekir.

EA ve gösterge, grafik periyodu değiştirildikten sonra yeniden başlatılmalıdır - OnInit() işlevinin mantığı budur - Init olay işleyicisi:

pek katılmıyorum. Yeniden başlatmak elbette bir zorunluluktur, ancak! Kaynaklardan tasarruf etmek adına, yalnızca çok sayıda grafik nesnesi olan çoklu zaman çerçevesi göstergeleri/uzmanları için, başlatmanın bazı bölümlerini, özellikle önceden oluşturulmuş olanın yeniden hesaplanmasını atlamak mümkündür. Onlar. mantıksal olarak (şahsen doğru olduğunu düşünüyorum) başlatmadan sonra grafik yapılar silinirse, TF'yi değiştirme nedeni (yapıları silmeden) işlenmelidir. İstenirse, nesnelerin kendilerini yeniden oluşturmadan nesnelerin görünürlüğünü TF ile ayarlamak daha iyidir.
 
Tapochun :
pek katılmıyorum. Yeniden başlatmak elbette bir zorunluluktur, ancak! Kaynaklardan tasarruf etmek adına, yalnızca çok sayıda grafik nesnesi olan çoklu zaman çerçevesi göstergeleri/uzmanları için, başlatmanın bazı bölümlerini, özellikle önceden oluşturulmuş olanın yeniden hesaplanmasını atlamak mümkündür. Onlar. mantıksal olarak (şahsen doğru olduğunu düşünüyorum) başlatmadan sonra grafik yapılar silinirse, TF'yi değiştirme nedeni (yapıları silmeden) işlenmelidir. İstenirse, nesnelerin kendilerini yeniden oluşturmadan nesnelerin görünürlüğünü TF ile ayarlamak daha iyidir.
Her şey programcının elinde.
 

Bana iCustom tamponlarından double tipinde bir değişkenin minimum değerini nasıl bulacağımı söyleme, bunlardan 8 tane var.

Bunun bir dizi ile çözüldüğünü düşünüyorum ama nasıl yazacağımı bilmiyorum.

Lütfen yardım edin!

 

Herkese merhaba, hem freeloader hem profesyoneller, forumun tüm anılarını tekrar okumaya vakit yok, yavaş yavaş, parkour prensibine göre MQ öğreniyoruz......

Genel olarak, mevcut sorun: Örnekten paneli indirdim, danışmanımda uyarladım, şimdi görev bu paneli ayarlarda etkinleştirmek ve devre dışı bırakmak

ve böylece kodda

Değişkenlerde yazıyorum:

input bool vkl =false;//paneli kaldır

daha fazla açıklamak

Eğer //

 //+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- Вывести в журнал причину деинициализации
   Print (GetDeinitReasonText(reason));
//--- При удалении с графика
   if (reason== REASON_REMOVE )
       //--- Удалить все объекты с графика, которые относятся к информационной панели   
      DeleteInfoPanel();
      
     
  }

DeleteInfoPanel();

if(vcl =yanlış);

----------------

sonra bir hata, beni anlamadığını fark eden başka bir şey))

genel olarak, nasıl doğru yapılacağını bir örnekle zorlamazsanız söyleyin veya bir örnekle dosyanın nerede olduğunu gösterin, bulun

 
alhoya :

Bana iCustom tamponlarından double tipinde bir değişkenin minimum değerini nasıl bulacağımı söyleme, bunlardan 8 tane var.

Bunun bir dizi ile çözüldüğünü düşünüyorum ama nasıl yazacağımı bilmiyorum.

Lütfen yardım edin!

iCustom kullanılarak özel göstergenin tutamacı alındıktan sonra, OnCalculate() içinde, CopyBuffer kullanarak çalışılan özel gösterge arabelleğindeki değeri arabelleğinize kopyalamanız gerekir. ArrayMinimum kullanarak minimum değeri bulmak için arabelleğinizde kalır.
 
aleks557 :

...

Bir şeyi silmek için önce yaratılması gerekir .

 void DeleteInfoPanel()
  {
   DeleteObjectByName( " InfoPanelBackground " );   // Удалить фон панели
   DeleteObjectByName( " InfoPanelHeader " );       // Удалить заголовок панели
//--- Удалить свойства позиции и их значения

Ve bir şey daha: uzmanın özelliklerini değiştirirken (giriş parametrelerinde koşulu true olarak ayarladınız - uzmanı silmek istediniz), bu koşul paneli silmenizi engeller:

 void OnDeinit ( const int reason)
  {
//--- Вывести в журнал причину деинициализации
   Print (GetDeinitReasonText(reason));
//--- При удалении с графика
   if (reason== REASON_REMOVE )
       //--- Удалить все объекты с графика, которые относятся к информационной панели   
      DeleteInfoPanel();

  }

Bu koşul yalnızca Expert Advisor tablodan kaldırıldığında çalışır.