Sistema muy sencillo de MACD
Forums › ProRealTime foro Español › Soporte ProOrder › Sistema muy sencillo de MACD
- This topic has 4 replies, 3 voices, and was last updated 7 hours ago by
GraHal.
-
-
04/07/2025 at 5:18 PM #245701
Buenos días,
soy nuevo en el foro y en backtests de prorealtime y os quería pedir ayuda. Tengo un sistema ultra sencillo que quiero backtestear.
Entra largo cuando tanto la linea MACD como el histograma son positivos.
Sale de la posición cuando el histograma es negativo. Este es el código:
1234567891011121314151617defparam cumulateorders= false//indicadoresMimacd= MACDline[10,20,7](close)MiHisto= MACD[10,20,7](close)capital= 10000 + STRATEGYPROFIT//entrada cuando tanto la linea MACD como el histograma son positivosIF NOT longonmarket AND Mimacd>0 and MiHisto>0 THENcontratos = capital/closeBUY contratos SHARES AT MARKETENDIF//salida cuando el histograma es negativoif longonmarket and MiHisto<0 THENsell contratos SHARES AT MARKETENDIFPero estoy intentado añadir que la salida de la posición no sea automática sino que, cuando se dé la condición (histograma negativo), se active un stoploss un 1% por debajo del mínimo de esa barra.
En caso de que el histograma volviera a ser positivo, el stoploss se desactiva.
He creado una variable onceSLActive que con 1 indica stoploss activado y con 0 indica stoploss desactivado.
1234567891011121314151617181920212223242526272829303132defparam cumulateorders= false//indicadoresMimacd= MACDline[10,20,7](close)MiHisto= MACD[10,20,7](close)capital= 10000 + STRATEGYPROFIT// Variables de controlonceSLActive = 0stopPrice = 0.0//condicion de entradaIF NOT longonmarket AND Mimacd>0 and MiHisto>0 THENcontratos = capital/closeonceSLActive = 0BUY contratos SHARES AT MARKETENDIF//activacion del stoplossif longonmarket and onceSLActive = 0 and MiHisto<0 THENonceSLActive = 1stopPrice = close * 0.99ENDIF//desactivacion del stoploss porque el histograma vuelve a ser positivoif longonmarket and onceSLActive = 1 and MiHisto>0 THENonceSLActive = 0ENDIF// Ejecución del stop loss si el precio cae por debajo del stopPriceIF onceSLActive = 1 AND close <= stopPrice THENsell contratos SHARES AT MARKETonceSLActive = 0ENDIFel problema es que no me funciona. Lo unico que hace el backtest es hacer una compra al inicio del periodo y una venta al final.
Si fuerais tan amables de indicarme el error.
Muchas gracias.
04/08/2025 at 7:16 AM #245722Buenas. Esto creo que cumple con lo que buscas:
12345678910111213141516171819202122232425262728defparam cumulateorders= false//indicadoresMimacd= MACDline[10,20,7](close)MiHisto= MACD[10,20,7](close)capital= 10000 + STRATEGYPROFIT//entrada cuando tanto la linea MACD como el histograma son positivosIF NOT longonmarket AND Mimacd>0 and MiHisto>0 THENcontratos = capital/closeBUY contratos SHARES AT MARKETENDIFif longonmarket and MiHisto crosses under 0 THEN// ajuste del stop a 1% por debajo del minimostoploss = 0.99*lowelsif longonmarket and MiHisto crosses over 0 then// quitamos el stop loss (para largos)stoploss = 0elsif not onmarket then// aseguramos que no haya stop lossstoploss = 0ENDIFset stop price stoploss// representación del stop loss en el graficographonprice stoploss1 user thanked author for this post.
04/09/2025 at 4:26 PM #24576304/12/2025 at 12:46 PM #24584904/12/2025 at 1:08 PM #245850Respecto a lo anterior, ignórelo… Puedo verlo en el código disponible para Algos, etc.
¡Estos nervios por los aranceles me están afectando y me están quitando el sueño! 😉
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on