Esta estratégia usa o cruzamento de médias móveis de múltiplos períodos para determinar os sinais de negociação. A estratégia pode observar médias móveis de períodos mais longos no período atual para descobrir a direção da tendência maior.
A estratégia usa duas médias móveis, calculadas no período atual e no período superior.
Por exemplo, a linha de 20 dias e a linha de 50 dias num gráfico de 15 minutos:
Quando 15 minutos na linha de 20 dias atravessam a linha de 50 dias, faça mais; quando 15 minutos na linha de 20 dias abaixo atravessam a linha de 50 dias, faça vazio.
Isso permite a observação de tendências de períodos mais longos no ciclo atual. A estratégia também permite a personalização do comprimento do ciclo da média móvel.
Os pontos de sinalização cruzada também podem exibir marcas em forma de ponto para alertar sobre a transação.
As medidas a seguir podem reduzir o risco:
Manter uma média periódica mais alta para garantir que as principais tendências sejam corretas
Adição de outros indicadores técnicos para filtragem de sinais
Optimizar os parâmetros do ciclo de equilíbrio para combinações ótimas
Condições de admissão adequadamente relaxadas, como a inclusão de uma forma de linha K.
A estratégia pode ser melhorada em alguns aspectos:
Combinações de diferentes períodos têm combinações de melhor correspondência para diferentes variedades
Por exemplo, verifique a trajetória do indicador MACD ao cruzar
A decisão de se retirar pode ser baseada em evidências auxiliares do PostForm123
Os ciclos curtos usam condições de filtragem mais rigorosas e os ciclos longos usam condições mais flexíveis
Diferentes períodos de tempo têm características de mercado diferentes e podem ser otimizados para parâmetros
A estratégia julga a direção da tendência observando o cruzamento da linha de equilíbrio de múltiplos quadros temporais para descobrir tendências de maior nível. Isso pode eliminar efetivamente o ruído de curto prazo, o ritmo de mercado maior. Mas também há dificuldades de configuração de ciclo, atraso no julgamento de tendências e outros problemas.
/*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)