Esta estratégia usa cruzes médias móveis entre diferentes prazos para gerar sinais de negociação. Permite observar MAs de prazos mais longos no gráfico atual para detectar tendências maiores.
A estratégia utiliza duas médias móveis calculadas em prazos separados.
Por exemplo, no gráfico de 15 minutos ele usa 20MA e 50MA:
Quando 15min 20MA cruza acima de 50MA diária, ele vai longo.
O efeito desta abordagem é a observação de tendências de um período de tempo mais longo no período corrente.
Os pontos de cruzamento podem ser marcados para sinais comerciais claros.
Os riscos podem ser reduzidos:
A estratégia pode ser melhorada:
Teste de mais combinações de períodos de MA para otimização
Adicionar confirmação secundária quando ocorre cruzamento
Por exemplo, verificar a dinâmica do MACD
Otimizar as paradas para evitar a saída prematura
Considere a prova do Post123 para decidir as saídas
Diferentes filtros para TF curto e longo
Mais rígido para TF curto, mais relaxado para TF longo
Considerar diferentes conjuntos de parâmetros para diferentes sessões
As condições do mercado variam de sessão para sessão
Esta estratégia observa cruzamentos entre MAs de vários prazos para determinar a direção da tendência e descobrir tendências maiores. Isso filtra ruídos de curto prazo e se concentra em movimentos de preço maiores. No entanto, existem desafios como ajuste de prazos e sinais atrasados. As melhorias podem ser feitas por meio de backtesting rigoroso e otimização para parâmetros robustos, adicionando filtros para confirmação, validação ao vivo para melhorias contínuas de acordo com o feedback do mercado.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 7d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Run script on a long interval gives better result for e.g. 1 Day //Plots The Majority of Moving Averages //Defaults to Current Chart Time Frame --- But Can Be Changed to Higher Or Lower Time Frames //2nd MA Capability with Show Crosses Feature //study(title="CM_Ultimate_MA_MTF", shorttitle="CM_Ultimate_MA_MTF", overlay=true) strategy("Stratergy CM_Ultimate_MA_MTF", shorttitle = "Stratergy CM_Ultimate_MA_MTF", overlay = true) //,default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //inputs src = close useCurrentRes = input(true, title="Use Current Chart Resolution?") resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="D") len = input(20, title="Moving Average Length - LookBack Period") atype = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA") cc = input(true,title="Change Color Based On Direction?") smoothe = input(2, minval=1, maxval=10, title="Color Smoothing - 1 = No Smoothing") doma2 = input(false, title="Optional 2nd Moving Average") len2 = input(50, title="Moving Average Length - Optional 2nd MA") atype2 = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA") cc2 = input(true,title="Change Color Based On Direction 2nd MA?") warn = input(false, title="***You Can Turn On The Show Dots Parameter Below Without Plotting 2nd MA to See Crosses***") warn2 = input(false, title="***If Using Cross Feature W/O Plotting 2ndMA - Make Sure 2ndMA Parameters are Set Correctly***") sd = input(false, title="Show Dots on Cross of Both MA's") res = useCurrentRes ? timeframe.period : resCustom //hull ma definition hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len))) //TEMA definition ema1 = ema(src, len) ema2 = ema(ema1, len) ema3 = ema(ema2, len) tema = 3 * (ema1 - ema2) + ema3 avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : tema //2nd Ma - hull ma definition hullma2 = wma(2*wma(src, len2/2)-wma(src, len2), round(sqrt(len2))) //2nd MA TEMA definition sema1 = ema(src, len2) sema2 = ema(sema1, len2) sema3 = ema(sema2, len2) stema = 3 * (sema1 - sema2) + sema3 avg2 = atype2 == 1 ? sma(src,len2) : atype2 == 2 ? ema(src,len2) : atype2 == 3 ? wma(src,len2) : atype2 == 4 ? hullma2 : atype2 == 5 ? vwma(src, len2) : atype2 == 6 ? rma(src,len2) : tema out = avg out_two = avg2 out1 = security(syminfo.tickerid, res, out) out2 = security(syminfo.tickerid, res, out_two) ma_up = out1 >= out1[smoothe] ma_down = out1 < out1[smoothe] col = cc ? ma_up ? lime : ma_down ? red : aqua : aqua col2 = cc2 ? ma_up ? lime : ma_down ? red : aqua : aqua circleYPosition = out2 chk=col==red?1:0 if (not na(chk)) if (chk[1]==1 and chk==0) strategy.entry("RsiLE", strategy.long, comment="RsiLE") else strategy.exit("RsiLE") if (chk[1]==0 and chk==1) strategy.entry("RsiSE", strategy.short, comment="RsiLE") else strategy.exit("RsiSE") plot(out1, title="Multi-Timeframe Moving Avg", style=line, linewidth=4, color = col) plot(doma2 and out2 ? out2 : na, title="2nd Multi-TimeFrame Moving Average", style=circles, linewidth=4, color=col2) plot(sd and cross(out1, out2) ? circleYPosition : na,style=cross, linewidth=5, color=yellow)