
A estratégia é um sistema de acompanhamento de tendências baseado em Heikin-Ashi gráfico de tipo plano e simples Moving Average (SMA) cruzamentos. A estratégia identifica mudanças de tendências através de Heikin-Ashi gráfico de EMA de tratamento plano com cruzamentos de 44 períodos SMA, para capturar as principais oportunidades de tendência no mercado. A estratégia é projetado para um mecanismo de gestão de posição dinâmico, que se desloca automaticamente quando o preço é muito próximo da linha média de longo prazo, para evitar o risco de turbulência no mercado inteiro.
A lógica central da estratégia contém três elementos-chave: primeiro, a conversão da linha K tradicional para o gráfico de Heikin-Ashi, para filtrar o ruído do mercado através da computação da média aritmética de quatro preços de alta e baixa; em seguida, o uso de 6 ciclos EMA para o tratamento suave de Heikin-Ashi, para aumentar ainda mais a confiabilidade do sinal; e, finalmente, o preço de fechamento de Heikin-Ashi após a suavização é combinado com o SMA de 44 ciclos, gerando um sinal de overcall e um sinal de vazio por baixo. Ao mesmo tempo, o conceito de “valor de brecha sem posição” é introduzido, quando o preço e a distância entre a linha média de longo prazo são menores do que o valor de brecha.
A estratégia, combinada com o gráfico Heikin-Ashi e o sistema de linha de equilíbrio SMA, constrói um robusto sistema de negociação de seguimento de tendências. O mecanismo de geração de sinais da estratégia é perfeito, o controle de risco é razoável e é especialmente adequado para aplicações em mercados com características de tendências evidentes.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true)
// Input parameters for SMAs
s1 = input.int(11, title="Short SMA Period")
s2 = input.int(44, title="Long SMA Period")
noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001)
// Calculate the original Heikin-Ashi values
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow = math.min(low, math.min(haOpen, haClose))
// Smoothing using exponential moving averages
smoothLength = input.int(6, title="Smoothing Length")
smoothedHaClose = ta.ema(haClose, smoothLength)
smoothedHaOpen = ta.ema(haOpen, smoothLength)
smoothedHaHigh = ta.ema(haHigh, smoothLength)
smoothedHaLow = ta.ema(haLow, smoothLength)
// Calculate SMAs
smaShort = ta.sma(close, s1)
smaLong = ta.sma(close, s2)
// Plotting the smoothed Heikin-Ashi values
plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi")
plot(smaShort, color=color.blue, title="SMA Short")
plot(smaLong, color=color.red, title="SMA Long")
// Generate buy/sell signals based on SHA crossing 44 SMA
longCondition = ta.crossover(smoothedHaClose, smaLong)
shortCondition = ta.crossunder(smoothedHaClose, smaLong)
noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold
// Strategy logic
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (noPositionCondition and strategy.position_size != 0)
strategy.close_all("No Position")
// Plot buy/sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)