Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 986
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
En OnInit() llame a la serie temporal del símbolo: iTime(Symbol,Timeframe,1);
Al principio de OnTick(), pida la barra necesaria de la serie de tiempo necesaria a través de la correspondiente iFunc(), o si( iTime(Symbol,Timeframe,10)==0) devuelva;
En este caso, el Asesor Experto no detectará una nueva barra y esperará al siguiente tick.
En OnInit() hemos solicitado los datos de la serie temporal, activando así la paginación de datos.
En OnTick() comprobamos si el historial mínimamente necesario está disponible para el EA y si aún no lo está, esperamos al siguiente tick.
Y hasta que se reciban todos los datos requeridos por el Asesor Experto, éste esperará al siguiente tick.
Tan pronto como se descarguen y obtengan todos los datos necesarios, el Asesor Experto comenzará a trabajar con la nueva barra y el historial requerido.
Para mantener los datos en serie actualizados, asegúrese de acceder a ellos al menos una vez cada dos minutos. Haga un segundo temporizador de aproximadamente un minuto y medio (90 segundos) y en él, simplemente acceda a cualquier serie de tiempo del símbolo deseado, por ejemplo iTime(Symbol,Timeframe,1); Sin comprobar los datos recibidos - sólo "mover" la historia. Así, todos los datos del símbolo estarán siempre actualizados.
Por supuesto, voy a tratar de comprobar la nueva barra utilizando todos los TFs, pero no es sincrónico, esto no es MT4. El problema no es con la barra, sino con el no funcionamiento de los indicadores que son llamados desde el indicador, que a su vez es llamado desde el Asesor Experto.
Trabajo en minutos, por lo que el historial debería estar siempre actualizado.
Y, todas estas comprobaciones se hacen para la prueba y sólo ralentizarán el trabajo en una cuenta real, porque allí todo funciona más lento que en las condiciones estacionarias del probador, repito que en una cuenta real el indicador funciona correctamente.
Hasta ahora he resuelto el problema comprobando la disponibilidad de los indicadores, que han fallado, antes de iniciar el código principal
Pero este enfoque no es universal, porque hay que listar todos los indicadores, ¿hay otro método más universal para que el entorno del probador funcione correctamente?
En OnTick() comprobamos si el historial mínimo requerido está disponible para el Asesor Experto, y si no está disponible todavía - esperamos al siguiente tick.
Y hasta que se obtengan todos los datos requeridos por el EA, éste esperará al siguiente tick.
Tan pronto como se bombeen y obtengan todos los datos necesarios, el Asesor Experto comenzará a trabajar con la nueva barra y el historial requerido.
Cómo propones comprobar la disponibilidad del historial, no lo entiendo...
Añade esta línea antes de la función MQL4
y funcionará en MT5.
Eso es una genialidad. ¡Muchas gracias!
¿Puede decir MT5 puede implementar este tipo de botones, tal vez ya tienen uno, compartir el código ...
Prever el deslizamiento y las recotizaciones.
Hola, si los precios Ask y Bid de la clase CSymbolInfo están más o menos claros, cómo obtener por ejemplo SessionInterest o SessionBuyOrdersVolume o SessionPriceLimitMin, Da ceros, no entiendo por qué...
Hola, si los precios Ask y Bid de la clase CSymbolInfo están más o menos claros, como obtener por ejemplo SessionInterest o SessionBuyOrdersVolume o SessionPriceLimitMin, da ceros, no entiendo por qué...
Si el servidor de negociación difunde esta información, usted la recibirá.
Por regla general, esta información la emiten los corredores de bolsa para los símbolos bursátiles (no confundir corredores y centros de negociación).
Si el servidor de negociación difunde esta información, usted la recibirá.
Esta información suele ser emitida por los Brokers para los símbolos bursátiles (no hay que confundir Brokers y centros de negociación).
Broker Otkritie, el RTS Index Futures, asumo que debe emitir al menos el SessionPriceLimitMin y el SessionPriceLimitMax (porque son hasta donde yo entiendo los precios de apertura utilizados en las órdenes de mercado). La apertura no se traduce... Yo prescribo, por ejemplo:
Print(m_symbol.Ask()," ",m_symbol.SessionBuyOrdersVolume()); - desde su EA
Sólo obtengo los precios de Ask en el registro
Por favor, ayúdenos a escribir un código que determine correctamente la fecha de la última barra con cualquier desplazamiento en cualquier TF, con precisión en el TF actual.
Este código generalmente funciona, pero sólo si la hora de inicio de la barra actual coincide con la barra actual (redondeada al minuto), ya que mi gráfico actual es M1. Y si no coincide, entonces se producen diferentes percances, según los diferentes TF. Por ejemplo, necesito saber la fecha de inicio de la última barra M1 de la última hora, si eran las 12 no hay problema, la hora será las 12:59, pero si eran las 13 será las 13:58 porque la barra horaria se abrió a las 14:05 y no a las 14:00 y la funcióniBarShift devolvió la barra más cercana a las 14:00, es decir, 13:59.
Añadido: hecho esto, parece que funciona
Otkritie broker, RTS index futures, supongo que debería emitir al menos SessionPriceLimitMin y SessionPriceLimitMax (según tengo entendido se utilizan en las órdenes de mercado por precios de apertura ). La apertura no se traduce... Yo prescribo, por ejemplo:
Print(m_symbol.Ask()," ",m_symbol.SessionBuyOrdersVolume()); - desde su EA
Sólo obtengo los precios de Ask en el registro