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

 
Açık bir tabloya bağlı olmayan yardımcı göstergeler oluşturmaya başlamak için terminalde bir seçeneği nerede bulabilirim?
 
BillionerClub :
Açık bir tabloya bağlı olmayan yardımcı göstergeler oluşturmaya başlamak için terminalde bir seçeneği nerede bulabilirim?

HANDLA göstergesini oluştururken GEREKLİ zaman çerçevesini ve sembolünü belirtmeniz yeterlidir. Örneğin iRSI göstergesi:

 int    iRSI ( 
   string               symbol,             // имя символа 
   ENUM_TIMEFRAMES      period,             // период 
   int                  ma_period,         // период усреднения 
   ENUM_APPLIED_PRICE   applied_price       // тип цены или handle 
   );
 
Vladimir Karputov :

HANDLA göstergesini oluştururken GEREKLİ zaman çerçevesini ve sembolünü belirtmeniz yeterlidir. Örneğin iRSI göstergesi:

Hayır, ondan bahsediyorum. Renat gibi, bazı yazılarda programa bağlı olmayan yardımcı danışmanların oluşturulmasından veya bunun gibi bir şeyden bahsetti.

 
BillionerClub :

Hayır, ondan bahsediyorum. Renat gibi, bazı yazılarda programa bağlı olmayan yardımcı danışmanların oluşturulmasından veya bunun gibi bir şeyden bahsetti.

Adı "Hizmetler". Henüz yok.

 

MT4 altında, sipariş vermeden önce sunucunun kullanılabilirliğini kontrol eden çalışan bir işlevim var (parametre bool yenileme hızları - teklifleri güncelleme ve int sayısı - sunucu müsait değilse duraklamalı kontrol sayısı, sonuç yanlış döndürür - ticaret yapabilirsiniz , sunucunun mevcut olmadığı doğru. yani if( ServerDisable() return; ) işlevinin şu şekilde kullanılması uygundur:

 bool ServerDisable( bool refreshrates= false , int count= 10 )
  {
   for ( int i= 0 ;i<count;i++)
     {
       if ( IsConnected ())
        {
         if ( IsTradeAllowed ())
           {
             if (! IsTradeContextBusy ())
              {
                 {
                   if (refreshrates) RefreshRates ();
                   return ( false );
                 }
              }
           }
        }
       Sleep ( 157 );
     }
   Print ( __FUNCTION__ , " Торговый сервер не отвечает" );
   return ( true );
  }

lütfen bu yapıyı MT5 için doğru bir şekilde yeniden yazmama yardım edin, MT5'te TerminalInfoInteger() isteklerinin parametrelerinin biraz farklı çağrılmasına yardımcı olun (yani, MT5'te standart MT4 işlevleri IsConnected(), IsTradeAllowed() ile bir benzerlik arıyorum) ... ) ve RefreshRates() nasıl çalıştırılır?

 
Igor Makanu :

MT4 altında, sipariş vermeden önce sunucunun kullanılabilirliğini kontrol eden çalışan bir işlevim var (parametre bool yenileme hızları - teklifleri güncelleme ve int sayısı - sunucu müsait değilse duraklamalı kontrol sayısı, sonuç yanlış döndürür - ticaret yapabilirsiniz , sunucunun mevcut olmadığı doğru. yani if( ServerDisable() return; ) işlevinin şu şekilde kullanılması uygundur:

lütfen bu yapıyı MT5 için doğru bir şekilde yeniden yazmama yardım edin, MT5'te TerminalInfoInteger() isteklerinin parametrelerinin biraz farklı çağrılmasına yardımcı olun (yani, MT5'te standart MT4 işlevleri IsConnected(), IsTradeAllowed() ile bir benzerlik arıyorum) ... ) ve RefreshRates() nasıl yürütülür?

Sadece bunu kullanıyorum, yeterli görünüyor

TerminalInfoInteger (TERMINAL_CONNECTED)

 
Vitaly Muzichenko :

Sadece bunu kullanıyorum, yeterli görünüyor

TerminalInfoInteger(TERMINAL_CONNECTED)

Zor komisyoncuları tartışmak istemiyorum, yukarıda gösterdiğim tasarım, bu kene üzerinde siparişlerle çalışma imkanı yoksa, bir kene geldiğinde OnTick'ten () çıkmanın yanı sıra sipariş vermeyi de sağlıyor.

MT5 işlevleri için tam analoglara ihtiyacım var: IsConnected() ( TerminalInfoInteger (TERMINAL_CONNECTED) - onaylandı ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

 
Igor Makanu :

Zor komisyoncuları tartışmak istemiyorum, yukarıda gösterdiğim tasarım, bu kene üzerinde siparişlerle çalışma imkanı yoksa, bir kene geldiğinde OnTick'ten () çıkmanın yanı sıra sipariş vermeyi de sağlıyor.

MT5 işlevleri için tam analoglara ihtiyacım var: IsConnected() ( TerminalInfoInteger(TERMINAL_CONNECTED) - onaylandı ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

IsTradeContextBusy() hariç tutulabilir, beşinci iş parçacığında her zaman ücretsizdir

RefreshRates() , önceden tanımlanmış Ask / Bid değişkenlerinin bir güncellemesidir, bunlar beşinci değil, ancak kullanabilirsiniz.

 #define Bid (:: SymbolInfoDouble ( _Symbol , :: SYMBOL_BID ))
#define Ask (:: SymbolInfoDouble ( _Symbol , :: SYMBOL_ASK ))

o zaman fiyatlar her zaman alakalı olacaktır

 
Igor Makanu :

Kurnaz brokerleri tartışmak istemiyorum , yukarıda gösterdiğim tasarım, bu kene üzerinde siparişlerle çalışma imkanı yoksa, bir kene geldiğinde OnTick'ten () çıkmanın yanı sıra sipariş vermeyi de sağlıyor.

MT5 işlevleri için tam analoglara ihtiyacım var: IsConnected() ( TerminalInfoInteger(TERMINAL_CONNECTED) - onaylandı ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

Anladığım kadarıyla, keneler açık ama ticaret yasak mı demek istiyorsun?

Eğer öyleyse, ben de böyle bir çek almak isterim, ancak şimdiye kadar hiç kimse işe yarayan bir şey teklif etmedi.

 
Vitaly Muzichenko :

IsTradeContextBusy() hariç tutulabilir, beşinci iş parçacığında her zaman ücretsizdir

https://www.mql5.com/en/articles/4332

Bağlandı() TerminalInfoInteger(TERMINAL_CONNECTED)

Ticarete İzin Verilir() MQLInfoInteger(MQL_TRADE_ALLOWED)

YenilemeOranları() SymbolInfoDouble ( _Symbol , :: SYMBOL_BID )

IsTradeContextBusy() bir analoga veya bir analogun neden mümkün olmadığının gerekçesine ihtiyaç duyuyor


Analoglara ihtiyacım var ve başka bir şeye ihtiyacım yok, dün yukarıdaki işlevi referansa dayanarak yeniden yazdım, ancak doğru yorumlama konusunda belirsizlik var (farklı kelimelerle açıklanmıştır), şimdi forumda doğruluğunu onaylamak istiyorum:

 //_______________________________________________________________________
bool ServerDisable( bool refreshrates= false , int count= 10 )
  {
   if ( MQLInfoInteger ( MQL_TESTER )|| MQLInfoInteger ( MQL_OPTIMIZATION )) return ( false );
   for ( int i= 0 ;i<count;i++)
     {
       if ( TerminalInfoInteger ( TERMINAL_CONNECTED )) if ( TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED ))
        {
#ifdef __MQL5__
         if (refreshrates) SymbolInfoDouble ( _Symbol , SYMBOL_BID );
         return ( false );
#else
#ifdef __MQL4__
         if (! IsTradeContextBusy ())
           {
             if (refreshrates) RefreshRates ();
             return ( false );
           }
#endif   // __MQL4__
#endif
         }
       Sleep ( 157 );
     }
   Print ( __FUNCTION__ , " Торговый сервер не отвечает" );
   return ( true );
  }
//___________________________________________________________________________
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
  • www.mql5.com
— В чем сила, брат?                                   —А сила, брат, в дефайнах                     Вы все ещё пишете на MQL4 и хотите перейти на MQL5, но не знаете с чего начать? Тогда мы идём к вам! Теперь появилась возможность комфортно работать в редакторе MetaEditor MQL5 и при этом использовать MQL4-нотацию (справедливости ради замечу...