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.
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
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
Calcular o desvio: subtrair o custo a longo prazo do custo a curto prazo
Desvio suave: suavizar o desvio para reduzir erros de avaliação utilizando o ta.sma para a média móvel simples
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.
Entrada e saída: vá longo quando se segue uma tendência ascendente e vá curto quando se segue uma tendência descendente.
Resolução de riscos:
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)