Indicador de entrada y salida
Forums › ProRealTime foro Español › Soporte ProOrder › Indicador de entrada y salida
- This topic has 9 replies, 3 voices, and was last updated 7 years ago by Pere.
-
-
06/18/2016 at 1:31 PM #9541
Buenos días.
He hecho un indicador para entrar y salir, pero no me acaba de funcionar.
Está basado en el Inverse Fisher Transform aplicado al RSI. Según Prorealtime, genera una orden de compra cuando la curva cruza al alza 50 y vende cuando cruza a la baja 80.
En cortos, vende cuando cruza a la baja 50 y compra cuando cruza al alza 20.
He hecho el siguiente código:
Ind=RSI[n](Close)
x = 0.1 * (Ind – 50)
y = (EXP (2 * x) – 1) / (EXP (2 * x) + 1)
z = 50 * (y + 1)
IF z CROSSES OVER 50 THEN
a=1
ENDIF
IF z CROSSES UNDER 80 THEN
b=1
a=0
ELSE
b=0
ENDIF
IF z CROSSES UNDER 50 THEN
c=-1
b=1
ENDIF
IF z CROSSES OVER 20 THEN
d=-1
c=0
ELSE
d=0
ENDIF
RETURN a AS “Entrada largos”, b AS “Salida largos”, c AS “Entrada cortos”, d AS “Salida cortos”pero no funciona correctamente. Alguien sabe dónde está el error?
06/19/2016 at 9:44 AM #9554Parece que lo he solucionado bastante bien, aunque se puede mejorar. Me complicaba bastante la vida. Por si le puede ser de utilidad a alguien, ahí ve el código corregido:
1234567891011121314151617181920212223REM Inverse Fisher Transform aplicado al RSIREM Parámetros: n = períodos del RSI//n = 9Ind=RSI[n](Close)x = 0.1 * (Ind - 50)y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)z = 50 * (y + 1)IF z CROSSES OVER 50 THENa=1ELSIF z CROSSES OVER 80 THENa=1ELSIF z CROSSES UNDER 80 THENa=0ENDIFIF z CROSSES UNDER 50 THENa=-1ELSIF z CROSSES UNDER 20 THENa=-1ELSIF z CROSSES OVER 20 THENa=0ENDIFRETURN a AS "Entrada-Salida", 0 AS "cero"06/19/2016 at 7:34 PM #956806/20/2016 at 6:40 AM #9571Como ya dije que se podía mejorar, aquí tenéis el código un poco más pulidito. Me olvidaba decir que las dos salidas hay que ponerlas en histograma, verde para largos y rojo para cortos. También hay que añadir la variable n, aunque el valor por defecto de 9 funciona bastante bien.
12345678910111213141516171819202122232425262728REM Inverse Fisher Transform aplicado al RSIREM Parámetros: n = período para el cálculo del RSI//n = 9Ind=RSI[n](Close)x = 0.1 * (Ind - 50)y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)z = 50 * (y + 1)IF z CROSSES OVER 50 THENa=1ELSIF z CROSSES OVER 80 THENa=1ELSIF z CROSSES UNDER 80 THENa=0ENDIFIF z CROSSES UNDER 50 THENa=0ENDIFIF z CROSSES UNDER 50 THENb=-1ELSIF z CROSSES UNDER 20 THENb=-1ELSIF z CROSSES OVER 20 THENb=0ENDIFIF z CROSSES OVER 50 THENb=0ENDIFRETURN a AS "Largos", b AS "Cortos", 0 AS "cero"06/20/2016 at 11:27 AM #958212/04/2016 at 1:44 PM #17778Soy principiante y novato, estoy iniciandome y, pretendo utilizar dos medias, una corta y otra larga para aplicar el siguiente desarrollo….
SOS: necesito que me lo ordeneis y completeis… (estoy bloqueao).
_______________________________________
REM Inverse Fisher Transform aplicado al RSI
REM Parámetros: n = período para el cálculo del RSI
//n = 9
Ind=RSI[9](Close)
x = 0.1 * (Ind – 50)
y = (EXP (2 * x) – 1) / (EXP (2 * x) + 1)
z = 50 * (y + 1)ELSIF z CROSSES UNDER 80 THEN //a=0
IF z CROSSES UNDER 50 THEN //a=0IF z CROSSES UNDER 50 THEN //b=-1
ELSIF z CROSSES UNDER 20 THEN //b=-1BUY 1 SHARES AT MARKET
ENDIF
IF z CROSSES OVER 50 THEN //a=1
ELSIF z CROSSES OVER 80 THEN //a=1ELSIF z CROSSES OVER 20 THEN //b=0
IF z CROSSES OVER 50 THEN //b=0SELLSHORT 1 SHARES AT MARKET
ENDIF//RETURN a AS “Largos”, b AS “Cortos”, 0 AS “cero”
_________________________________
Parece que hay conceptos que ProRalTime no acepta…
Muchas gracias por la atencion
12/04/2016 at 2:09 PM #17779Hola Parquecesped.
Hay varios fallos de programación en ese texto, donde evidentemente PRT dará error.
Antes que corregirlo, y suponiendo que quieres hacer lo que yo hice hace ya tiempo, te paso el código que programé. Pon el indicador “Señal” en forma de histograma, dale color verde y rojo y te dará los diferentes niveles de entradas y salidas.
1234567891011121314151617181920212223242526272829303132REM Inverse Fisher Transform aplicado al RSI: FisherSIRSI2REM Parámetros: n = períodos para el cálculo del RSIn = 9Ind=RSI[n](Close)x = 0.1 * (Ind - 50)y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)z = 50 * (y + 1)IF z CROSSES UNDER 50 THENa=0ELSIF z CROSSES OVER 85 THENa=2ELSIF z CROSSES OVER 99 THENa=3ELSIF z CROSSES UNDER 99 THENa=2ELSIF z CROSSES UNDER 85 THENa=1ELSIF z CROSSES OVER 50 THENa=0ELSIF z CROSSES UNDER 15 THENa=-2ELSIF z CROSSES UNDER 1 THENa=-3ELSIF z CROSSES OVER 1 THENa=-2ELSIF z CROSSES OVER 15 THENa=-1ELSIF z CROSSES OVER 50 THENa=0ENDIFRETURN a AS "Señal"12/04/2016 at 2:24 PM #17781Has mezclado mal la programación para hacer un indicador con la programación para realizar trading automático. No te aconsejo de que empieces a operar con el trading automático antes de comprender bien cómo funciona todo, a no ser que lo quieras para hacer backtests. Si es así, tienes que cambiar los diferentes conceptos: primero establece los diferentes indicadores, y luego haz la parte de Proorder con esos indicadores. Si quieres te doy un ejemplo con sistemas simples del tipo medias, y luego tú lo adaptas al indicador anterior:
1234567891011121314151617181920212223242526272829303132333435363738// Definición de los parámetros del códigoDEFPARAM CumulateOrders = False // Acumulación de posiciones desactivadaREM Stop losssl=50//Variablessl=10p=5MyEMA=ExponentialAverage[p](close)IF close CROSSES OVER MyEMA THENk=1ELSIF close CROSSES UNDER MyEMA THENk=-1ENDIF// Condiciones para entrada de posiciones largasIF k=1 THENBUY 1 CONTRACT AT MARKETENDIF// Condiciones de salida de posiciones largasIF k=-1 THENSELL AT MARKETENDIF// Condiciones de entrada de posiciones cortasIF k=-1 THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Condiciones de salida de posiciones cortasIF k=1 THENEXITSHORT AT MARKETENDIF// Stops y objetivosSET STOP pLOSS sl12/10/2016 at 2:55 PM #18206Agradezco tu atencion. Estoy siguiendo tu guion y practicando backtests.
Te agraderia algunas instruccions basicas sobre como optimizar, lo que no se debe de hacer y, si es posible los pasos a seguir… (la peticion te la hace un estudiante sexagenario..).
Agradezo la estupenda labor que estais desarrollando.Quedo a vuestra disposicion
Saludos y Feliz Navidad12/10/2016 at 3:56 PM #18211Pues de sexagenario (casi septuagenario) a sexagenario, no te puedo recomendar en general lo que debes hacer, depende de lo que tengas en mente. Lo único que te puedo recomendar es estudiar mucho, aprender a programar con el Probuilder (hay un PDF por ahí, aunque le faltan muchas cosas, busca en Google), muchas pruebas con backtests (bájate el PDF Probacktest y Proorder), y sobre todo no hagas trading en real (siempre en demo) hasta después de 1,5-2 años de haber empezado. Si tienes alguna duda concreta, pregunta e intentaré ayudarte. Pero lo más importante, bájate esos tres documentos y estudia.
-
AuthorPosts
Find exclusive trading pro-tools on