이 전략은 동향을 결정하기 위해 단기 높은-저하 및 단기 및 장기 평균 비용 사이의 편차를 활용합니다. 동향이 나타나면 상당한 이익을 유지하면서 통합 중에 작은 손실을 줄이기 위해 이전 및 후속 평형 평균 기능을 확대하여 단기 민감도를 높이고 통합 비용을 줄이는 것을 목표로합니다.
단기 비용 계산: 최근 단기 촛불의 가장 높고 가장 낮은 가격을 계산하기 위해 ta.highest 및 ta.lowest 함수를 사용하여 평균을 단기 비용으로 취합니다.
장기 비용 계산: ta.sma 함수를 사용하여 최근 longTerm 촛불의 폐쇄 가격의 간단한 이동 평균을 계산합니다.
계산 오차: 단기 비용에서 장기 비용을 빼기
매끄러운 오차: 단순한 이동 평균에 대한 ta.sma를 사용하여 잘못된 판단을 줄이기 위해 매끄러운 오차를 매끄럽게합니다.
경향을 결정: 평형 오차가 임계보다 크면 상승 추세로 판단합니다. 음수 임계보다 작다면 하락 추세로 판단합니다.
진입 및 출입: 상승 추세를 추적할 때 장거리, 하락 추세를 추적할 때 단거리.
위험 해결:
전체적으로 이것은 매우 간단하고 직접적인 트렌드 다음 전략이다. 이동 평균과 같은 일반적인 지표와 비교하여 단기 및 장기 비용 사이의 오차를 계산함으로써, 트렌드 변화를 더 빨리 판단할 수 있다. 한편, 매개 변수 최적화에 있어서 매개 변수 처리 또한 더 많은 유연성을 제공하여 매개 변수 최적화를 통해 민감성과 잘못된 판단률을 균형 잡을 수 있다. 요약하자면, 이 전략은 민첩성, 직관성 및 높은 사용자 정의성 등의 특성을 가지고 있다. 더 깊이 탐구할 가치가 있는 유망한 전략이다. 매개 변수 최적화와 보조 판단 조건을 추가함으로써, 전략의 성능을 더욱 향상시킬 가능성이 있다.
/*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)