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 la última función tomaste la hora de inicio de la barra. así que aquí también, toma la hora de la barra, no la hora del tick.
Explícale a alguien que no entiende qué parámetro del código hay que cambiar por otro.
¿Cómo describir el tiempo de la barra y no el tiempo del tic?
Explícale a alguien que no entiende qué parámetro del código hay que cambiar por otro.
¿Cómo describir la hora de la barra en lugar de la hora del tic?
Explícale a alguien que no entiende qué parámetro del código hay que cambiar por otro.
¿Cómo describir el tiempo de una barra, no un tic?
Esta es una descripción popular del manejador de eventos "nueva barra"
En general, no tengas pereza de mirar a veces los artículos y el código base antes de hacer una pregunta
Вот тут все популярно описано Обработчик события "новый бар"
En general, no tengas pereza de mirar artículos y bases de código antes de hacer una pregunta.
En mql4 podías averiguar en cinco líneas si la barra era nueva o no. Y ahora se han escrito un montón de archivos, no está claro dónde ponerlos, qué escribir dentro del programa...
En fin, si hay expertos, que me den un ejemplo de código, para que no sufra, y yo mismo pueda mandar a cualquiera a la biblioteca, electrónica o real.
No lo dudo, pero lo pregunto sólo para comprobarlo: ¿alguien ha creado un mismo EA en mql4 y mql5 y ha comparado los resultados de las pruebas? Debería ser perfectamente similar si el código está bien transformado, ¿no? ¿O me equivoco?
Si la prueba es por barra y en mql5 la lógica se coloca en onTick, entonces será similar.
La única diferencia puede estar en los diferenciales. En el 5, la historia contiene los diferenciales. En la versión 4, la dispersión del probador es igual a la dispersión actual del terminal.
Si se comprueba "cada tic", parece que será aún menor, ya que los algoritmos de generación de tic son diferentes en las versiones.
En mql4 podías averiguar en cinco líneas si la barra era nueva o no. Y ahora se han escrito un montón de archivos, no está claro dónde ponerlos, qué escribir dentro del programa...
En fin, si hay expertos, que me den un ejemplo de código, para que no sufra, y yo mismo pueda enviar a cualquiera a la biblioteca, ya sea a la electrónica o a la real.
Aquí, declare la variable lastbar como estática o globalmente, el array iTime globalmente
Hay un ejemplo en la página con la función isNewBar
https://www.mql5.com/ru/forum/2804/38752#comment_38752
1. No he preguntado nada sobre los resultados de probar las mismas estrategias en mql4 y mql5.
Solía entrar en el mercado en una nueva barra si las condiciones cumplen los requisitos de entrada y cerrar la posición si los indicadores muestran la señal contraria y entrar de nuevo en una nueva barra.
En mql4 he utilizado este procedimiento para entrar en una nueva barra:
void Fun_New_Bar() // Ф-ия обнаружения ..
{ // ... nueva barra
static datetime New_Time=0; // Hora de la barra actual
New_Bar=false; // no hay barra nueva
if(Nuevo_tiempo!=Tiempo[0]) // Compara los tiempos
{
New_Time=Time[0]; // Ahora la hora es
New_Bar=true; // Se captura la nueva barra
}
}
Este es el resultado de probar el robot en mql4 usando mi estrategia:
Gracias por enviar los procedimientos para determinar el nuevo bar. Están trabajando. Hice un script que escribe Alerta en una nueva barra y lo probé en M1 para no esperar demasiado.
Pero la misma estrategia da resultados completamente diferentes (y los mismos) utilizando ambos procedimientos en mql5 Expert Advisor:
No me he desgarrado la camisa y pisado fuerte por nada. Quiero repetir los resultados, pero no coinciden.
Este es el aspecto aproximado de la función onStart en mql4
int inicio()
{
GetIns();
Fun_New_Bar();
si (Nueva_Barra==false) return(0);
si (Total()>0)
{
CloseSellEnd();
CloseBuyEnd();
}
si (Total()<1)
{
OpenBuy();
OpenSell();
}
return(0);
}
Lo mismo en mlq5:
void OnTick()
{
GetIns();
si (NewBar())
{
if (Total()>0) TryToClose();
si (Total()<1)
{
OpenBuy(Lots,10, "EUR/USD (Buy)",102406);
OpenSell(Lots,10, "EUR/USD (Sell)",102406);
}
}
}
GetIns para procesar los parámetros del indicador, y Total() - da el número de posiciones con la magia requerida para mql4 o con el símbolo requerido para mql5.
Ayuda.
Creo que he encontrado la razón de la discrepancia. No te lo vas a creer. La MT4 y la MT5 tienen un historial de cotizaciones diferente. ¡¡¡¡Parece ser ligeramente diferente y la estrategia se prueba con una gran diferencia!!!!
Aquí hay una parcela en diferentes terminales:
Si te fijas bien, hay una diferencia. ¿Una pequeña? ¿Y cuál es la diferencia entre los resultados de las pruebas de la estrategia, también pequeña?
Me pondré en contacto con los desarrolladores. ¡¡¡Qué beta!!!