no ejecuta stop loss
Forums › ProRealTime foro Español › Soporte ProOrder › no ejecuta stop loss
- This topic has 5 replies, 3 voices, and was last updated 1 hour ago by
robertogozzi.
-
-
04/25/2025 at 9:19 AM #246381
Hola comunidad, tengo el siguiente sistema:
// Condiciones de salida de posiciones cortas
// Exit on ATR
if shortonmarket and atr2 crosses under avgatr2 then
exitshort at marketSET STOP %LOSS 0.1
endif//trailing stop function
trailingstart = 20 //trailing will start @trailinstart points profit
trailingstep = 1 //trailing step to move the “stoploss”//reset the stoploss value
IF NOT ONMARKET THEN
newSL=0
ENDIF//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(3)-close>=trailingstart*pipsize THEN
newSL = tradeprice(4)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF//stop order to exit the positions
IF newSL>0 THEN
EXITSHORT AT newSL STOP
ENDIFpero tengo el problema de que no pone el stoploss, es decir, no lo ejecuta. Y no sé porqué. Alguien me puede echar una mano por favor.
04/25/2025 at 10:24 AM #246396Hola. Por lo que veo en las primeras líneas de código colocas el stop loss dentro de la condicion de salida por lo que no se va a ejecutar hasta que no se de la salida técnica de ATR que has puesto.
Si quieres colocar el stop loss lo puedes hacer fuera del condicional y siempre tendrás un stop loss en el nivel que tú decidas (no me meto en si lo tienes muy cerca o no).
Por otro lado tambien puedes colocar el stop loss dentro de un condicional para que se active/actualice al cumplirse las condiciones establecidas.04/25/2025 at 11:12 AM #24640004/25/2025 at 2:58 PM #246420por ejemplo,
1234if tuscondiciones thenbuy 1 contract at marketset stop %loss 5endifo
1234567//tus condiciones de entradaif xxxx thenbuy 1 contract at marketendifset stop %loss 5o
123if condicionesparaStop thenset stop %loss 5endif04/25/2025 at 4:01 PM #246424hola de nuevo Iván, no me he aclarado con la respuesta anterior. Necesito que el sistema ponga un stoploss y que éste vaya moviéndose con los parámetros del trailling que ya tengo codificados en mi sistema, y que también salga de la posición si el ATR cruza debajo de su media.
El problema está en que cuando el sistema realiza una operación no lanza el dichoso stoploss.
04/26/2025 at 12:09 PM #246440En estas líneas, SET STOP no se ejecuta para la operación actual porque se cerró en la línea anterior.
Por lo tanto sólo es válido para operaciones posteriores.1234567// Condiciones de salida de posiciones cortas// Exit on ATRif shortonmarket and atr2 crosses under avgatr2 thenexitshort at marketSET STOP %LOSS 0.1endifMueva SET STOP a la línea después de SELLSHORT:
1234IF Not OnMarket AND (sma1 CROSSES UNDER sma2) THENSELLSHORT 1 Contract at MarketSET STOP %LOSS 0.1ENDIFUtilice TRADEPRICE o TRADEPRICE(1), no TRADEPRICE(3) ni TRADEPRICE(4), que también son precios de salida de operaciones anteriores.
Este es el código actualizado:
12345678910111213141516171819202122232425262728293031323334353637383940414243sma1 = Average[20,0](close)sma2 = Average[50,0](close)atr2 = AverageTrueRange[14](close)avgatr2 = average[10,0](atr2)IF Not OnMarket AND (sma1 CROSSES UNDER sma2) THENSELLSHORT 1 Contract at MarketSET STOP %LOSS 1.0ENDIF// Condiciones de salida de posiciones cortas// Exit on ATRif shortonmarket and atr2 crosses under avgatr2 thenexitshort at marketendif//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 1 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENEXITSHORT AT newSL STOPENDIFgraphonprice Tradeprice * 1.001 AS "Stop Loss" coloured("Red")graphonprice NewSL AS "Trailing Stop" coloured("Blue")Añadí, al final, dos líneas con GRAPHONPRICE para que podáis ver en el gráfico el Stop Loss 0,1% (en Rojo) y el Trailing Stop (en Azul).
-
AuthorPosts
Find exclusive trading pro-tools on