Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1000

 
Dove posso trovare un'opzione nel terminale per iniziare a creare indicatori ausiliari che non sono legati al grafico aperto?
 
BillionerClub:
Dove posso trovare un'opzione nel terminale per iniziare a creare indicatori ausiliari che non sono legati al grafico aperto?

Tutto quello che devi fare quando crei un indicatore HANDLE è specificare il timeframe e il simbolo desiderato. Per esempio l'indicatoreiRSI:

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

Tutto quello che devi fare quando crei un indicatore HANDLE è specificare il timeframe e il simbolo desiderato. Per esempio l'indicatoreiRSI:

No, dico sul serio. Credo che Renat abbia detto in qualche post di creare degli ausiliari, non legati agli EA dei grafici o qualcosa del genere.

 
BillionerClub:

No, è quello che voglio dire. Credo che Renat abbia detto in qualche post di creare degli EA ausiliari, non cartellinati, o qualcosa del genere.

Si chiama Servizi. Non li abbiamo ancora.

 

Ho una funzione funzionante sotto MT4 che controlla la disponibilità del server prima di piazzare l'ordine (parametro bool refreshrates - aggiorna le quotazioni e int count - numero di controlli con pausa se il server non è disponibile, il risultato restituisce false - può fare trading, true server non è disponibile. cioè è conveniente usare if(ServerDisable() return;):

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);
  }

Aiutatemi a riscrivere correttamente questa costruzione per MT5, si chiamaTerminalInfoInteger() parametri di richiesta in MT5 help (cioè sto cercando un'analogia in MT5 alle funzioni standard di MT4 IsConnected(), IsTradeAllowed()... ) e come eseguire RefreshRates() ?

 
Igor Makanu:

Ho una funzione funzionante sotto MT4 che controlla la disponibilità del server prima di piazzare l'ordine (parametro bool refreshrates - aggiorna le quotazioni e int count - numero di controlli con pausa se il server non è disponibile, il risultato restituisce false - può fare trading, true server non è disponibile. cioè è conveniente usare if(ServerDisable() return;):

Aiutatemi a riscrivere correttamente questa costruzione per MT5, si chiama TerminalInfoInteger() parametri di richiesta in MT5 help (cioè sto cercando un'analogia in MT5 alle funzioni standard di MT4 IsConnected(), IsTradeAllowed()... ) e come eseguire RefreshRates() ?

Io uso solo questo e sembra essere sufficiente.

TerminalInfoInteger(TERMINAL_CONNECTED)

 
Vitaly Muzichenko:

Io uso solo questo, sembra essere sufficiente

TerminalInfoInteger(TERMINAL_CONNECTED)

Non voglio discutere di broker complicati, la costruzione che ho mostrato sopra fornisce il piazzamento di un ordine, così come l'uscita da OnTick() all'arrivo del tick se non c'è la possibilità di lavorare con ordini su questo tick

Ho bisogno di analoghi esatti per MT5 fts: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confermato), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

 
Igor Makanu:

Non voglio discutere di broker complicati, la costruzione che ho mostrato sopra fornisce ordini di piazzamento, così come su tick per uscire OnTick() se su questo tick non c'è la possibilità di lavorare con ordini

Ho bisogno di analoghi esatti per le funzioni MT5: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confermato), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

IsTradeContextBusy() può essere escluso, il quinto thread è sempre libero

RefreshRates() aggiorna le variabili predefinite Ask/Bid.

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

allora i prezzi saranno sempre aggiornati

 
Igor Makanu:

Non voglio discutere di broker complicati, la costruzione che ho mostrato sopra fornisce ordini di piazzamento, così come su tick per uscire OnTick() se su questo tick non c'è la possibilità di lavorare con ordini

Ho bisogno di analoghi esatti per MT5 fts: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confermato), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

Immagino che tu voglia dire che i tick funzionano ma il trading è disabilitato?

Se è così, anche a me piacerebbe avere un tale controllo, ma nessuno ha offerto nulla finora.

 
Vitaly Muzichenko:

IsTradeContextBusy() può essere escluso, il quinto thread è sempre libero

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

IsConnected() TerminalInfoInteger(TERMINAL_CONNECTED)

IsTradeAllowed() MQLInfoInteger(MQL_TRADE_ALLOWED)

RefreshRates() SymbolInfoDouble(_Symbol, ::SYMBOL_BID)

IsTradeContextBusy() ha bisogno di un analogo o di giustificare perché lo stesso non è possibile


Ho bisogno di un analogico e niente di più, ho riscritto la funzione di cui sopra ieri sulla base dell'aiuto ma c'è incertezza sulla corretta interpretazione (parole diverse descritte), ora voglio confermare la correttezza sul forum:

//_______________________________________________________________________
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-нотацию (справедливости ради замечу...