Respuesta

Es posible alcanzar el punto de equilibrio/activar el stop loss/salir de una operación después de...

9 respuestas

Umbral

Cliente, bbp_participant, comunidad, 723 respuestas.

Visitar el perfil

hace 10 años #112105

¿Es posible alcanzar el punto de equilibrio/activar el stop loss/salir de una operación después de 24 horas (barras)?
Mi estrategia es una estrategia de barra diaria.
Quiero alcanzar el punto de equilibrio después de exactamente 24 horas o salir si la operación no es ganadora después de exactamente 24 horas.
Veo que hay una opción "BarsSinceOrderOpen" pero esta opción tiene que timeframe opción. ¿Se puede añadir? ¿O hay otras posibilidades?

0

stearno

Cliente, bbp_participant, comunidad, 379 respuestas.

Visitar el perfil

hace 10 años #124337

¿Es esto lo que busca?

 

-Stearno

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 10 años #124363

puede hacerlo creando una regla para ello.

 

Algo así como:

 

IF(BarsSinceOrderOpen >= 1) // operación anterior al día

y OpenPL() > 0

ENTONCES 

mover SL a BE

 

 

y otra regla para cerrar la operación:

 

 

IF(BarsSinceOrderOpen >= 1) // operación anterior al día

y OpenPL() < 0

ENTONCES 

CerrarPosición

Mark
Arquitecto de StrategyQuant

0

Umbral

Cliente, bbp_participant, comunidad, 723 respuestas.

Visitar el perfil

hace 10 años #124383

Ustedes no leyeron la pregunta en su totalidad o tal vez yo no fui claro. Mis disculpas.
BarsSinceOrderOpen>=1 es exactamente lo que dije no funcionará porque no tiene opción de marco de tiempo. ¿Qué pasa si la orden fue introducida @ 23:00 ayer? Entonces se rompe el punto de equilibrio después de sólo 1 hora. BarsSinceOrderOpen no significa 24 horas. Simplemente significa una nueva barra. Esto podría ser 1 hora 2 horas 3 horas 4 horas 5 horas....
Estoy buscando el punto de equilibrio después de exactamente 24 horas (o 24 barras H1) para la estrategia D1.
que necesito hacer:

 

BarsSinceOrderOpen(Timeframe: PERIOD_H1) > 24

Pero no hay opción de plazo.

 

 

Mi estrategia es una estrategia de barra diaria.
Quiero alcanzar el punto de equilibrio después de exactamente 24 horas o salir si la operación no es ganadora después de exactamente 24 horas.
Veo que hay una opción "BarsSinceOrderOpen" pero esta opción no tiene *ninguna opción de marco temporal*. ¿Se puede añadir? ¿O hay otras posibilidades?

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 9 años #124435

Ok, lo tengo. Desafortunadamente, esto no es fácil de resolver en este momento, sin añadir la opción de marco de tiempo a Bars Since Order Open.

 

Pero puedes hacerlo usando una función personalizada. Añade las siguientes funciones en el archivo EA Wizard/code/CustomFunctions.mq4:

 

int sqGetBarsSinceEntryH1(int orderMagicNumber) {
   for (int cc = TotalPedidos() - 1; cc >= 0; cc-) {
      if (OrderSelect(cc, SELECT_BY_POS) ) {
 
         if((orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) && OrderSymbol() == Symbol()) {
            return (sqGetBarsFromOrderOpenH1());
         }
      }
   }
 
   return(-1);
}
 
int sqGetBarsFromOrderOpenH1() {
   datetime opTime = OrderOpenTime();
   int barsTOCheck = 30;
   int númeroDeBarras = 0;
   
   for(int i=0; i<=barsTOCheck; i++) {
      if(opTime < iTime(NULL, PERIOD_H1,i)) {
         numberOfBars++;
      }
   }
 
   return(numberOfBars);
}

 

y luego en el Asistente de EA en su condición puede llamar Función Personalizada: sqGetBarsSinceEntryH1(su número mágico) >= 24

Mark
Arquitecto de StrategyQuant

0

Umbral

Cliente, bbp_participant, comunidad, 723 respuestas.

Visitar el perfil

hace 9 años #124471

¡Impresionante! ¿Hay alguna forma de aplicar esto a la activación de TS?

 

Ahora sé cómo hacerlo con BE.

Este es mi intento de aplicarlo a la activación de TS.

 

Activación TS (variable) = TSAktivate

 

0

Umbral

Cliente, bbp_participant, comunidad, 723 respuestas.

Visitar el perfil

hace 9 años #124479

El EA no se carga correctamente después de cambiar el archivo CustomFunctions.mq4.
Lo subiré. Tal vez mi edición fue incorrecta.
He copiado y pegado todo el código que me has proporcionado y lo he añadido al final del archivo.

 

Aquí está mi trabajo también:

0

JTamas

Abonado, bbp_participant, comunidad, 26 respuestas.

Visitar el perfil

hace 9 años #124484

Yo probaría esto:

 

1. crear una variable : 'opentime'

2. Regla1#: SI la orden abierta en este minuto es verdadera ENTONCES asigne a la variable opentime = hour(0 bars ago)

3. Regla 2# IF barras desde orden abierta = 1 y Timecurrent = GetTime(opentime, 0, 0)

ENTONCES

lo que sea

 

Dado que desea cerrar después de 24 horas significa que sucederá a la misma hora que se abrió sólo un día después.

0

Umbral

Cliente, bbp_participant, comunidad, 723 respuestas.

Visitar el perfil

hace 9 años #124492

Un enfoque muy sencillo, me gusta.
Lo he probado, pero no funciona.

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 9 años #124520

Hola,

 

¿sigue sin funcionar? ¿Puede adjuntar aquí su estrategia?

Al revisar tu archivo CustomFunctions que adjuntaste no vi mis funciones agregadas ahí, y compiló correctamente.

Mark
Arquitecto de StrategyQuant

0

Viendo 9 respuestas - de la 1 a la 9 (de un total de 9)