Estratégia de sinal de cruzamento de média móvel


Data de criação: 2024-01-08 15:54:32 última modificação: 2024-01-08 15:54:32
cópia: 0 Cliques: 673
1
focar em
1617
Seguidores

Estratégia de sinal de cruzamento de média móvel

Visão geral

A estratégia permite o cruzamento entre os diferentes tipos de médias móveis através do cálculo e do traçado de diferentes tipos de médias móveis, que são usadas para emitir sinais de compra e venda.

Princípio da estratégia

  1. A estratégia permite a escolha de diferentes tipos de médias móveis, incluindo SMA, EMA, WMA, etc.
  2. A estratégia calcula a média móvel principal e também permite a escolha de uma segunda média móvel.
  3. O estado de vazio do mercado é julgado pela interseção da média móvel principal com a média móvel secundária.
  4. Um sinal de compra é gerado quando uma média móvel de seu próprio período de tempo cruza a média móvel principal; um sinal de venda é gerado quando uma média móvel de seu próprio período de tempo cruza a média móvel principal abaixo da média móvel principal.
  5. Assim, através da interseção das médias móveis, pode-se julgar com mais clareza o estado de vazio do mercado.

Vantagens estratégicas

  1. Os tipos de médias móveis podem ser personalizados para atender a diferentes necessidades.
  2. Pode-se adicionar uma segunda média móvel para tornar o sinal mais claro.
  3. A média móvel pode ser personalizada para diferentes períodos de tempo.
  4. Render as cores de forma suave para tornar os gráficos mais nítidos.
  5. O mecanismo de sinalização cruzada é usado para determinar com precisão a situação de polinização.

Risco e otimização estratégica

  1. As médias móveis têm um atraso e podem apresentar falsos sinais. A curva pode ser selecionada apropriadamente para se adequar às médias móveis.
  2. A configuração incorreta do ciclo da média móvel pode levar a oportunidades de negociação perdidas. Mais combinações podem ser testadas para encontrar o melhor parâmetro.
  3. Recomenda-se a verificação em combinação com outros indicadores, como o indicador de energia do volume de transação, para reduzir o risco.
  4. Pode-se considerar a mudança da média móvel do sinal de captura para a média curl, para melhorar a precisão do sinal.
  5. Pode ser combinado com modelos de aprendizagem profunda como o LSTM para otimização de estratégias.

Resumir

A estratégia tem uma visão geral clara, usa o princípio de cruzamento de médias móveis para avaliar a situação de mercado de vazio, e os parâmetros podem ser personalizados para atender a diferentes necessidades. Também há alguns problemas, mas podem ser melhorados com otimizando modelos e parâmetros.

Código-fonte da estratégia
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Moving averages-Strategy", overlay=true)
//Created by user ChrisMoody 4-24-2014
//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

//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 = request.security(syminfo.tickerid, res, out)
out2 = request.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

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)


longCondition = crossover(out1, out1[smoothe])
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(out1, out1[smoothe])
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)