돈치안 적응 이동 평균 거래 시스템은 가격 추세를 추적하는 양적 거래 전략이다. 이 전략은 장기 및 단기 이동 평균과 결합한 돈치안 채널 지표를 사용하여 가격 추세를 판단하고 추적하고 트렌드 거래를 위해 중장기 가격 추세를 파악합니다.
이 전략은 먼저 진정한 변동성 범위를 계산한다. 진정한 변동성 범주는 이전 촛불의 종료 가격에서 현재 촛불의 최고 및 최저 가격까지의 가격 움직임 범위를 의미한다. 그 다음 도
가격이 장기 이동 평균과 대역폭, 단기 이동 평균과 대역폭을 넘어서면, 장거리; 가격이 장기 이동 평균 빼고 대역폭, 단기 이동 평균 빼고 대역폭을 넘어서면, 단위로 떨어질 때. 닫기 조건은 가격이 대역폭으로 증가한 긴 및 짧은 이동 평균보다 낮을 때 긴 포지션을 닫고, 대역폭으로 증가한 긴 및 짧은 이동 평균보다 가격이 상승할 때 짧은 포지션을 닫습니다.
따라서, 진정한 변동성을 기반으로 동적으로 Donchain 채널의 대역폭을 조정하고 이중 이동 평균으로 필터링함으로써 전략은 중장기 가격 추세를 효과적으로 추적하고 잘못된 신호를 줄이고 안정적인 장기 거래 기회를 얻을 수 있습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
채널 대역폭을 동적으로 조정하기 위해 진정한 변동성을 사용하면 정적 매개 변수를 피하고 시장 변화에 더 잘 적응합니다.
이중 이동 평균의 조합은 노이즈를 효과적으로 필터링하고 잘못된 신호를 줄일 수 있습니다.
중장기 트렌드를 추적하면 반복적인 거래와 거래 빈도를 줄여 장기적인 수익 기회를 얻을 수 있습니다.
전략 논리는 간단하고 명확하고, 구현하기 쉽고, 오류 용인하며, 자동 알고리즘 거래에 적합합니다.
이 전략은 또한 몇 가지 위험을 안고 있습니다.
단기 조정 중 장기 거래에 대한 최고의 입시 시기를 파악하는 것은 어렵습니다. 변동성 지표는 단기 상황을 판단하고 입시를 최적화하는 데 도움이 될 수 있습니다.
매개 변수는 각 분야와 개별 주식에 최적화되어야 합니다. 동적으로 최적화된 매개 변수 포트폴리오를 고려할 수 있습니다.
스톱 로즈 포인트는 비상 사태로 인한 중요한 트렌드 변화에 대해 적절히 느슨해야 합니다.
요약하자면, 돈치안 적응 이동 평균 거래 시스템은 전반적으로 안정적이고 간단하고 구현하기 쉬운 양적 전략입니다. 동적 채널과 이중 이동 평균 필터링을 활용함으로써 중장기 시장 트렌드를 효과적으로 추적하고 거래 빈도를 줄이고 장기적인 지속적인 이익을 얻을 수 있습니다. 한편으로, 매개 변수 설정을 최적화하고 위험을 예방하고 적절한 스톱 손실을 주의해야 합니다. 전반적으로이 전략은 뛰어난 성능을 가지고 있으며 중장기 알고리즘 트렌드 추적에 적합합니다.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dongyun //@version=4 strategy("唐齐安移动平均交易系统", overlay=true) longperiod = input(20,'长线') shortperiod = input(5,'短线') bandfactor = input(1.0,'') TrueHigh = 0.0 TrueLow = 0.0 TrueRange = 0.0 TrueHigh := close[1] > high ? close[1] : high TrueLow := close[1] < low ? close[1] : low TrueRange := TrueHigh - TrueLow AvgTrueRange = sma(TrueRange,longperiod) MAlong = sma(close,longperiod) MAshort = sma(close,shortperiod) band = AvgTrueRange * bandfactor if close > MAlong[1] + band[1] and close > MAshort[1] + band[1] strategy.entry("Long", strategy.long, when=strategy.position_size < 1) else if close < MAlong[1] - band[1] and close < MAshort[1] - band[1] strategy.entry("Short", strategy.short, when=strategy.position_size > -1) if close < MAlong[1] - band[1] or close < MAshort[1] - band[1] strategy.close("Long", when=strategy.position_size > 0) else if close > MAlong[1] + band[1] or close > MAshort[1] + band[1] strategy.close("Short", when=strategy.position_size < 0)