Tendência média móvel na sequência da estratégia de negociação

Autora:ChaoZhang, Data: 2023-12-11 15:05:31
Tags:

img

Resumo

Esta estratégia calcula a média móvel e a taxa de variação dos preços para determinar se o estado atual está em uma tendência ascendente ou em uma tendência descendente combinada com linhas K durante um determinado período, e, consequentemente, vai longo ou curto.

Princípio da estratégia

Esta estratégia primeiro calcula a média móvel simples a de comprimento l e a taxa de mudança de preço r de comprimento l. Em seguida, calcula a diferença k entre o preço atual da linha K e a média móvel. Finalmente, calcula a soma da soma de k sobre as linhas K passadas.

Quando a soma > 0, indica uma tendência de alta atual e a estratégia irá longo.

Após a entrada em posição longa ou curta, a posição será mantida até que a tendência se inverta (a soma muda de positiva para negativa ou vice-versa), em seguida, a posição será encerrada.

Análise das vantagens

A maior vantagem desta estratégia é que ela pode capturar a tendência e é adequada para a negociação de tendências.

  1. Usando a média móvel para determinar a direção geral da tendência pode efetivamente filtrar o ruído do mercado e bloquear a tendência principal.

  2. A aplicação do indicador da taxa de variação de preços para medir a força do ímpeto evita a falta de um ímpeto forte.

  3. A tomada em consideração de múltiplas linhas K durante um período pode determinar com mais precisão a tendência e evitar ser enganado por Ausreißer individuais.

  4. Enquanto a tendência permanecer inalterada, continue a manter a posição para maximizar os lucros do mercado de tendência.

Análise de riscos

Os principais riscos desta estratégia são:

  1. A incapacidade de determinar com precisão a hora do fim da tendência, pode parar as perdas prematuramente ou perder alguns lucros.

  2. Incapaz de controlar eficazmente o tamanho de uma única perda, as perdas podem ser grandes em condições de mercado extremas.

  3. Os parâmetros de estratégia inadequados podem conduzir a negociações excessivamente frequentes ou a perdas de algumas oportunidades de negociação.

  4. As participações a longo prazo podem ser sujeitas a riscos de juros e de margem overnight.

Para controlar os riscos, podemos definir pontos de stop loss, negociar apenas produtos altamente líquidos, otimizar parâmetros e usar a alavancagem razoavelmente.

Orientações de otimização

Os principais aspectos para otimizar esta estratégia incluem:

  1. Teste médias móveis e taxas de variação de preços de diferentes comprimentos para encontrar a melhor combinação de parâmetros.

  2. Tente outros indicadores como o MACD para determinar melhor a tendência e melhorar ainda mais a precisão.

  3. Adicionar mecanismos de gestão de posição, tais como obter lucro após obter alguns lucros, para controlar a perda única.

  4. Incorporar indicadores de volatilidade para estabelecer paradas dinâmicas para reduzir os riscos em condições extremas de mercado.

  5. Otimizar a lógica de entrada e saída para filtrar falhas e melhorar a eficiência da negociação.

Conclusão

A lógica geral desta estratégia é clara e fácil de implementar. Ao rastrear as tendências para a negociação de detenção de longo prazo, o controle de drawdown é relativamente razoável. É adequado para investidores que buscam retornos estáveis. Otimizando ainda mais o stop loss e a gestão de posição, pode-se esperar bons retornos estáveis de longo prazo.


/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")
if sum<0
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0

//shortCondition = sum<0
//exitshort = sum>0

//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Mais.