Discusión sobre el artículo "Qué comprobaciones debe superar un robot comercial antes de ser publicado en el Mercado" - página 15
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
Hola.
¿Cómo puedo comprobar si tengo suficiente espacio en disco?
Ahora este mensaje.
En el tercer intento, pasó sin hacer ningún cambio
Hola.
¿Cómo puedo comprobar si tengo suficiente espacio en disco?
Ahora este mensaje
Al tercer intento, ha pasado sin hacer ningún cambio
En este caso el mensaje no es del todo correcto. El problema estaba en la RAM.
Se ha añadido memoria en el servidor.
En este caso el mensaje no es del todo correcto. El problema estaba en la RAM.
La memoria en el servidor se ha añadido.
Gracias.
MT5 terminal. Broker RoboForex, instrumento - CFD AAPL.
En la primera ejecución en el probador de robot 2021.05.05.05 16:30:00 recibí el mensaje " mercado fallido comprar 0.1 AAPL [Mercado cerrado] ", error 4756, retcode 10018.
Día laborable - Miércoles, tiempo de negociación, tick a las 16:30:00 pasa, por qué razón el mercado está cerrado - no está claro.
La comprobación de Mercado cerrado no está en la lista de comprobaciones obligatorias, es decir, (teóricamente) la validación de los búhos pasaría.
¡Pero!
Si después de recibir este error no se retrasa la hora 2-3 horas, no pasará - se recibirá el error crítico "Pila llena" y el probador se apagará. Incluso si pasara - no me gustan mucho los errores en el log. No debería haber ninguno.
He revisado cuidadosamente todas las funciones - no he encontrado cómo obtener el evento " Mercado cerrado ". Parece que no existe.
Pregunta al autor del artículo:
- ¿Cómo hacer frente a esto?
Si hay una función que ayuda a evitar este error - por favor, avíseme, le estaré agradecido.
En el comercio real un par de minutos antes del cierre del día y 5-10 minutos después del inicio de un nuevo día, casi todos los corredores cierran el comercio. Pero las cotizaciones continúan. Así que el Asesor Experto, si se abre en el mercado y hay una señal permisiva, da hojas de errores. Es bueno que esta "ruptura de humo" no se resuelve en el probador.
He revisado cuidadosamente todas las funciones - no he encontrado cómo obtener el evento " Mercado cerrado ". Parece que no existe.
Pregunta al autor del artículo:
- ¿Cómo hacer frente a esto?
Si hay una función que ayuda a evitar este error - por favor, avíseme, le estaré agradecido.
En el comercio real un par de minutos antes del cierre del día y 5-10 minutos después del inicio de un nuevo día, casi todos los corredores cierran el comercio. Pero las cotizaciones continúan. Así que el Asesor Experto, si se abre en el mercado y hay una señal permisiva, da hojas de errores. Es bueno que esta "ruptura de humo" no se resuelve en el probador.
Las cotizaciones van, pero no hay ticks. OnTick() funciona sólo si hay otro tick.
Las cotizaciones están llegando, pero no hay ticks. OnTick() sólo funciona si hay otro tick.
Para aclarar:
- estamos hablando del probador
- la apertura de sesión CFD se produce, por regla general, con un menor o mayor, pero la brecha, es decir, el precio de apertura calculado por el robot está en el nivel de "abrir ayer"
- en el primer tick, exactamente a las 16:30:00, el robot intenta abrir un acuerdo.
Aquí es donde ocurre el problema: - exactamente a las 16:30:00 el mercado sigue cerrado.. Quizás por una fracción de segundo. Pero el probador en este momento está lanzando una hoja de errores hasta que la pila se desborda. El gráfico se para en el primer tick.
He resuelto este problema de la siguiente manera:
- establecer la distancia entre el precio actual y el precio de apertura.
- cuando se produce un error, reinicio la variable del precio de apertura. Obtiene el valor de nuevo, pero por 50-100 pips desde el precio actual.
- sólo pasa un error, entonces comercia normalmente.
Pero esta es una especie de solución indirecta. Hay un par de opciones más:
- añade la hora de apertura de la sesión a la barra de menú y empieza a operar con un retraso de 5-10 minutos
- controla el tiempo entre el cierre de la primera barra y la apertura de la barra cero. Si hay una brecha - hacer un retraso.
En este caso es una especie de ayuda para evitar un montón de errores. Pero no resuelve el "problema de medianoche". Los brokers cierran las operaciones durante 10-15 minutos, pero las cotizaciones siguen fluyendo, el robot intenta operar y genera repetidamente el error "El mercado está cerrado".
Es imposible evitar esto con las herramientas disponibles.
Si hubiera una función que detectara la disponibilidad real del mercado, no habría problemas.
Ah, sí, sobre OnTick. Cierto dices, pero...
Desde OnTick llamo a la función Trade() solo una vez por minuto en la apertura de una nueva barra, y más adelante el código en vez de retornar; tengo una llamada repetida a Trade(), no siempre todo lo necesario se ejecuta en un tick, es decir, en mi variante después de abrir o cerrar una operación el código se desplaza al menos 1 vez más. Al parecer, esta es la razón por la que el código se queda atascado en el "Mercado está cerrado" error
Para aclarar:
- se trata del probador
- apertura de sesión CFD se produce, por regla general, con un menor o mayor, pero la brecha, es decir, el precio de apertura calculado por el robot está en el nivel de "abrir ayer"
- en el primer tick, exactamente a las 16:00, el robot intenta abrir un acuerdo.
¿Tal vez es mejor mirar la especificación?
¿Por qué el primer tick a las 16:00 si la hora del primer tick es a las 16:30?
¿No sería mejor mirar la especificación?
¿Por qué el primer tick a las 16:00 si la hora del primer tick es las 16:30?
Sí, por supuesto que es 16:30
Gracias por notar el error tipográfico - He corregido el texto.
He añadido una línea a OnTick().
Este problema en particular fue resuelto - puse un contador de errores en la función de apertura de operaciones, en la ejecución anual no hay errores.
Esto significa que son sólo estas fracciones de segundo (o segundos/minutos) al abrir una sesión.
Pero todavía me gustaría tener una función que informe sobre la disponibilidad del mercado.
Me pregunto si las personas que se toman la molestia de superar los problemas del auto-tester,
¿utilizan sus robots en absoluto?
Es que a veces se solucionan errores que en la vida real causarían como mínimo una regañina en las revistas.
Puedo entender cuando auto-tester da trucos sobre lotes extraños / pasos / artículos / balance_in_1 cent....
... Pero lo que el robot tenía que pisar en el funcionamiento normal - los intentos de hacer algo fuera de la sesión de negociación, o la bandera trading_forbidden es cómo ?
¿nunca ha ejecutado su robot excepto el probador local????