La estrategia de seguimiento de tendencia de la cruz de oro es una estrategia de trading cuantitativa que utiliza líneas de tendencia de soporte/resistencia y promedios móviles como señales alternativas para seguir tendencias.
Esta estrategia consta de cuatro componentes principales:
Específicamente, la estrategia utiliza en primer lugar las funciones de solicitud de seguridad para obtener los máximos y mínimos más altos en los últimos 30 días y 30 semanas respectivamente, trazando líneas de soporte y resistencia dinámicas. Luego combina las señales de cruz dorada y cruz de muerte del SMA de 10 períodos para filtrar oportunidades de ruptura. Las señales largas se generan cuando el precio se rompe por encima del nivel de soporte de 30 días y el SMA de 10 períodos, mientras que las señales cortas se generan cuando el precio se rompe por debajo del nivel de resistencia de 30 semanas y el SMA de 10 períodos.
Esta estrategia considera los niveles de soporte/resistencia a medio y largo plazo, lo que le permite capturar oportunidades de tendencia más grandes.
Las principales ventajas de esta estrategia incluyen:
También hay algunos riesgos a tener en cuenta para esta estrategia:
Soluciones:
Hay margen de mejora:
La estrategia de seguimiento de tendencia de la línea de tendencia doble combina de manera efectiva los indicadores de soporte / resistencia a mediano y largo plazo y los indicadores de promedio móvil para filtrar señales rentables durante las tendencias principales, lo que la convierte en una estrategia comercial cuantitativa relativamente madura.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © neosaid //@version=5 strategy("Support and resistant Strategy", overlay=true) // Function to check for breakout f_breakoutCondition(closingPrice, highestHigh, lowestLow) => closingPrice > highestHigh or closingPrice < lowestLow // Step 1: 30 Days Trend Line (Lower Lows) low30Days = request.security(syminfo.tickerid, "D", low) // Step 2: 30 Weeks Upper Trend Line (Higher Highs) high30Weeks = request.security(syminfo.tickerid, "W", high) // Step 3: Trend Line for Lowest Low within the Last Month var float lowestLowLastMonth = na for i = 0 to 29 lowestLowLastMonth := na(lowestLowLastMonth) ? low[i] : math.min(lowestLowLastMonth, low[i]) lowestLowLastMonthValue = lowestLowLastMonth[1] // Breakout Strategy highestHighLast3Candles = request.security(syminfo.tickerid, "D", ta.highest(close, 3)) lowestLowLast3Candles = request.security(syminfo.tickerid, "D", ta.lowest(close, 3)) // Additional conditions to filter signals buyCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close > low30Days sellCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close < high30Weeks // Additional filters to reduce the number of orders buyFilter = ta.crossover(close, ta.sma(close, 10)) // Buy only when price crosses above a 10-period SMA sellFilter = ta.crossunder(close, ta.sma(close, 10)) // Sell only when price crosses below a 10-period SMA buyCondition := buyCondition and buyFilter sellCondition := sellCondition and sellFilter // Plot Buy and Sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar) // Strategy entries strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition)