볼링거 밴드 역행 트렌드 전략

저자:차오장, 날짜: 2023-12-07 16:08:05
태그:

img

전반적인 설명

이 전략은 트렌드 방향을 결정하기 위해 상단, 중단, 볼링거 밴드 하단 및 200일 이동 평균 사이의 관계를 사용합니다. 상승 추세 중 하단 지대에 도달하면 가격이 길어지고 하단 추세 중 상단 지대에 도달하면 가격이 짧습니다.

원칙

  1. 트렌드를 결정합니다. 볼링거 밴드의 상단과 하단 양쪽 모두 200일 이동 평균 이상이면 상승 추세입니다. 둘 다 아래면 하향 추세입니다.
  2. 엔트리: 상승 추세에서 가격이 하위 지대에 닿을 때 긴 거리를 가십시오. 하위 추세에서 가격이 상위 지대에 닿을 때 짧은 거리를 가십시오.
  3. 출구: 가격이 상위 지대에 닿거나 250 일 간 간편 이동 평균 이하로 넘어갈 때 긴, 닫는 위치. 가격이 300 일 간 간편 이동 평균 이하로 넘어갈 때 짧은, 닫는 위치.

장점

  1. 명확한 방향이 없는 반복적인 거래를 피하는 경향 방향을 결정하기 위해 볼링거 밴드를 사용하십시오.
  2. 트렌드 방향이 명확할 때 볼링거 밴드의 변동성 범위를 기반으로 적절한 입출입을 합니다.
  3. 이동평균으로 필터링을 추가하여 예상치 못한 손실을 피합니다.

위험 과 해결책

  1. 부적절한 볼링거 밴드 매개 변수 설정은 잘못된 판단으로 이어집니다: 최적의 기간 길이를 찾기 위해 매개 변수를 조정하십시오.
  2. 부적절한 이동 평균 매개 변수 때문에 거래가 과도하거나 원치 않는 손실이 발생합니다. 가장 안정적인 것을 찾기 위해 다른 매개 변수를 테스트하십시오.
  3. 주요 뉴스 사건으로 인한 급격한 시장 변화는 이상 현상을 유발합니다.

최적화 방향

  1. 최적의 매개 변수를 찾기 위해 다른 매개 변수 기간에 걸쳐 전략 성능을 테스트합니다.
  2. 이상적인 시장 조건에서 큰 손실을 피하기 위해 손해를 막는 메커니즘을 추가합니다.
  3. 다른 지표들을 포함해서 진입 신호를 확인해서 승률을 높여

결론

이 전략은 먼저 볼링거 밴드 (Bollinger Bands) 를 사용하여 트렌드 방향을 결정합니다. 이후 볼링거 밴드 (Bollinger Bands) 의 변동성 범위를 이동 평균과 함께 활용하여 방향의 정확성과 적당한 수익을 보장하는 거래 시스템을 형성합니다. 더 나은 성능을 달성하기 위해 최적화 및 메커니즘 추가를 통해 추가로 개선 할 수있는 매개 변수 선택 및 스톱 로스 (stop loss) 에 대한 몇 가지 문제가 있습니다.


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 1m
basePeriod: 1m
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/
// © Aayonga

//@version=5
strategy("boll trend", overlay=true,initial_capital=1000,default_qty_type=strategy.fixed, default_qty_value=1 )
bollL=input.int(20,minval=1,title = "length")
bollmult=input.float(2.3,minval=0,step=0.1,title = "mult")
basis=ta.ema(close,bollL)
dev=bollmult*ta.stdev(close,bollL)
upper=basis+dev

lower=basis-dev

smaL=input.int(200,minval=1,step=1,title = "trend")
sma=ta.sma(close,smaL)
//多头趋势
longT=upper>sma and basis>sma and lower>=sma
//空头趋势
shortT=upper<sma and basis<sma and lower<=sma

//入场位
longE=ta.crossover(close,lower)

shortE=ta.crossover(close,upper)

//出场位

longEXIT=ta.crossover(high,upper) or ta.crossunder(close,ta.sma(close,300))
shortEXIT=ta.crossunder(low,lower) or ta.crossover(close,ta.sma(close,250)) 

if longT and longE 
    strategy.entry("多long",strategy.long)

if longEXIT
    strategy.close("多long",comment = "close long")

if shortE and shortT 
    strategy.entry("空short",strategy.short)

if shortEXIT
    strategy.close("空short",comment = "close short")

더 많은