
A estratégia de cruzamento de médias móveis é uma estratégia de negociação de ações relativamente comum. A estratégia é gerada por meio da computação de médias móveis rápidas e médias móveis lentas e gera sinais de compra e venda quando elas se cruzam.
A lógica central da estratégia é: a média móvel rápida representa a tendência de curto prazo das ações, a média móvel lenta representa a tendência de longo prazo das ações. Quando a tendência de curto prazo se transforma em alta (fork), indica que as ações entram na faixa de compra; quando a tendência de curto prazo se transforma em queda (fork), indica que as ações entram na faixa de venda.
Em particular, a estratégia define uma média móvel rápida maFast e uma média móvel lenta maSlow. A duração de maFast é de 9, representando a tendência de curto prazo de 9 dias de ações; a maSlow é de 18, representando a tendência de longo prazo de 18 dias de ações. A estratégia determina a variação da tendência de curto prazo e longo prazo através do cálculo da interseção de duas médias móveis.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Pode-se reduzir o risco acima por meio de ajustes nos parâmetros das médias móveis e de estratégias de stop loss.
A estratégia ainda tem espaço para ser melhorada:
A estratégia de cruzamento de média móvel é uma estratégia muito clássica e prática como um todo. Seu princípio é simples, fácil de implementar e é amplamente aplicado em negociações reais.
/*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=3
strategy(title="Moving Average Cross", overlay=true, initial_capital=10000, currency='USD')
// === GENERAL INPUTS ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 9, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource = input(defval = close, title = "Slow MA Source")
maSlowLength = input(defval = 18, title = "Slow MA Period", minval = 1)
// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)
// === LOGIC ===
enterLong = crossover(maFast, maSlow)
exitLong = crossover(maSlow, maFast)
// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong)
strategy.entry(id="Short Entry", long=false, when=exitLong)
// === FILL ====
fill(fast, slow, color = maFast > maSlow ? green : red)