Estratégia de reversão da média móvel ponderada

Autora:ChaoZhang, Data: 2023-11-28 14:11:33
Tags:

img

Estratégia de reversão da média móvel ponderada

Resumo

A ideia principal desta estratégia é tomar posições por reversões que testam níveis de suporte / resistência importantes em torno da média móvel ponderada.

Estratégia lógica

Esta estratégia é baseada no indicador de média móvel ponderada. Primeiro, calcula a WMA de um certo comprimento, em seguida, monitora se o preço rompe a WMA por algum intervalo. Quando a distância de ruptura atinge um limiar, ele traça uma seta e abre posições. Para ir longo, o preço precisa se quebrar primeiro por algum intervalo; Para ficar curto, o preço precisa se quebrar primeiro por algum intervalo.

A estratégia fornece opções entre o trailing stop loss e o stop loss fixo através do parâmetro trail, para que os riscos possam ser controlados ajustando o intervalo de stop loss.

Análise das vantagens

A maior vantagem reside na combinação de configurações de reversão com médias móveis para capturar pontos de virada importantes do mercado para a abertura de posições. As estratégias de reversão geralmente têm uma boa taxa de ganho e relação de recompensa ao risco, com riscos fáceis de controlar. Esta estratégia também é equipada com mecanismos de stop loss abrangentes e métodos de captação de lucro parcial, o que ajuda a reduzir os riscos e melhorar a estabilidade.

Uma vez que se baseia em médias móveis, existe amplo espaço disponível para otimização de parâmetros, ajustando valores como comprimento WMA, intervalo de ruptura, etc., para testar a adaptabilidade em diferentes mercados.

Análise de riscos

O maior risco são reversões fracassadas. Se o preço não conseguir desencadear o stop loss ou tirar lucro depois de formar sinais de reversão, e continuar correndo na direção original, incorrerá em perdas flutuantes consideráveis.

Além disso, ele depende fortemente da otimização de parâmetros. Configurações de parâmetros inadequadas podem facilmente perder o tempo de reversão de preços ou gerar sinais falsos. É necessária uma compreensão adequada do comportamento do mercado e uma avaliação prudente das escolhas de parâmetros através de backtests suficientes.

Orientações de otimização

Os indicadores podem ser introduzidos para melhorar a qualidade e a precisão do sinal. Por exemplo, antes das inversões de preços, os valores incrementais em certos períodos recentes podem ser verificados, especialmente dados incrementais de curto prazo, para caracterizar os padrões de flutuação de preços. Ou certos fatores quantitativos podem ser adicionados para detectar o impulso de preços, a volatilidade, etc. para modelagem multifatorial.

Os métodos de aprendizagem de máquina também poderiam ser testados para prever o movimento de preços a curto prazo com base em sinais comerciais históricos e dados de preços, o que ajuda a filtrar sinais falsos e melhorar a qualidade do sinal.

Além disso, alguns mecanismos de otimização adaptativa poderiam ser implementados. De acordo com os resultados reais do comércio, parâmetros ou pesos de regra poderiam ser ajustados dinamicamente para realizar auto-otimização e ENO da estratégia.

Resumo

O funcionamento geral desta estratégia é estável. Dentro de um espaço razoável de parâmetros e ambientes de mercado, ele pode alcançar retornos consideráveis. A maior vantagem reside nos riscos controláveis e no potencial de otimização. Os próximos esforços serão focados em melhorar a qualidade do sinal e incorporar capacidades de otimização adaptativa. Acredita-se que, com melhorias persistentes, esta estratégia pode se tornar uma escolha convincente em carteiras de investimento.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
out = wma(src, len)
price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10, "Stop (in ticks)", step=1)
limit = input(5, "Limit Out", step=1)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
timec = input(true, "Limit Time of Day (Buying Side)")


//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)
//plots
plot(wma(src,len))
z = if low+price_drop<out
    (out-low)
plotarrow(z, colorup=red)

a = if high-price_climb>out
    (high-out)
plotarrow(a, colorup=lime)
av=wma(src,len)

//Orders
if(timec)
    strategy.entry("Enterlong", long=true, when=z and t>1)
else
    strategy.entry("Enterlong", long=true, when=z)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=false, when=a and t>1)
else
    strategy.entry("Entershort", long=false, when=a)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )
  



Mais.