Hola ,
Tengo una estrategia donde primero se deben cumplir unas condiciones y luego otras,
que conector he de usar? he intentado con CONTINUE , NEXT,o con variable pero me da error.
Adjunto la image .
CONTINUE y NEXT se usan con iteraciones, no tienen nada que ver con IF … ENDIF.
No hay palabra reservada CONNECTOR. SIEMPRE publique su código, aunque parcialmente si lo desea.
I = 0 nunca se usa, por lo que puede eliminarlo y combinar TODAS sus condiciones en una sola línea.
Hola roberto , gracias por contestar y la rapidez
el problema es que una condición es previa ya que se utiliza el mismo indicador.
primero quiero que este por debajo de SMA y cuando toque o supere entonces entrar
lo mismo me pasa con dos condiciones más .
Te adjunto el codigo.
Gracias
// Condiciones de entrada de posiciones cortas
c1 = close < Average[200](close)
c2 = summation[50](close < Average[200](close))
indicator1, indicator2 = CALL "PRC_Voss Predictive Filter VPF"[20, 3, 0.25]
c3 = indicator1 < indicator2
myLAGUERRE1 = CALL "filtro de laguerre"[20, 5]
c4 = close > myLAGUERRE1
c5 = close > Average[200](close)
c6 = indicator1 CROSSES OVER indicator2
c7 = close[3] < close
IF NOT ShortOnMarket AND c1 AND c2 and c3 and c4 and c5 and c6 and c7 Then
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
s1 = indicator2 CROSSES OVER indicator1
s2 = close[2] > close
IF ShortOnMarket AND s1 and s2 THEN
EXITSHORT AT MARKET
ENDIF
Te refieres a la línea 12, prueba esta:
ONCE X = 3 * pipsize
c6 = (indicator1 CROSSES OVER indicator2) OR (indicator1 = indicator2) OR (indicator1 >= (indicator2 + X))
esto verificará si lo ha cruzado o “tocado”, pero TOUCH no existe, es solo una condición visual y no se puede codificar exactamente. Por lo tanto, agregué si SON iguales (realmente touching, pero una condición muy rara, si es posible) y si el indicador1 sigue siendo unedr indicador2 pero lo suficientemente cerca como para considerarse “touching“, establece el número de pips que se pueden considerar cercanos suficiente para imitar “tocar”. Espero que esto sea lo que estás buscando.
muchas gracias roberto , esto me servira para afinar mas las entradas .
pero a lo que yo me referia es que al validar el programa no me da ninguna entrada ni salida y es porque
c1 = close < Average[200](close)
c2 = summation[50](close < Average[200](close))
y
c5 = close > Average[200](close)
y aqui esta el problema , yo quiero que primero se cumplan c1 y c2 , cuando se hayan cumplido y después se cumpla c5 . espero haberme explicado mejor .
Gracias.
Este debería hacer:
ONCE cx = 0
IF OnMarket THEN
cx = 0
ENDIF
// Condiciones de entrada de posiciones cortas
c1 = close < Average[200](close)
c2 = summation[50](close < Average[200](close))
indicator1, indicator2 = CALL "PRC_Voss Predictive Filter VPF"[20, 3, 0.25]
c3 = indicator1 < indicator2
myLAGUERRE1 = CALL "filtro de laguerre"[20, 5]
c4 = close > myLAGUERRE1
IF cx = 0 THEN
cx = c1 AND c2 AND c3 AND c4
ENDIF
c5 = close > Average[200](close)
c6 = indicator1 CROSSES OVER indicator2
c7 = close[3] < close
IF NOT ShortOnMarket AND cx and c5 and c6 and c7 Then
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
s1 = indicator2 CROSSES OVER indicator1
s2 = close[2] > close
IF ShortOnMarket AND s1 and s2 THEN
EXITSHORT AT MARKET
ENDIF
muchisimas gracias roberto!
ya lo ultimo(perdona por ser tan pesado).
Una vez que entra y sale como hago para que se reinicien las condiciones es decir que se vuelvan a cumplir de nuevo
porque con
c2 = summation[50](close < Average[200](close)) ,solo se me cumple una vez y yo quiero que se me cumpla otra vez empezando desde la salida de la ultima operacion.
Gracias de nuevo
Cuando está ON MARKET, la variable CX se restablece a 0, por lo que se reinicia desde el principio para dar cuenta de C1, C2, C3 y C4.
debo estar haciendo algo mal , porque con
c2 = summation[50](close < Average[200](close))
estoy diciendo que quiero la suma de 50 velas por debajo de la media de 200 para entrar corto y no se me cumple , te adjunto la imagen y codigo para que lo veas si puedes.
gracias
ONCE cx = 0
IF OnMarket THEN
cx = 0
ENDIF
// Condiciones de entrada de posiciones cortas
c1 = close < Average[200](close)
c2 = summation[50](close < Average[200](close))
indicator1, indicator2 = CALL "PRC_Voss Predictive Filter VPF"[20, 3, 0.25]
c3 = indicator1 < indicator2
myLAGUERRE1 = CALL "filtro de laguerre"[20, 5]
c4 = close > myLAGUERRE1
IF cx = 0 THEN
cx = c1 AND c2 AND c3 AND c4
ENDIF
c5 = close > Average[200](close)
c6 = indicator1 CROSSES OVER indicator2
c7 = close < close[1]
IF NOT ShortOnMarket AND cx and c5 and c6 and c7 Then
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
s1 = indicator2 CROSSES OVER indicator1
s2 = close > close[1]
IF ShortOnMarket AND s1 and s2 THEN
EXITSHORT AT MARKET
ENDIF
Por favor:
- trazar velas japonesas en su tabla, no HA
- explica lo que significan esas flechas
La gran línea roja es el SMA200? ¿En qué instrumento y marco de tiempo está negociando esta estrategia?
hola roberto , escribi en el otro foro para intentar no molestarte más pero muchas gracias .
te cuento, mi estrategia se basa en esto
Directrices anteriores:
1- El precio se ha de encontrar por debajo de SMA200 en las 50 velas anteriores
2-Voss predictive Filter 2 (linea azul) > Voss predictive Filter 1 (linea roja).
3-Precio por encima del Filtro de Laguerre.
Directrices para entrar a mercado:
1- El precio llega o supera SMA 200.
2-Voss predictive 2 (línea azul) cruza a la baja con Voss Predictive 1 (línea roja).
3-Esperar una vela bajista ( que no supere el máximo de la anterior).
4- Entrar.
Directrices para salir de mercado .
1-Voss predictive 1 (línea azul) cruza a la baja con Voss Predictive 2 (línea roja).
2-Dos velas contratendencia que superen sus màximos.
Stop-loss
1-Cuando entramos, si el precio está por encima del filtro de laguerre y no lo cruza en las siguentes 2 velas ,entonces cerrar.
2-Cuando entramos, si el precio está por debajo del filtro y lo cruza en las siguientes 2 velas, entonces cerrar.
entonces tenemos el codigo.
ONCE cx = 0
IF OnMarket THEN
cx = 0
ENDIF
// Condiciones de entrada de posiciones cortas
c1 = close < Average[200](close)
c2 = summation[50](close < Average[200](close))
indicator1, indicator2 = CALL "PRC_Voss Predictive Filter VPF"[20, 3, 0.25]
c3 = indicator1 < indicator2
myLAGUERRE1 = CALL "filtro de laguerre"[20, 5]
c4 = close > myLAGUERRE1
IF cx = 0 THEN
cx = c1 AND c2 AND c3 AND c4
ENDIF
c5 = close > Average[200](close)
c6 = indicator1 CROSSES OVER indicator2
c7 = close < close[1]
IF NOT ShortOnMarket AND cx and c5 and c6 and c7 Then
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
s1 = indicator2 CROSSES OVER indicator1
s2 = close > close[1]
IF ShortOnMarket AND s1 and s2 THEN
EXITSHORT AT MARKET
ENDIF
yo he estado tocando todas las variables y la que falla es c2 = summation[n](close < Average[200](close) , porque cuando disminuye [n] tendrian que salir mas operaciones y pasa al reves ,cuando disminuye n aumentan las operaciones.
esta estrategia la trabajo en forex , en graficos de 1min.5min,1h.
gracias por tu ayuda
Retire la línea 15 y la línea 17.
Reemplace CX en la línea 24 con
cx[1]
no no me funciona ,
en la imagen , el cuadro verde enseña donde tendria que haber entrado una operacion.con todas las condiciones cumpliendose ,
el grafico es aud/jpy , 5min
Creo que sus condiciones son casi imposibles de cumplir. ¿Me puede decir en qué instrumento, marco de tiempo, fecha y hora ha encontrado el más reciente manualmente?
si claro,
nok/jpy ,1min , 9:35 , hoy.
gbp/usd ,1 min ,17:01 hoy