이 전략의 주요 아이디어는 가격 트렌드를 판단하고 움직이는 평균과 볼링거 밴드를 사용하여 거래 신호를 생성하는 것입니다. 구체적으로, 그것은 먼저 변동성 범위를 얻기 위해 특정 기간 동안의 평균 진정한 범위 (ATR) 를 계산하고, 그 다음 가장 높은 가격과 가장 낮은 가격을 결합하여 제한 채널을 형성합니다. 가격이이 채널을 통과하면 폐쇄 가격은 채널 가격으로 설정됩니다. 그 후 트렌드 트레이더 이동 평균 (AVR) 이라고 불리는 제한 된 폐쇄 가격의 이동 평균을 계산합니다. 마지막으로 트렌드 트레이더 이동 평균의 위와 아래로 볼링거 밴드를 그리며 거래 신호를 형성합니다. 가격이 상위 밴드를 통과 할 때 길고, 하위 밴드를 통과 할 때 짧습니다.
이 전략은 먼저 ATR 범위를 계산하고 가장 높고 가장 낮은 가격과 결합한 한계 채널을 형성합니다. 폐쇄 가격은 채널을 통과 할 때만 채널 가격으로 제한됩니다. 그 후 중장기 트렌드 방향을 반영하는 제한 된 폐쇄 가격의 트렌드 트레이더 이동 평균을 계산합니다. 마지막으로 볼링거 밴드로 트렌드 트레이더 이동 평균에 평행한 상위 대와 하위 대를 그리십시오. 상위 대를 통과하면 긴 신호를 생성하고 하위 대를 통과하면 짧은 신호를 생성합니다.
트렌드를 판단하는 핵심은 중장기 트렌드 방향을 구현하는 트렌드 트레이더 이동 평균에 있다. 볼링거 밴드의 역할은 일부 잘못된 브레이크를 필터링하고 거래 신호를 더 신뢰할 수 있게 만드는 것이다. 전체 전략은 트렌드 추종과 브레이크를 결합하여 강력한 트렌드 시스템을 형성한다.
해결책:
이 전략은 전반적으로 강한 트렌드 다음 시스템이다. 중장기 트렌드를 판단하고 볼링거 밴드와 결합하여 거래 신호를 생성할 수 있다. 매개 변수 최적화를 통해 안정적인 알파를 얻을 수 있다. 그러나 장기적으로 보유할 때 갑작스러운 사건으로 인한 막대한 손실을 피하기 위해 위험 통제도 중요하다. 일반적으로, 전략은 장기 지속 가능한 알파를 위해 추가 연구와 최적화를 받아야 한다.
/*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 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/10/2018 // This is plots the indicator developed by Andrew Abraham // in the Trading the Trend article of TASC September 1998 // It was modified, result values wass averages. // And draw two bands above and below TT line. //////////////////////////////////////////////////////////// strategy(title="Trend Trader Bands Backtest", overlay = true) Length = input(21, minval=1), LengthMA = input(21, minval=1), BandStep = input(20), Multiplier = input(3, minval=1) reverse = input(false, title="Trade reverse") avgTR = wma(atr(1), Length) highestC = highest(Length) lowestC = lowest(Length) hiLimit = highestC[1]-(avgTR[1] * Multiplier) loLimit = lowestC[1]+(avgTR[1] * Multiplier) ret = 0.0 ret := iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) nResMA = ema(ret, LengthMA) pos = 0.0 pos := iff(close < nResMA - BandStep , -1, iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(nResMA, color= blue , title="Trend Trader AVR") plot(nResMA+BandStep, color= red , title="Trend Trader UpBand") plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")