Esta estrategia identifica patrones de candlestick para rastrear las señales de trading e incorpora la lógica de take profit y stop loss para el trading automatizado.
Identificar patrones de candelabro: Cuando el tamaño del cuerpo de la vela es menor que el umbral y la apertura es igual a cerrar, se identifica como señal de seguimiento.
Largo/corto: cuando se identifique un patrón de candelería de reversión, ir largo si el cierre anterior fue superior a hace 2 días, ir corto si el cierre anterior fue inferior a hace 2 días.
Los patrones de inversión de velas capturan efectivamente los puntos de inflexión del precio, mejorando la validez de las señales comerciales.
El mecanismo de toma de ganancias/detención de pérdidas controla eficazmente los riesgos, bloquea las ganancias, evita el aumento de las pérdidas.
La negociación automatizada sin intervención manual reduce los costes de negociación y mejora la eficiencia.
La subjetividad en la identificación de patrones de velas puede conducir a juicios erróneos.
Las configuraciones incorrectas del punto de toma de ganancias/detención de pérdidas pueden perder tendencias más grandes o detener pérdidas prematuramente.
Los parámetros estratégicos necesitan pruebas y optimización constantes, de lo contrario se sobreajustan.
Optimizar las condiciones de identificación de velas con más indicadores para mejorar la precisión.
Prueba en diferentes instrumentos de negociación, ajusta los puntos de toma de ganancias / stop loss, optimiza los parámetros.
Añadir un módulo de dimensionamiento de posición para ajustar dinámicamente las posiciones en función de los indicadores de referencia.
Esta estrategia identifica señales de reversión a través de patrones de velas y establece reglas de toma de ganancias/detención de pérdidas para la negociación automatizada. La estrategia es simple y práctica hasta cierto punto. Pero hay margen de mejora en términos de precisión de identificación y optimización de parámetros. Se recomienda realizar más pruebas y optimización antes de aplicarla en la negociación en vivo.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/01/2019 // This is a candlestick where the open and close are the same. // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title = "Doji Backtest", overlay = true) input_takeprofit = input(10, title="Take Profit pip", step=0.01) input_stoploss = input(10, title="Stop Loss pip", step=0.01) input_minsizebody = input(0.5, title="Min. Size Body pip", step=0.01) barcolor(abs(close - open) <= input_minsizebody ? open == close ? yellow : na : na) possell = 0.0 posbuy = 0.0 pospricebuy = 0.0 pospricesell = 0.0 barcolornow = blue pospricesell := close< close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) possell := iff(pospricesell > 0 , -1, 0) barcolornow := possell == -1 ? red: posbuy == 1 ? green : blue pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 , nz(pospricesell, 0)) pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 , nz(pospricesell, 0)) pospricebuy := close > close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) posbuy := iff(pospricebuy > 0 , 1, 0) barcolornow := posbuy == 1 ? green: barcolornow pospricebuy := iff(high >= pospricebuy + input_takeprofit and pospricebuy > 0, 0 , nz(pospricebuy, 0)) pospricebuy := iff(low <= pospricebuy - input_stoploss and pospricebuy > 0, 0 , nz(pospricebuy, 0)) barcolor(barcolornow) if (posbuy == 0 and possell == 0) strategy.close_all() if (posbuy == 1) strategy.entry("Long", strategy.long) if (possell == -1) strategy.entry("Short", strategy.short) pospricebuy := iff(high <= pospricebuy + input_takeprofit and pospricebuy > 0, 0 , nz(pospricebuy, 0)) pospricebuy := iff(low >= pospricebuy - input_stoploss and pospricebuy > 0, 0 , nz(pospricebuy, 0)) pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 , nz(pospricesell, 0)) pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 , nz(pospricesell, 0))