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

 
fxsaber :

Teşekkürler, iyi kural. Kendi beceriksizliğimin kurbanı oldum. Doğru, böylesine bariz bir durum için biraz daha kurala ihtiyaç var.


Uyarı akıllı her iki durumda da yapabilir mi?

Gerek yok))) Oldukça sıkıcı olacak)))

 
Vladimir Simakov :
Bu kodla ilgili sorun nedir? Deinit'te sabit bir işaretçi ile bir nesneyi öldürdüler (burada bir tutamaç olduğunu biliyorum). C ++ tarzında uzuvlarda normal çekim, aksi takdirde yaratıcılar herkesi reddetti)))

Başlangıçta herhangi bir sorun olmayacaktır. Lansmandan sonra biraz bekleyebilir ve ardından danışman için uygulamasının bozulacağı bir durum yaratabilirsiniz.

Bu bir gizem değil, sadece ilk bakışta zararsız kodda bir sorun ararsanız, anlayış çok daha iyi gelir.
 
fxsaber :

Başlangıçta herhangi bir sorun olmayacaktır. Lansmandan sonra biraz bekleyebilir ve ardından danışman için uygulamasının bozulacağı bir durum yaratabilirsiniz.

Bu bir gizem değil, sadece ilk bakışta zararsız kodda bir sorun ararsanız, anlayış çok daha iyi gelir.
Evet, sorunun ne olduğunu biliyorum. Zaman çerçevesi değişikliği ve ayy.. Demek istediğim, burada her şey standart. Uyarı? Ne için? Bu kendim için, ben de benzer bir durumla karşılaştığımda bunu sadece yeteneğin artmasında sayıyorum. Örneğiniz IMHO ile, burada topluluğun yüzde 20'sinin gücüyle yüzleşebiliyor, peki neden onları kalkınmadan mahrum bırakıyorsunuz?
 
Vladimir Simakov :
Evet, sorunun ne olduğunu biliyorum. Zaman çerçevesi değişikliği ve ayy.. Demek istediğim, burada her şey standart. Uyarı? Ne için? Bu kendim için, ben de benzer bir durumla karşılaştığımda bunu sadece yeteneğin artmasında sayıyorum. Örneğiniz IMHO ile, burada topluluğun yüzde 20'sinin gücüyle yüzleşebiliyor, peki neden onları kalkınmadan mahrum bırakıyorsunuz?

Benim durumum daha da ilginçti. Hiçbir değişiklik olmadı, ancak yeniden bağlantıdan sonra OnDeinit çağrıldı. Şimdi Reason'ı izleyeceğim.

 

Sürekli olarak Market Watch'ta gerekli sembolü arama ihtiyacıyla karşı karşıyayım. Örneğin, mevcut grafiğin sembolü.

Her seferinde çok değerli zaman alır. Aşağıdaki komut dosyası kısayol tuşuna asılarak otomatikleştirilir.

 // После запуска и нажатия ENTER делает активным в Обзоре рынка символ чарта.
#include <WinAPI\winuser.mqh>

#define GA_ROOT           0x00000002

#define WM_KEYDOWN         0x0100
#define WM_LBUTTONDOWN     0x0201

#define VK_DELETE         0x2E

#define WM_CHAR           0x0102

#define GET_HANDLE                                                                       \
   long Handle = user32::GetAncestor(:: ChartGetInteger ( 0 , CHART_WINDOW_HANDLE ), GA_ROOT); \
                                                                                         \
   for ( int i = 0 ; i < sizeof (ControlID) / sizeof ( int ); i++)                              \
    Handle = user32::GetDlgItem(Handle, ControlID[i]);


bool SetSymbolNavigator( const string SymbName )
{
   const bool Res = :: SymbolInfoInteger (SymbName, SYMBOL_EXIST );

   if (Res)
  {
     static const int ControlID[] = { 0xE81C , 0x804B , 0x27A0 , 0x271B , 0x3E9 };
    GET_HANDLE

    user32::SendMessageW(Handle, WM_LBUTTONDOWN, 0 , 0 );
    user32::SendMessageW(Handle, WM_KEYDOWN, VK_DELETE, 0 );

     const int Size = :: StringLen (SymbName);
    
     for ( int i = 0 ; i < Size; i++)
      user32::SendMessageW(Handle, WM_CHAR, SymbName[i], 0 );
  }

   return (Res);
}

void OnStart ()
{
  SetSymbolNavigator( _Symbol );
}
 
fxsaber :

Sürekli olarak Market Watch'ta gerekli sembolü arama ihtiyacıyla karşılaşıyorum. Örneğin, mevcut grafiğin sembolü.

Her seferinde çok değerli zaman alır. Aşağıdaki komut dosyası kısayol tuşuna asılarak otomatikleştirilir.

Meslektaşım, hedef hakkında belirtin. Sembolün Market Watch'ta görünmesini mi yoksa Market Watch'ta vurgulanmasını mı istiyorsunuz?

 
Denis Kirichenko :

Meslektaşım, hedef hakkında belirtin. Sembolün Market Watch'ta görünmesini mi yoksa Market Watch'ta vurgulanmasını mı istiyorsunuz?

Vurgulanmak için. Örneğin, özel olanlarla dolu. Test Cihazını görebildiğim özel grafikte çalıştırmam gerekiyor.

Ardından bu scripti çalıştırıyorum ve ardından Market Watch'ta seçili sembolü fare ile Tester'a atıyorum. Her şey için birkaç saniye sürer.

 
fxsaber :

Vurgulanmak için. Örneğin, özel olanlarla dolu. Test Cihazını görebildiğim özel grafikte çalıştırmam gerekiyor.

Ardından bu scripti çalıştırıyorum ve ardından Market Watch'ta seçili sembolü fare ile Tester'a atıyorum. Her şey için birkaç saniye sürer.

O zaman bu senaryo benim için çalışmıyor. Hiçbir şey olmuyor, karakter vurgulanmıyor.

Başlatıyorum, Enter'a basıyorum. Günlüklerde bir hata görüyorum:

 2019.11 . 29 11 : 47 : 38.609 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\ 5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found

Evet, betiği SetActiveSymbol.mq5 olarak adlandırdım.

 
Denis Kirichenko :

Günlüklerde bir hata görüyorum

Yani sadece başlamıyor. Dosya yok.

 
fxsaber :

Yani sadece başlamıyor. Dosya yok.

O öyle. Günlükten sadece bir giriş getirdim. Tam hali şu:

 2019.11 . 29 12 : 37 : 18.851 Scripts script SetActiveSymbol (AUDJPY,H1) loaded successfully
2019.11 . 29 12 : 37 : 18.878 Scripts script SetActiveSymbol (AUDJPY,H1) removed
2019.11 . 29 12 : 37 : 26.419 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\ 5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found