Estratégia de tendência baseada em derivados

Autora:ChaoZhang, Data: 2023-12-11 16:28:20
Tags:

img

Resumo

Esta estratégia usa uma combinação de médias móveis com diferentes períodos para estabelecer tendências e usa aproximações derivadas de diferença finita para prever possíveis reversões.

Estratégia lógica

A estratégia usa médias móveis simples de 20, 40 e 80 períodos simultaneamente. Quando o preço de fechamento está acima dessas 3 médias móveis, ele é definido como uma tendência de alta; quando o preço de fechamento está abaixo dessas 3 médias móveis, ele é definido como uma tendência de queda. A tendência é confirmada apenas quando o preço mais baixo está acima ou o preço mais alto está abaixo dessas 3 médias móveis.

Para prever possíveis pontos de reversão, a estratégia usa a aproximação da derivada de diferença finita da primeira derivada da média móvel simples de 40 períodos.

As regras específicas de negociação são:

  1. Quando a linha rápida estiver acima da linha média e a linha média estiver acima da linha lenta, e a primeira derivada for > 0, vá para longo;

  2. Quando a linha rápida estiver abaixo da linha do meio e a linha do meio estiver abaixo da linha lenta e a primeira derivada for < 0, proceder ao curto;

  3. Fechar posição longa quando o primeiro derivado <= 0;

  4. Fechar posição curta quando o primeiro derivado >= 0.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. A utilização de múltiplas médias móveis para determinar tendências torna o julgamento da tendência mais fiável;

  2. A previsão dos pontos de reversão com os derivados permite um stop loss oportuno e drawdowns menores;

  3. A lógica é simples e fácil de entender, adequada para iniciantes;

  4. Apenas a negociação de reversões após tendências evita ficar preso e tem uma maior taxa de ganho.

Análise de riscos

Há também alguns riscos com esta estratégia:

  1. A combinação de médias móveis pode dar sinais errados durante os mercados de gama;

  2. Os sinais de reversão dos derivados podem atrasar-se e não podem evitar completamente as perdas;

  3. A configuração inadequada de stop loss pode aumentar as perdas.

Para lidar com estes riscos, podemos otimizar os parâmetros das médias móveis, ajustar o stop loss, combinar com outros indicadores para melhorar a estratégia.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os períodos de média móvel para melhor adaptá-los às diferentes condições de mercado;

  2. Tente diferentes tipos de médias móveis, como EMAs;

  3. Usar indicadores de volatilidade para definir paradas dinâmicas;

  4. Combinar outros indicadores de confirmação para evitar sinais falsos.

Conclusão

Esta estratégia de combinação de tendências de média móvel usa múltiplas médias móveis para determinar a direção da tendência e derivados para prever reversões, o que pode controlar efetivamente os riscos e é adequado para negociação de médio prazo.


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

//@version=3
strategy("Big 3",overlay=true, default_qty_type=strategy.percent_of_equity)
 
// enter on Arrows
// take profit on touch with 80 SMA, gray, or at discretion
 
fast = sma(close,20)
mid = sma(close,40)
slow = sma(close,80)
 
plot(fast,linewidth=1)
plot(mid,linewidth=2)
plot(slow,linewidth=4)
 
isUptrend = close > fast and close > mid and close > slow
isDowntrend = close < fast and close < mid and close < slow
 
confirmed = (low > fast and low > mid and low > slow) or (high < fast and high < mid and high < slow)
deriv = 3 * mid[0] - 4 * mid[1] + mid[2]

stableUptrend = (fast > mid) and (mid > slow) and (deriv > 0)
stableDowntrend = (fast < mid) and (mid < slow) and (deriv < 0)
 
barcolor(isUptrend ? green : isDowntrend ? red : gray)
plotshape(not confirmed[1] and confirmed and isUptrend ? close : na,style=shape.arrowup,location=location.belowbar,color=green)
plotshape(not confirmed[1] and confirmed and isDowntrend ? close : na,style=shape.arrowdown,location=location.abovebar,color=red)

stop = na
//stop = input(1000, "Stop")


strategy.entry("long", strategy.long, when=(stableUptrend), stop=stop)
strategy.close("long", when=(deriv <= 0))

strategy.entry("short", strategy.short, when=(stableDowntrend), stop=stop)
strategy.close("short", when=(deriv >= 0))





Mais.