STOP LOSS QUE SE SE MUEVE POR ESCALONES
Forums › ProRealTime foro Español › Soporte ProOrder › STOP LOSS QUE SE SE MUEVE POR ESCALONES
- This topic has 16 replies, 4 voices, and was last updated 2 years ago by robertogozzi.
-
-
09/14/2022 at 5:27 PM #200815
Hola, quisiera ayuda en la programación del siguiente sistema de stop loss:
En caso de compra:
- SL = 0,99 x Precio de compra (PC)
- Si el precio baja hasta 0,99 x PC → Salta el SL
- Cuando el precio suba por encima de 1.005 x PC → muevo el SL a breakeven → SL=PC
- Cuando el precio suba por encima de 1.01 x PC → muevo el SL a 1.005 x PC
- Cuando el precio suba por encima de 1.015 x PC → muevo el SL a 1.01 x PC
- Cuando el precio suba por encima de 1.02 x PC → muevo el SL a 1.015 x PC
Y así sucesivamente.
En el caso de venta sería a la inversa:
- SL = 1,01 x Precio de venta (PV)
- Si el precio sube hasta 1,01 x PV → Salta el SL
- Cuando el precio baje por debajo de 0.995 x PV → muevo el SL a breakeven → SL=PV
- Cuando el precio baje por debajo de 0.99 x PV → muevo el SL a 0.995 x PV
- Cuando el precio baje por debajo de 0.985 x PV → muevo el SL a 0.99 x PV
- Cuando el precio baje por debajo de 0.98 x PV → muevo el SL a 0.985 x PV
Y así sucesivamente.
Es decir, es un stop dinámico pero que se mueve por escalones.
Pero no tengo claro como programarlo.
Agradezco ayuda. Un saludo
09/16/2022 at 11:55 AM #200881Aquí está (no lo he probado):
1234567891011121314151617181920212223242526272829IF (OnMarket AND Not OnMarket[1]) OR (LongOnMarket AND ShortOnMarket[1]) OR (LongOnMarket[1] AND ShortOnMarket) THENPC = TradePriceIF LongOnMarket THENSet Stop Price (PC * 0.99)ELSIF ShortOnMarket THENSet Stop Price (PC * 1.01)ENDIFENDIFIF LongOnMarket THENIF close > (PC * 1.02) THENSet Stop Price (PC * 1.015)ELSIF close > (PC * 1.015) THENSet Stop Price (PC * 1.01)ELSIF close > (PC * 1.01) THENSet Stop Price (PC * 1.005)ELSIF close > (PC * 1.005) THENSet Stop BreakevenENDIFELSIF ShortOnMarket THENIF close < (PC * 0.98) THENSet Stop Price (PC * 0.985)ELSIF close < (PC * 0.985) THENSet Stop Price (PC * 0.99)ELSIF close < (PC * 0.99) THENSet Stop Price (PC * 0.995)ELSIF close < (PC * 0.995) THENSet Stop BreakevenENDIFENDIFHe ingresado el código de la vela después de la entrada, cuando sabes TRADEPRICE.
Tendrás que poner el Stop Loss en la entrada inmediatamente después de BUY y SELLSHORT.10/05/2022 at 6:05 PM #20195711/13/2022 at 8:12 AM #204054<p dir=”auto”>Hola Roberto,</p>
<p dir=”auto”>Al programar el código que me explicaste más arriba me ha surgido la siguiente duda (es muy básica, disculpa):</p>
El código pone para cada escalón, por ejemplo:…ELSIF Close > (PC * 1.005) THEN…
Mi duda es que con este código entiendo que hay que esperar a que se cierre la vela de ese minuto para que se mueva el SL. No se mueve si por ejemplo el precio supera ese 1.005 a mitad de vela ¿o me equivoco?
Yo quiero que el SL se mueva inmediatamente en cuanto el Precio supere ese valor (PC * 1.005), sin tener que esperar a que se cierre la vela (por ejemplo, en el segundo 30 de la vela de ese minuto)
Espero haberme explicado bien ¿Me puedes ayudar?
Gracias
11/13/2022 at 10:58 AM #20405911/13/2022 at 11:53 AM #204064Hola Phoentzs, muchísimas gracias por tu aporte.
Perdona la ignorancia ¿qué es MTF?
¿Te refieres a usar para los stop loss una temporalidad de por ejemplo 1 segundo?
(No lo mencioné pero el resto de mi sistema está en temporalidad de minutos)
Gracias
11/13/2022 at 4:31 PM #204108Sí exactamente. El soporte MTF le permite usar un marco de tiempo más pequeño, por lo que no tiene que esperar a que se cierre la vela más grande.
11/13/2022 at 5:21 PM #20411111/13/2022 at 6:14 PM #204115Tienes que buscar la palabra MTF y encontrarás muchos artículos y ejemplos. Esto es para comenzar https://www.prorealcode.com/blog/learning/approach-multi-timeframe-trading-prorealtime/ .
1 user thanked author for this post.
11/20/2022 at 7:13 PM #204523Hola roberto,
He incluido en mi sistema el código que me escribiste al principio de este post para que mi SL se moviera a BE y luego a TP mediante escalones. Lo verás a partir de la línea 59 (//Condiciones de salida). Sin embargo, las salidas no funcionan.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586//Cierre de la vela de las 15.59:a = (Time = CierreAyer)//Apertura de la vela de las 9.30:b = (Time = AperturaHoy)IF a THENCierre = CloseELSIF b THENApertura = OpenENDIFC0 = ABS((Apertura - Cierre) / Cierre)*100 >= Gap//Condición 1: Entrada a partir de la quinta vela y antes de la primera hora:C1 = Time > InicioHoraEntrada AND Time =< FinHoraEntrada//Defino las medias: Media larga y media corta:MediaLarga = Average[MLarga](close)MediaCorta = Average[MCorta](close)//Condición 2: Entrada a largo por encima de la media corta, la cual está por encima de la media larga, ambas ascendentes, al final de la primera vela verde después de una o varias rojas (retroceso):C21 = MediaCorta > MediaLargaC22 = MediaCorta[1] < MediaCortaC23 = MediaLarga[1] < MediaLargaC24 = Close > MediaCortaC25 = Close[1] < Open[1] AND Close > OpenC2 = C21 and C22 and C23 and C24 and C25//Condición 3: Entrada a corto por debajo de la media corta, la cual está por debajo de la media larga, ambas descendentes, al final de la primera vela roja después de una o varias verdes (retroceso):C31 = MediaCorta < MediaLargaC32 = MediaCorta[1] > MediaCortaC33 = MediaLarga[1] > MediaLargaC34 = Close < MediaCortaC35 = Close[1] > Open[1] AND Close < OpenC3 = C31 and C32 and C33 and C34 and C35//Condición 4: Una sola operación por día (la primera que dé entrada):C4 = (BarIndex - TRADEINDEX(1) > IntraDayBarIndex)//Condiciones de entrada:EntradaLargo = C0 AND C1 AND C2 AND C4EntradaCorto = C0 AND C1 AND C3 AND C4// Condiciones para entrada de posiciones largasIF NOT LongOnMarket AND EntradaLargo THENBUY 14000 CASH AT MARKETENDIF// Condiciones de entrada de posiciones cortasIF NOT ShortOnMarket AND EntradaCorto THENSELLSHORT 14000 CASH AT MARKETENDIF// Condiciones de salidaIF (OnMarket AND Not OnMarket[1]) OR (LongOnMarket AND ShortOnMarket[1]) OR (ShortOnMarket AND LongOnMarket[1]) THENPC = TradePriceIF LongOnMarket THENSet Stop Price (PC * 0.99)ELSIF ShortOnMarket THENSet Stop Price (PC * 1.01)ENDIFENDIFIF LongOnMarket THENIF close > (PC * 1.02) THENSet Stop Price (PC * 1.015)ELSIF close > (PC * 1.015) THENSet Stop Price (PC * 1.01)ELSIF close > (PC * 1.01) THENSet Stop Price (PC * 1.005)ELSIF close > (PC * 1.005) THENSet Stop BreakevenENDIFELSIF ShortOnMarket THENIF close < (PC * 0.98) THENSet Stop Price (PC * 0.985)ELSIF close < (PC * 0.985) THENSet Stop Price (PC * 0.99)ELSIF close < (PC * 0.99) THENSet Stop Price (PC * 0.995)ELSIF close < (PC * 0.995) THENSet Stop BreakevenENDIFENDIFPor ejemplo, lo he probado con AMZN en dos fechas:
El 29 de Abril de 2022. La entrada está bien, y debería salir con TP 1% en la vela de las 9.51. Sin embargo. El código no da punto de salida
El 13 de Junio de 2022. La entrada está bien, y debería salir con SL 1% en la vela de las 10.09. Sin embargo el código da el punto de salida a la vez que el de entrada.
Adjunto pantallazos de ambas operativas e informe detallado de ambas entradas.
No sé que puede fallar ¿la sintaxis es correcta? No entiendo por qué el sistema no la reconoce.
Agradezco de antemano tu ayuda.
Un saludo, Carlos
11/22/2022 at 9:42 AM #204618Cambia la última parte del código con:
1234567891011121314ELSIF ShortOnMarket THENIF close < (PC * 0.98) THENiprice = (PC * 0.985)ELSIF close < (PC * 0.985) THENiprice = (PC * 0.99)ELSIF close < (PC * 0.99) THENiprice = (PC * 0.995)ELSIF close < (PC * 0.995) THENSet Stop BreakevenENDIFset stop price ipriceENDIFgraphonprice ipricePara que pueda ver en el gráfico de precios dónde su código establece el stoploss durante las pruebas retrospectivas.
11/23/2022 at 7:54 PM #204700Hola Nicolas, he escrito el código que me dijiste.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788//Condición 0: Existencia de gap://Cierre de la vela de las 15.59:a = (Time = CierreAyer)//Apertura de la vela de las 9.30:b = (Time = AperturaHoy)IF a THENCierre = CloseELSIF b THENApertura = OpenENDIFC0 = ABS((Apertura - Cierre) / Cierre)*100 >= Gap//Condición 1: Entrada a partir de la quinta vela y antes de la primera hora:C1 = Time > InicioHoraEntrada AND Time =< FinHoraEntrada//Defino las medias: Media larga y media corta:MediaLarga = Average[MLarga](close)MediaCorta = Average[MCorta](close)//Condición 2: Entrada a largo por encima de la media corta, la cual está por encima de la media larga, ambas ascendentes, al final de la primera vela verde después de una o varias rojas (retroceso):C21 = MediaCorta > MediaLargaC22 = MediaCorta[1] < MediaCortaC23 = MediaLarga[1] < MediaLargaC24 = Close > MediaCortaC25 = Close[1] < Open[1] AND Close > OpenC2 = C21 and C22 and C23 and C24 and C25//Condición 3: Entrada a corto por debajo de la media corta, la cual está por debajo de la media larga, ambas descendentes, al final de la primera vela roja después de una o varias verdes (retroceso):C31 = MediaCorta < MediaLargaC32 = MediaCorta[1] > MediaCortaC33 = MediaLarga[1] > MediaLargaC34 = Close < MediaCortaC35 = Close[1] > Open[1] AND Close < OpenC3 = C31 and C32 and C33 and C34 and C35//Condición 4: Una sola operación por día (la primera que dé entrada):C4 = (BarIndex - TRADEINDEX(1) > IntraDayBarIndex)//Condiciones de entrada:EntradaLargo = C0 AND C1 AND C2 AND C4EntradaCorto = C0 AND C1 AND C3 AND C4// Condiciones para entrada de posiciones largasIF NOT LongOnMarket AND EntradaLargo THENBUY 14000 CASH AT MARKETENDIF// Condiciones de entrada de posiciones cortasIF NOT ShortOnMarket AND EntradaCorto THENSELLSHORT 14000 CASH AT MARKETENDIF// Condiciones de salidaIF (OnMarket AND Not OnMarket[1]) OR (LongOnMarket AND ShortOnMarket[1]) OR (ShortOnMarket AND LongOnMarket[1]) THENPC = TradePrice(1)IF LongOnMarket THENSet Stop Price PC * 0.99ELSIF ShortOnMarket THENSet Stop Price PC * 1.01ENDIFENDIFIF LongOnMarket THENIF close > PC * 1.02 THENiprice = PC * 1.015ELSIF close > PC * 1.015 THENiprice = PC * 1.01ELSIF close > PC * 1.01 THENiprice = PC * 1.005ELSIF close > PC * 1.005 THENSet Stop price ipriceENDIFELSIF ShortOnMarket THENIF close < PC * 0.98 THENiprice = PC * 0.985ELSIF close < PC * 0.985 THENiprice = PC * 0.99ELSIF close < PC * 0.99 THENiprice = PC * 0.995ELSIF close < PC * 0.995 THENSet Stop price ipriceENDIFENDIFgraphonprice ipriceResultado, dos comentarios:
He hecho el backtest en AMZN del 25 de Abril 2022 al 17 de Junio de 2022. En ese periodo el sistema da dos entradas: Una el 29 de Abril y otra el 13 de Junio.
- El 29 de Abril el código da la salida en la vela de las 10.10. Pero lo que yo quiero es que el Stop Price, una vez que ha bajado un 1% (vela de las 9.48) se mantenga o siga bajando al siguiente escalón. No quiero que vuelva a subir. Adjunto pantallazo
- El 13 de Junio el sistema no marca salida. De hecho sale a la misma vez que entra, en la vela de las 10.01. Adjunto pantallazo
Yo lo que quiero es que el SL se vaya moviendo según los “escalones” definidos, pero solo en una dirección. Es decir:
- Entrada a largo → Quiero que el stop price solo se mueva en dirección ascendente (hasta que la cotización corrija y toque el stop price). No quiero que el stop price “corrija”. Solo que ascienda o se mantenga. No que baje.
- Entrada a corto → Quiero que el stop price solo se mueva en dirección descendente (hasta que la cotización rebote y toque el stop price). No quiero que el stop price “rebote”. Solo que descienda o se mantenga. No que suba.
- Y quiero que funcione en todas las entradas de mi backtest. Ahora mismo solo funciona en la primera, pero en las siguientes no actúa, dando salida a la vez que la entrada.
He repasado el código una y otra vez y no consigo encontrar el fallo.
Agradezco tus comentarios.
Muchas gracias por adelantado
11/24/2022 at 10:07 AM #204752Please attach the ITF you used for your tests.
11/24/2022 at 10:57 AM #20475911/24/2022 at 12:10 PM #204766ITF is the extension of the file of your trading sustem when you export it from ProRealTime to your selected folder on your PC.
After exporting it, please post a message with that file attached. -
AuthorPosts
Find exclusive trading pro-tools on