Tendência seguindo uma estratégia baseada num desvio suavizado

Autora:ChaoZhang, Data: 2024-02-20 11:15:54
Tags:

img

Resumo

Esta estratégia utiliza o desvio entre o custo médio de curto prazo alto-baixo e curto e longo prazo para determinar a tendência.

Princípios de estratégia

  1. Calcular o custo a curto prazo: utilizar as funções ta.highest e ta.lowest para calcular os preços mais altos e mais baixos das velas recentes shortTerm, e tomar a média como o custo a curto prazo

  2. Calcular o custo a longo prazo: utilizar a função ta.sma para calcular a média móvel simples dos preços de fechamento das velas longTerm recentes como o custo a longo prazo

  3. Calcular o desvio: subtrair o custo a longo prazo do custo a curto prazo

  4. Desvio suave: suavizar o desvio para reduzir erros de avaliação utilizando o ta.sma para a média móvel simples

  5. Determine a tendência: se o desvio suavizado for superior ao limiar, julgue-o como uma tendência ascendente; se inferior ao limiar negativo, julgue-o como uma tendência descendente.

  6. Entrada e saída: vá longo quando se segue uma tendência ascendente e vá curto quando se segue uma tendência descendente.

Análise das vantagens

  1. Aumentar a sensibilidade a curto prazo para captar rapidamente oportunidades a curto prazo
  2. O processamento suavizado reduz a probabilidade de erro de julgamento
  3. A configuração do canal reduz as posições de abertura desnecessárias
  4. Seguir de perto as tendências permite um stop loss oportuno e a captação de lucros

Análise de riscos

  1. O foco a curto prazo pode facilmente levar a ficar preso, o intervalo de stop loss precisa ser apropriadamente ampliado
  2. Os parâmetros exigem testes repetidos, configurações inadequadas de dias de curto e longo prazo e parâmetros de suavização de desvio podem levar a hipersensibilidade ou lentidão
  3. A amplitude do canal deve ser razoavelmente definida, grande demais ou pequena pode levar a problemas
  4. Probabilidade de ficarem presos em posições de abertura repetidas durante mercados laterais voláteis

Resolução de riscos:

  1. Aumentar adequadamente o intervalo de stop loss para evitar armadilhas
  2. Otimizar as configurações dos parâmetros para equilibrar a sensibilidade e a taxa de erro de julgamento
  3. Teste e otimize os parâmetros do canal
  4. Adicionar condições de filtragem para evitar posições de abertura desnecessárias durante a volatilidade

Orientações de otimização

  1. Otimizar os pontos altos e baixos de curto prazo, como calcular custos de curto prazo mais suaves, como PA ou médias ponderadas
  2. Teste diferentes métodos de cálculo dos custos a longo prazo
  3. Tente diferentes algoritmos de suavização de desvio
  4. Otimize os parâmetros do canal
  5. Adicione filtros de abertura como breakouts, aumentos de volume etc.
  6. Reversões Adicionar oportunidades de negociação inversas

Resumo

No geral, esta é uma estratégia de tendência muito simples e direta. Em comparação com indicadores comuns como médias móveis, calculadores de desvio entre custos de curto e longo prazo, pode julgar mudanças de tendência mais rapidamente. Enquanto isso, o processamento de suavização também fornece maior flexibilidade na otimização de parâmetros, permitindo equilibrar as taxas de sensibilidade e erro de julgamento ajustando os parâmetros de suavização. Em resumo, esta estratégia possui características como agilidade, direita e alta personalização. É uma estratégia promissora que vale a pena explorar mais profundamente.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dead0001ing1

//@version=5
strategy("Trend-Following Indicator", overlay=true)

// 設置參數
shortTerm = input(5, "Short Term")
longTerm = input(20, "Long Term")
smooth = input(5, "Smoothing")
threshold = input(0, "Threshold")

// 計算短期成本
shortH = ta.highest(high, shortTerm)
shortL = ta.lowest(low, shortTerm)
shortCost = (shortH + shortL) / 2

// 計算長期成本
longCost = ta.sma(close, longTerm)

// 計算均差
deviation = shortCost - longCost

// 平滑均差
smoothedDeviation = ta.sma(deviation, smooth)

// 判斷順勢
isTrendingUp = smoothedDeviation > threshold
isTrendingDown = smoothedDeviation < -threshold

// 顯示順勢信號
plotshape(isTrendingUp, title="Trending Up", location=location.belowbar, color=color.green, style=shape.labelup, text="Up", size=size.small)
plotshape(isTrendingDown, title="Trending Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="Down", size=size.small)

// 定義進出場策略
if isTrendingUp
    strategy.entry("Long", strategy.long)
    strategy.close("Long", when=isTrendingDown)
if isTrendingDown
    strategy.entry("Short", strategy.short)
    strategy.close("Short", when=isTrendingUp)



Mais.