Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1000

 
¿Dónde puedo encontrar una opción en el terminal para empezar a crear, indicadores auxiliares que no están vinculados al gráfico abierto?
 
BillionerClub:
¿Dónde puedo encontrar una opción en el terminal para empezar a crear, indicadores auxiliares que no están vinculados al gráfico abierto?

Lo único que hay que hacer al crear un indicador HANDLE es especificar el marco temporal y el símbolo deseados. Por ejemplo el indicadoriRSI:

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

Lo único que hay que hacer al crear un indicador HANDLE es especificar el marco temporal y el símbolo deseados. Por ejemplo el indicadoriRSI:

No, lo digo en serio. Creo que Renat dijo en algún post sobre la creación de auxiliares, no ligados a los EAs de los gráficos o algo así.

 
BillionerClub:

No, eso es lo que quiero decir. Creo que Renat dijo en algún post sobre la creación de EAs auxiliares, no cartográficos o algo así.

Se llama Servicios. Todavía no los tenemos.

 

Tengo una función de trabajo en MT4 que comprueba la disponibilidad del servidor antes de colocar la orden (parámetro bool refreshrates - refrescar cotizaciones e int count - número de comprobaciones con pausa si el servidor no está disponible, el resultado devuelve false - puede operar, true el servidor no está disponible. es decir, es conveniente utilizar 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);
  }

Ayúdame a reescribir correctamente esta construcción para MT5, se llamaTerminalInfoInteger() solicitar parámetros en la ayuda de MT5 (es decir, estoy buscando la analogía en MT5 a las funciones estándar de MT4 IsConnected(), IsTradeAllowed()... ) y cómo ejecutar RefreshRates() ?

 
Igor Makanu:

Tengo una función de trabajo en MT4 que comprueba la disponibilidad del servidor antes de colocar la orden (parámetro bool refreshrates - refrescar cotizaciones e int count - número de comprobaciones con pausa si el servidor no está disponible, el resultado devuelve false - puede operar, true el servidor no está disponible. es decir, es conveniente utilizar if(ServerDisable() return;):

Ayúdame a reescribir correctamente esta construcción para MT5, se llama TerminalInfoInteger() solicitar parámetros en la ayuda de MT5 (es decir, estoy buscando la analogía en MT5 a las funciones estándar de MT4 IsConnected(), IsTradeAllowed()... ) y cómo ejecutar RefreshRates() ?

Sólo uso este y parece ser suficiente.

TerminalInfoInteger(TERMINAL_CONNECTED)

 
Vitaly Muzichenko:

Sólo utilizo éste, parece ser suficiente

TerminalInfoInteger(TERMINAL_CONNECTED)

No quiero hablar de corredores complicados, la construcción que mostré arriba proporciona la colocación de una orden, así como la salida de OnTick() a la entrada del tick si no hay posibilidad de trabajar con órdenes en este tick

Necesito análogos exactos para MT5 fts: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confirmado ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

 
Igor Makanu:

No quiero hablar de brokers complicados, la construcción que mostré arriba proporciona la colocación de órdenes, así como en el tick para salir de OnTick() si en este tick no hay posibilidad de trabajar con órdenes

Necesito análogos exactos para las funciones de MT5: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confirmado), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

IsTradeContextBusy() puede excluirse, el quinto hilo está siempre libre

RefreshRates() actualiza las variables Ask/Bid predefinidas.

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

entonces los precios estarán siempre actualizados

 
Igor Makanu:

No quiero hablar de brokers complicados, la construcción que mostré arriba proporciona la colocación de órdenes, así como en el tick para salir de OnTick() si en este tick no hay posibilidad de trabajar con órdenes

Necesito análogos exactos para MT5 fts: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - confirmado), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

¿Supongo que quieres decir que los ticks están funcionando pero el comercio está desactivado?

Si es así, a mí también me gustaría tener ese cheque, pero nadie ha ofrecido nada hasta ahora.

 
Vitaly Muzichenko:

IsTradeContextBusy() puede excluirse, el quinto hilo está siempre libre

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

IsConnected() TerminalInfoInteger(TERMINAL_CONNECTED)

IsTradeAllowed() MQLInfoInteger(MQL_TRADE_ALLOWED)

RefreshRates() SymbolInfoDouble(_Symbol, ::SYMBOL_BID)

IsTradeContextBusy() necesita análogo o justificar por qué no es posible el mismo


Necesito un análogo y nada más , ayer reescribí la función anterior basándome en la ayuda pero hay incertidumbre sobre la interpretación correcta (diferentes palabras descritas ), ahora quiero confirmar la corrección en el foro:

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