Três estratégias de impulso de cruzamento de SMA

Autora:ChaoZhang, Data: 2023-12-25 12:06:36
Tags:

img

Resumo

A estratégia Three SMA Crossover Momentum é uma estratégia típica de indicador técnico que rastreia as tendências do mercado. Ela combina médias móveis simples de 16-, 36- e 72-período e usa seus crossovers de alta e baixa para determinar as tendências do mercado, juntamente com a Kaufman Adaptive Moving Average (KAMA) como um filtro para tomar posições longas ou curtas quando a direção da tendência é relativamente clara.

Estratégia lógica

Os principais indicadores desta estratégia são as médias móveis simples de 16-, 36- e 72-período. Quando o SMA de curto período cruza o longo período para cima, ele sinaliza que o mercado está entrando em uma tendência de alta. Quando o SMA de curto período cruza abaixo do longo período para baixo, ele sinaliza que o mercado está entrando em uma tendência de queda. Por exemplo, quando o 16-SMA cruza o 36-SMA e 72-SMA, é um sinal de alta. E quando o 16-SMA cruza abaixo do 36-SMA e 72-SMA, é um sinal de baixa.

A média móvel adaptativa de Kaufman (KAMA) serve como um filtro para evitar sinais errados quando a tendência não é clara.

A estratégia rastreia as situações de cruzamento do SMA para tomar posições longas ou curtas quando a tendência é relativamente clara. A condição longa é 16-SMA cruzando 36-SMA e 72-SMA com KAMA linear. A condição curta é 16-SMA cruzando abaixo de 36-SMA e 72-SMA com KAMA linear.

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. A combinação de SMAs multiperíodo pode acompanhar eficazmente as tendências de mercado a médio e longo prazo
  2. A introdução da média móvel adaptativa como filtro pode reduzir sinais errados quando a tendência não é clara
  3. Simples de implementar, adequado para negociação automatizada ou por programa

Análise de riscos

Há também alguns riscos com esta estratégia:

  1. Os sinais ineficazes frequentes podem ocorrer em mercados variáveis devido a cruzes frequentes da SMA
  2. Não é definido nenhum stop loss, as perdas podem aumentar
  3. O valor da posição em risco deve ser calculado em função do nível de volatilidade da posição em risco.

Os riscos poderiam ser reduzidos ajustando os parâmetros da SMA, estabelecendo restrições de stop loss ou aplicando-se apenas a mercados altamente voláteis.

Orientações de otimização

A estratégia pode ser otimizada das seguintes formas:

  1. Teste diferentes combinações de parâmetros SMA para encontrar o óptimo
  2. Adicionar indicadores de volume de negociação ou de volatilidade como condições de filtro suplementares
  3. Configurar mecanismos de stop loss
  4. Combinar outros indicadores para determinar o calendário de entrada
  5. Otimizar o dimensionamento das posições, ajustar os riscos através da adição e redução gradual de posições

Conclusão

A estratégia Three SMA Crossover Momentum é uma estratégia clássica e prática de tendência de seguimento em geral. Ele julga as tendências de mercado de médio e longo prazo de forma eficaz através de crossovers de SMA de vários períodos e filtra algum ruído. Pode servir como um dos indicadores de referência de tempo para negociação posicional. Mas esta estratégia também tem algumas fraquezas, exigindo melhorias e otimizações adicionais para se posicionar em mercados mais diversos.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
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/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef

Mais.