Respuesta

¡¡EXIT RULE en MT4 problema!!

18 respuestas

Gaudio Fx

Abonado, bbp_participant, comunidad, 22 respuestas.

Visitar el perfil

hace 8 años #114590

Hola,
Me pongo en contacto con ustedes porque tengo un gran problema que se plantea en muchas circunstancias a la hora de generar estrategias y estrategias de mejora
El problema que se refleja muchas veces, es el siguiente:
cuando compruebo la "Regla de salida (precio + + operadores indicadores ...)", strategyquant en condiciones específicas, utilizando una solución muy buena como este ejemplo que te doy a continuación:
estas son las condiciones de la estrategia de salidacuant
y esto es lo que sucede en lugar de metatrader4
ambas posiciones cortas en este caso tienen las condiciones de salida antes de la entrada porque el volumen es mayor que el avarage 50 (línea roja) y MetaTrader abre y cierra al mismo tiempo.
Esto, sin embargo, 'no sucede en strategyquant, ya que se supone que la condición de salida debe iniciarse sólo en el cierre de la vela de entrada
Sería como decir que la condición de salida es al cierre de la vela de entrada y esta, en muchas circunstancias es muy bueno. pero metatrader no sucede y abre y cierra al mismo tiempo sin esperar a la finalización de la vela, como ocurre en strategyquant, dándome buenos resultados
¿como le hago saber a metatrader que debe esperar al cierre de la vela de entrada y luego activar las reglas de salida como estrategiaquant?
muchas gracias
PS:
LA LOGICA QUE USO NO ES BUENA PARA OPERAR..PERO LA PREGUNTA ES LA MISMA
no es lógico lo sé .. pero era sólo un ejemplo .. es el concepto que creo que es importante, o si la "regla de salida está activo antes de la apertura del comercio, POR QUÉ en metatrader4 está activo al mismo tiempo la apertura, mientras que en strategyquant está activo sólo en el cierre de la vela ????? .. ESTA ES LA PREGUNTA ... no para la salida ejemplo lógico ... 

puedo cambiar esta regla de salida por una mas logica igual esta:

 

 

¡¡¡pero si esta condicion es verdadera antes de la orden, en metatrader el cierre es en el mismo punto que la apertura ..pero en strategyquant el cierre es despues del cierre de la vela!!! .. quiero la misma condición en MT4...ES POSIBLE?

0

mikeyc

Cliente, bbp_participant, comunidad, 877 respuestas.

Visitar el perfil

hace 8 años #134663

Esa regla de salida no tiene sentido lógico para mí.

 

¿Por qué un volumen por encima de la media significaría cerrar una posición corta y un volumen por debajo de la media significaría cerrar una posición larga o viceversa? Esto parece otro ejemplo de extraña lógica en la elección de reglas simétricas.

 

El hecho de que el volumen sea superior o inferior a la media no tiene un sesgo direccional.

0

Gaudio Fx

Abonado, bbp_participant, comunidad, 22 respuestas.

Visitar el perfil

hace 8 años #134664

no es lógico lo sé .. pero era sólo un ejemplo .. es el concepto que creo que es importante, o si la "regla de salida está activo antes de la apertura del comercio, POR QUÉ en metatrader4 está activo al mismo tiempo la apertura, mientras que en strategyquant está activo sólo en el cierre de la vela ????? .. ESTA ES LA PREGUNTA ... no para la salida ejemplo lógico ...

puedo cambiar esta regla de salida por una mas logica igual esta:

 

¡¡¡pero si esta condicion es verdadera antes de la orden, en metatrader el cierre es en el mismo punto que la apertura ..pero en strategyquant el cierre es despues del cierre de la vela!!! .. quiero la misma condición en MT4...ES POSIBLE?

0

mikeyc

Cliente, bbp_participant, comunidad, 877 respuestas.

Visitar el perfil

hace 8 años #134665

Parece que son órdenes pendientes (órdenes limitadas o stop). Está seguro de que se están cerrando y no borrando?

 

¿Qué muestra la pestaña de resultados en MT4 en lugar del gráfico?

0

Gaudio Fx

Abonado, bbp_participant, comunidad, 22 respuestas.

Visitar el perfil

hace 8 años #134666

sí sí estoy 100% seguro ... órdenes se abren y cierran a la vez
el informe sobre mt4 es claro acerca de la apertura y cierre ..
 
Repito: strategyquant activa la regla de salida inmediatamente después del cierre de la vela en la que abrió el comercio
en lugar mt4 esto no sucede, la regla de salida está activa al mismo tiempo la apertura.
 
¿cómo controlo para esperar el cierre de la vela?
¿Tengo que añadir manualmente una modificación a las estrategias? ¿Puede explicar cómo puedo llenar este cambio para que esto suceda?
 
He probado con cerrar (1) abrir (1) pero no va, luego he probado con cloase (2) abrir (1) y cualquier orden la abre correctamente..: /

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 8 años #134667

Gaudio, me parece que las condiciones de entrada y salida a veces pueden "colisionar" y dependiendo de la precisión del backtesting se obtienen comportamientos diferentes como la salida inmediata después de la entrada. ¿Puedes enviarme la estrategia (archivo *.STR) a [email protected] ¿para poder verificarlo? La solución aquí puede ser un arreglo para SQ o editar el código de su estrategia para esperar el cierre de la barra.

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visitar el perfil

hace 8 años #134673

Sí, es un problema de precisión. Si usted backtest tal estrategia con tick-datos reales, actúa el mismo en SQ también y fallará. Así que asegúrate de verificar siempre las estrategias con datos reales de los últimos años al menos para evitar estas cosas. Personalmente yo nunca usaría "volumen" para ninguna lógica de trading ya que el volumen es totalmente diferente entre cada broker. Lo mismo para "hora", excepto en el caso de que sepas que los datos históricos que estás utilizando están absolutamente sincronizados con tu broker actual.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

mikeyc

Cliente, bbp_participant, comunidad, 877 respuestas.

Visitar el perfil

hace 8 años #135652

 

 
Repito: strategyquant activa la regla de salida inmediatamente después del cierre de la vela en la que abrió el comercio
en lugar mt4 esto no sucede, la regla de salida está activa al mismo tiempo la apertura.
 

 

 

Acabo de encontrar este problema con SQ vs MT4 también.

 

En SQ, la posición se abre en la apertura de la barra, y la posición se cierra al final de la barra/apertura de la barra siguiente. En MT4 (utilizando la precisión de cada tick), la orden se abre y se cierra inmediatamente en la apertura de la barra.

 

Así que en MT4 no se ve ningún beneficio, en SQ muy buena rentabilidad. Los resultados son completamente diferentes.

 

Esto sucede en estrategias que tienen una regla de salida que es verdadera al mismo tiempo que la regla de entrada es verdadera, lo que significa abrir una operación y cerrar una operación en esta barra. Parece SQ toma esto para significar, abrir el comercio en la barra abierta y cerrar al final de la barra, y la lógica MT4 hace tanto en la barra abierta.

 

Lo preocupante es que esto se aplica a muchas estrategias con reglas de entrada y salida.....

0

mikeyc

Cliente, bbp_participant, comunidad, 877 respuestas.

Visitar el perfil

hace 8 años #135653

Las pruebas iniciales muestran que puede "arreglar" las estrategias MT4 para que funcionen como lo hacen en SQ añadiendo una línea de código a la siguiente función:

void cerrarPosicionEnMercado() {
   ActualizarTarifas();
   doble precioCP;

   if(OrderType() == OP_BUY) {
      precioCP = Oferta;
   } else {
      precioCP = Oferta;
   }
   
   if(OrderOpenTime() >= Time[0]) return; // ¡Nueva línea de código! Salir si la orden se acaba de abrir

   rettmp = OrderClose(OrderTicket(), OrderLots(), priceCP, MaxSlippage);
}

0

Gaudio Fx

Abonado, bbp_participant, comunidad, 22 respuestas.

Visitar el perfil

hace 8 años #135655

 

Las pruebas iniciales muestran que puede "arreglar" las estrategias MT4 para que funcionen como lo hacen en SQ añadiendo una línea de código a la siguiente función:

void cerrarPosicionEnMercado() {
   ActualizarTarifas();
   doble precioCP;

   if(OrderType() == OP_BUY) {
      precioCP = Oferta;
   } else {
      precioCP = Oferta;
   }
   
   if(OrderOpenTime() >= Time[0]) return; // ¡Nueva línea de código! Salir si la orden se acaba de abrir

   rettmp = OrderClose(OrderTicket(), OrderLots(), priceCP, MaxSlippage);
}

 

Estoy muy contento de que por fin alguien se ha dado cuenta de que el problema no estaba en el backtest mt4 pero es un problema de STRATEGYQUANT .
Ahora, si he entendido bien, cuando la estrategia ha terminado, para resolver el problema, tengo que escribir en el código de la estrategia, las cadenas que usted acaba de informar .. ¿verdad?
Pero, ¿en qué punto de las líneas de código de la estrategia debo insertar esta línea de scripts?
¿te explicaste mejor donde los puse?
 
eres un genio
 
muchas gracias

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visitar el perfil

hace 8 años #135656

Sí, pero en realidad si lo piensas bien, SQ lo está haciendo mal en el backtest, no MT4. Si una regla para abrir y cerrar se aplica al mismo tiempo, la orden debe ser abierta y cerrada dentro de 2 ticks - tick 1 abrir, tick 2 cerrarla. Mantenerla durante una barra es menos válido que cerrarla inmediatamente como hace MT4. Así que en realidad SQ backtesting código debe ajustarse para cerrar la orden de inmediato también y para invalidar realmente la estrategia de esta manera también, porque eso es todo lo que es, no se puede tener una regla de apertura y cierre de aplicar en el mismo momento. Sería válido SI la estrategia TAMBIÉN tuviera la opción de mantener la operación al menos 1 barra, entonces de acuerdo, tu código MT4 de arriba sería correcto entonces. Pero si la regla de apertura y cierre son válidas al mismo tiempo, lo que hace SQ es exactamente lo que es lógicamente correcto y cómo una estrategia de este tipo en realidad también funcionaría si se opera manualmente. Por ejemplo, las reglas de orden dirían: abrir una operación si Cierre anterior > Apertura actual y cerrarla si Cierre anterior > Apertura actual. Lo que tendrías que hacer en ese caso para seguir las reglas es abrir la orden y cerrarla inmediatamente de nuevo - seguramente no tiene sentido, pero eso es justo lo que hacen también las estrategias que tienen tales reglas. Si dijera, abrir una operación si el cierre anterior > la apertura actual, mantener al menos 1 barra y cerrarla si el cierre anterior > la apertura actual, entonces está bien, esto tiene sentido.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

mikeyc

Cliente, bbp_participant, comunidad, 877 respuestas.

Visitar el perfil

hace 8 años #135658

Busca en el archivo mq4 closePositionAtMarket()

 

Añada la línea

 

si(OrderOpenTime() >= Tiempo[0]) devolver; // ¡Nueva línea de código! Salir si la orden se acaba de abrir

 

Donde lo he mostrado.

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visitar el perfil

hace 8 años #135660

Sí, entiendo perfectamente lo que quieres decir, pero eso equivale a una regla extra de "mantener la operación al menos 1 barra antes de salir", que no es una regla en SQ para esa estrategia como dices y por lo tanto es incorrecta LOGICAMENTE. Seguramente tu arreglo hace lo que tu quieres que haga, lo entiendo, pero logicamente sigue sin ser correcto. Si usted tiene las mismas reglas para abrir y cerrar aplicando al mismo tiempo, para traducir la lógica de SQ correctamente a MT4, la orden DEBE ser abierta y cerrada dentro de 2 ticks si se expone al mercado real. Claro, SI añades la regla extra de "mantener al menos 1 barra", entonces tu solución es correcta, pero como esa regla no está en la estrategia original en SQ, no es correcto hacerlo así en MT4. Sólo digo, es un problema de lógica y SQ actúa correctamente aquí, no es un error realmente, sino exactamente cómo tales reglas (sin la regla extra "mantener la operación al menos 1 barra") actuarían en el comercio en vivo.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

mikeyc

Cliente, bbp_participant, comunidad, 877 respuestas.

Visitar el perfil

hace 8 años #135663

Sólo estoy proponiendo una solución para hacer que MT4 se comporte como lo hace SQ. Nadie tiene que hacer esto, pero si quieren que el comercio en vivo para que coincida con SQ, esto es lo que se necesita.

0

Gaudio Fx

Abonado, bbp_participant, comunidad, 22 respuestas.

Visitar el perfil

hace 8 años #135664

Busca en el archivo mq4 closePositionAtMarket()

 

Añada la línea

 

if(OrderOpenTime() >= Time[0]) return; // ¡Nueva línea de código! Salir si la orden se acaba de abrir

 

Donde lo he mostrado.

okok ..

 

si quiero esto en "o" lógico y no en "si", ¿cambió "si" por "o"?

 

Ej: or(OrderOpenTime() >= Time[0]) return; // ¡Nueva línea de código! Salir si la orden se acaba de abrir

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visitar el perfil

hace 8 años #135665

Sólo estoy proponiendo una solución para hacer que MT4 se comporte como lo hace SQ. Nadie tiene que hacer esto, pero si quieren que el comercio en vivo para que coincida con SQ, esto es lo que se necesita.

 

Sí, con datos de tick backtesting sin embargo, SQ abre y cierra la orden dentro de 2 ticks, así, al igual que MT4 hace.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

Viendo 15 respuestas - de la 1 a la 15 (de un total de 18)

1 2