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.
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.
As vantagens desta estratégia são as seguintes:
Há também alguns riscos com esta estratégia:
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.
A estratégia pode ser otimizada das seguintes formas:
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