Esta estratégia combina a média móvel simples (SMA) e a linha de tendência de regressão linear rolante. Ela define a condição de entrada longa quando o preço de fechamento está acima da SMA e da linha de tendência, e a condição de saída quando o preço de fechamento está abaixo deles.
Os principais componentes desta estratégia incluem:
SMA: média móvel simples, que calcula o preço médio de fechamento durante um período (smaPeriod) como linha de sinal.
Linha de tendência rolante: ajuste da melhor linha de regressão linear sobre uma janela (janela) como sinal de tendência.
Condição de entrada: longo quando o preço de fechamento > SMA e linha de tendência.
Condição de saída: fechar posição quando o preço de fechamento for < SMA e linha de tendência.
A estratégia baseia-se principalmente na breakout do sinal SMA para entrada e na breakout do canal para saída.
Esta estratégia integra um filtro duplo de MA e linha de tendência, o que pode efetivamente reduzir as operações falsas de ruptura.
Há também alguns riscos desta estratégia:
Algumas direcções de otimização para estes riscos:
Esta estratégia pode ser otimizada nos seguintes aspectos:
Adicionar funções de ajustamento dinâmico para o período SMA, parâmetros de deslizamento baseados em regimes de mercado.
Desenvolver um mecanismo elástico de stop loss.
Adicionar filtro de outros indicadores, por exemplo, volume, RSI para melhorar a precisão da decisão.
Desenvolva uma versão de reversão, vá longo quando o preço se aproxima do fundo e quebra o canal de baixa.
Esta estratégia integra os sinais de negociação de média móvel e suporte de canal da linha de tendência rolante para implementar operações de tendência seguinte. O filtro duplo reduz a probabilidade de falha de ruptura e melhora a qualidade da decisão. Tem configurações de parâmetros simples e lógica clara, que é fácil de implementar e otimizar. Em resumo, esta estratégia forma um sistema de negociação de ruptura de tendência confiável, simples e intuitivo.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SMA Strategy with Rolling Trendline", overlay=true) // Input parameters smaPeriod = input(14, title="SMA Period") window = input(20, title="Trendline Window") startDate = input(timestamp("2023-01-01"), title="Start Date") endDate = input(timestamp("2023-12-31"), title="End Date") // Calculating SMA sma = sma(close, smaPeriod) // Function to calculate linear regression trendline for a window linreg_trendline(window) => sumX = 0.0 sumY = 0.0 sumXY = 0.0 sumX2 = 0.0 for i = 0 to window - 1 sumX := sumX + i sumY := sumY + close[i] sumXY := sumXY + i * close[i] sumX2 := sumX2 + i * i slope = (window * sumXY - sumX * sumY) / (window * sumX2 - sumX * sumX) intercept = (sumY - slope * sumX) / window slope * (window - 1) + intercept // Calculating the trendline trendline = linreg_trendline(window) // Entry and Exit Conditions longCondition = close > sma and close < trendline exitLongCondition = close < sma and close > trendline // Strategy logic if (true) if (longCondition) strategy.entry("Long", strategy.long) if (exitLongCondition) strategy.close("Long") // Plotting plot(sma, title="Simple Moving Average", color=color.blue) plot(trendline, title="Rolling Trendline", color=color.red) plotshape(series=longCondition, title="Enter Trade", location=location.belowbar, color=color.green, style=shape.triangleup) plotshape(series=exitLongCondition, title="Exit Trade", location=location.abovebar, color=color.red, style=shape.triangledown)