
A estratégia de negociação de cruzamento de médias móveis é uma estratégia de negociação de tipo analítico, que consiste na compra ou venda de ações quando ocorrem um garfo de ouro ou um garfo de morte, através da computação de médias móveis de diferentes períodos. A estratégia é simples, fácil de executar, ocupa menos capital e possui poucas retrações, sendo adequada para operações de linha média e longa.
A estratégia é calculada através da calculação de uma média móvel indexada de 20 e 50 ciclos (EMA). A operação de compra é executada quando a EMA de 20 ciclos cruza a EMA de 50 ciclos. A operação de venda é executada quando a EMA de 20 ciclos cruza a EMA de 50 ciclos.
O índice EMA é uma média móvel, que dá mais peso aos dados mais recentes. A fórmula de cálculo do EMA é:
EMAtoday = (Pricetoday * k) + EMAyesterday * (1-k)
Onde k = 2/ (número de ciclos + 1)
Assim, quando o curto prazo EMA acima do longo prazo EMA, indica que o movimento de preços virou de alta, LONG; quando o curto prazo EMA abaixo do longo prazo EMA, indica que o movimento de preços virou de baixa, SHORT ◦
A estratégia tem as seguintes vantagens:
A estratégia também apresenta os seguintes riscos:
Assim, a estratégia pode ser otimizada em vários aspectos:
A estratégia de negociação de cruzamento de média móvel é uma estratégia de negociação técnica simples e eficaz, que é fácil de entender e implementar, passando por testes de mercado. Através de meios como otimização de parâmetros, adição de condições auxiliares, pode-se reduzir ainda mais o risco de negociação e aumentar a estabilidade da estratégia. A estratégia pode ser um módulo básico de negociação quantitativa.
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brandlabng
//@version=5
//study(title="Holly Grail", overlay = true)
strategy('HG|E15m', overlay=true)
src = input(close, title='Source')
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])
ma2 = input(50, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])
price1 = if type1 == 'EMA'
ta.ema(price, ma1)
price2 = if type2 == 'EMA'
ta.ema(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)
longCondition = ta.crossover(price1, price2)
if longCondition
strategy.entry('Long', strategy.long)
shortCondition = ta.crossunder(price1, price2)
if shortCondition
strategy.entry('Short', strategy.short)