Respuesta

condición THEN para utilizarla como condición IF en la segunda regla

12 respuestas

Pago

Cliente, bbp_participante, comunidad, 83 respuestas.

Visitar el perfil

hace 11 años #111005

Hola,

 

alguien sabe ¿cómo procesar el resultado de una regla #1 en una segunda regla?

 

Por ejemplo:

En la primera regla utilizo es la condición MACD > 0 si el resultado es verdadero quiero usar esta señal en la segunda regla.

 

Lo intento con Asignar Variable THEN, pero esta variable permanece aunque ya no se cumplan las condiciones IF.

 

 

Cezar

0

stearno

Cliente, bbp_participant, comunidad, 379 respuestas.

Visitar el perfil

hace 11 años #121260

Zar,

Tienes razón, la regla asignará la variable y luego no la volverá a tocar hasta que se cumplan las condiciones.

 

Así que lo que necesitas hacer es tener 2 reglas: La primera regla asigna la variable cuando MACD >0 y luego la segunda regla que asigna la variable cuando MACD<0. Entonces tu variable siempre será un reflejo de donde está el MACD.

 

-STearno

0

Pago

Cliente, bbp_participante, comunidad, 83 respuestas.

Visitar el perfil

hace 11 años #121262

Hola Stearno,

 

Tenía miedo que es el único camino. En la condición anterior era sólo un ejemplo simplificado, la condición es bastante complicada y condición para la inversa es muy complicado y pensé que de alguna manera puede resolver diferente.

Tengo otra idea. Sólo intento exportar la condición como un indicador y luego importarlo en el asistente con el fin de utilizar el sigal.

 

Cezar

0

stearno

Cliente, bbp_participant, comunidad, 379 respuestas.

Visitar el perfil

hace 11 años #121266

Suena bien. ¡Suerte!

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 11 años #121283

Hola,

¿alguien sabe cómo procesar el resultado de una regla #1 en una segunda regla?

Por ejemplo:

En la primera regla que uso es la condición MACD > 0 si el resultado es verdadero quiero usar esta señal en la segunda regla.

Lo intento con Asignar Variable THEN, pero esta variable permanece aunque ya no se cumplan las condiciones IF.

Hola Cezar,

lo que puedes hacer es procesar el resultado en la segunda regla, y luego establecer la variable a false de nuevo (mediante la función Asignar variable).

Mark

Mark
Arquitecto de StrategyQuant

0

Pago

Cliente, bbp_participante, comunidad, 83 respuestas.

Visitar el perfil

hace 11 años #121288

Hola Mark,

 

I no entiendo muy bien. ¿Puede darme un ejemplo concreto de esta función?

 

Cezar

 

 

 

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 11 años #121292

Me refería a algo así:

 

Regla 1:

SI la posición del mercado es plana y MACD > 0

ENTONCES

Asignar variable ThereIsSignal = 1

 

Regla 2:

IF ThereIsSignal = 1

ENTONCES

Entrar en el mercado
Asignar variable ThereIsSignal = 0

 

 

de esta manera la variable que fue fijada por la primera regla será unset cuando entras en el comercio, este fue su problema como yo undetstood.

 

Mark

Mark
Arquitecto de StrategyQuant

0

Pago

Cliente, bbp_participante, comunidad, 83 respuestas.

Visitar el perfil

hace 11 años #121303

GraciasEsa es la solución.

 

Cezar

0

518pip

Abonado, bbp_participant, comunidad, 8 respuestas.

Visitar el perfil

hace 11 años #121812

Me refería a algo así:

 

Regla 1:

SI la posición del mercado es plana y MACD > 0

ENTONCES

Asignar variable ThereIsSignal = 1

 

Regla 2:

IF ThereIsSignal = 1

ENTONCES

Entrar en el mercado
Asignar variable ThereIsSignal = 0

 

 

de esta manera la variable que fue fijada por la primera regla será unset cuando entras en el comercio, este fue su problema como yo undetstood.

 

Mark

Hola, estoy tratando con un problema similar, por favor ayuda. Cualquiera.

 

entrada múltiple si el precio por encima de 100 ema.

 

1ª entrada si 10 ema cruzan por encima de 20 ema, a continuación, entrar en el mercado con el objetivo.

 

2ª entrada si 10 ema cruza por encima de 20 ema de nuevo y el precio sigue por encima de 100 ema, entrar en el mercado. (a veces la 1ra puede no abrirse mas si el objetivo fue alcanzado)

 

mantener entrar en el mercado, siempre y cuando el precio por encima de 100 ema y muy tiempo 10 ema y 20 ema cruzar por encima de forma independiente.

 

He intentado asignar una variable, pero mi ea actual mantiene abierta la 1ª y 2ª entrada al mismo tiempo cuando se produce la 1ª entrada y se salta el resto de entradas válidas.

 

Gracias, señor,

0

Pago

Cliente, bbp_participante, comunidad, 83 respuestas.

Visitar el perfil

hace 11 años #121818

Hola, estoy tratando con un problema similar, por favor ayuda. Cualquiera.

 

entrada múltiple si el precio por encima de 100 ema.

 

1ª entrada si 10 ema cruzan por encima de 20 ema, a continuación, entrar en el mercado con el objetivo.

 

2ª entrada si 10 ema cruza por encima de 20 ema de nuevo y el precio sigue por encima de 100 ema, entrar en el mercado. (a veces la 1ra puede no abrirse mas si el objetivo fue alcanzado)

 

mantener entrar en el mercado, siempre y cuando el precio por encima de 100 ema y muy tiempo 10 ema y 20 ema cruzar por encima de forma independiente.

 

He intentado asignar una variable, pero mi ea actual mantiene abierta la 1ª y 2ª entrada al mismo tiempo cuando se produce la 1ª entrada y se salta el resto de entradas válidas.

 

Gracias, señor,

 

 

Hola 518pip,

 

Creo que no es necesario asignar una variable.

 

Regla 1: La primera entrada -> IsBarOpen es True && Oferta > EMA 100 && EMA 10 cruza por encima de EMA 20

Regla 2 La segunda entrada -> IsBarOpen es True && (Open P/L [Magic_first_entry] 0 o Closed P/L [Magic_first_entry] 0) && Bid > EMA 100 && EMA 10 cruce por encima de EMA 20   

 

Para cerrar puede utilizar una tercera regla con las condiciones de cierre.

 

 

Espero poder ayudarle. Si no, puede adjuntar la estrategia al mensaje para que podamos ayudarle de forma más concreta.

 

 

 

Cezar

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 11 años #121822

Hola, estoy tratando con un problema similar, por favor ayuda. Cualquiera.

 

entrada múltiple si el precio por encima de 100 ema.

 

1ª entrada si 10 ema cruzan por encima de 20 ema, a continuación, entrar en el mercado con el objetivo.

 

2ª entrada si 10 ema cruza por encima de 20 ema de nuevo y el precio sigue por encima de 100 ema, entrar en el mercado. (a veces la 1ra puede no abrirse mas si el objetivo fue alcanzado)

 

mantener entrar en el mercado, siempre y cuando el precio por encima de 100 ema y muy tiempo 10 ema y 20 ema cruzar por encima de forma independiente.

 

He intentado asignar una variable, pero mi ea actual mantiene abierta la 1ª y 2ª entrada al mismo tiempo cuando se produce la 1ª entrada y se salta el resto de entradas válidas.

 

Gracias, señor,

 

Puedes hacerlo así (mostraré sólo el lado largo):

 

——————–

Regla 1:

——————–

SI

OrderPosition(1000) no es Plana // nos aseguramos de que la primera orden ya está abierta

y Oferta > EMA(100) // asegúrese de que el precio está por encima de EMA(100)

y la EMA(10) cruza por encima de la EMA(20)

ENTONCES

Entrar en el mercado con el número mágico (2000)

 

——————–

Regla 2:

——————–

SI

OrderPosition(1000) es Plana // nos aseguramos de que la orden no está ya abierta

y Oferta > EMA(100) // asegúrese de que el precio está por encima de EMA(100)

y la EMA(10) cruza por encima de la EMA(20)

 

ENTONCES

Entrar en el mercado con el número mágico (1000)

 

 

 

Esto debería funcionar. La segunda regla se encarga de tomar cualquier señal cuando EMA(10) cruza EMA(20) y la Regla 1 se encarga del caso especial de que la primera orden ya está abierta.

Las normas tienen que estar en este orden.
Tal vez tendría que añadir también Is Bar Open = true a ambas reglas para asegurarse de que las operaciones se abren sólo en la apertura de la barra.

Mark
Arquitecto de StrategyQuant

0

boomza100

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 11 años #121844

Hola a todos,

 

Tengo una pregunta similar, en línea con el tema de este hilo.

 

Sigo recibiendo nuevas posiciones abiertas, con cada nuevo tick.

 

Lo que quiero hacer es abrir una posición sólo una vez, si se cumplen mis condiciones.

 

Si ya hay una posición abierta, no abra otra.

 

Si se ha cerrado una posición, se puede abrir otra si se cumplen las condiciones.

 

Mi código es el siguiente.

 

 

 

——————–

Regla 1:

——————–

 

IF IsBarOpen es True

 

y alguna otra condición //demasiado largo para repetirlo aquí, pero no importa

 

y OrderPosition(MagicLong) es Plana //es decir: no hay posiciones abiertas ??? (¿es correcto?)

 

ENTONCES Entre en el Mercado (MagicLong)

 

 

Según tengo entendido, sólo se puede abrir una posición por número mágico, sin embargo, sigue abriendo nuevas posiciones cada tick.

 

Alguna sugerencia,

 

Gracias.

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 11 años #121915

Hola,

 

condición OrderPosition(MagicLong) es Flat realmente es verdadera si no hay posiciones abiertas, por lo que sus condiciones son correctas.

 

Según tengo entendido, sólo se puede abrir una posición por número mágico, sin embargo, sigue abriendo nuevas posiciones cada tick.

 

Si, no deberia abrir multiples posiciones con el mismo numero magico. Si abre una nueva posición cada tick hay algún problema o posible bug. ¿Puede publicar su estrategia (archivo .sqw) aquí?

Mark
Arquitecto de StrategyQuant

0

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