볼링거 밴드 기반의 트렌드를 따르는 전략

저자:차오장, 날짜: 2024-02-22 17:21:42
태그:

img

전반적인 설명

이 전략은 볼링거 밴드 지표에 기반한 트렌드 다음 전략이다. 트렌드 방향을 결정하고 트렌드 추적을 구현하기 위해 볼링거 밴드의 상부 및 하부 밴드를 활용합니다. 가격이 상부 밴드를 통과할 때 길고 가격이 하부 밴드를 통과할 때 짧습니다. 스톱 손실은 볼링거 밴드의 중간 밴드에서 설정됩니다.

전략 논리

이 전략은 가격 추세를 결정하기 위해 볼링거 밴드 지표를 사용합니다. 볼링거 밴드는 상단, 하단, 중단 세 줄을 포함합니다. 상단은 가격의 상향 한도를 나타냅니다. 하단은 가격의 하향 한도를 나타냅니다. 중단은 가격의 이동 평균선을 나타냅니다. 가격이 하단에서 상단에서 통과하면 상승 추세가 시작되는 것을 알립니다. 가격이 상단에서 하단에서 통과하면 하향 추세가 시작되는 것을 알립니다.

구체적으로, 이 전략의 긴 진입 조건은: 1) 현재 촛불의 닫기 가격은 상단보다 높고; 2) 이전 촛불의 닫기 가격은 상단보다 낮다. 이것은 가격이 돌파되어 상승 추세가 시작되었다는 신호이며, 따라서 긴 진입 조건이 적절하다. 짧은 진입 조건은 비슷하다: 현재 촛불의 닫기 가격은 하단 범위에 있으며 이전 촛불의 닫기 가격은 하단 범위에 있으며, 이는 단행이 준비되어 있음을 나타냅니다.

이 전략의 스톱 로스 메커니즘은 중간에 있는 스톱 로스 레벨을 설정합니다. 중간에 있는 스톱 로스는 이동 평균 가격 라인을 나타내는 것이기 때문에 트렌드 변화를 판단하는 핵심 레벨입니다.

전략 강점

이 전략의 가장 큰 강점은 가격 추세를 명확하게 식별 할 수있는 능력이며, 시장 변동에 의해 오도되는 것을 피하여 추세를 추적하기 위해 볼링거 밴드 지표의 기능을 사용하여 다른 지표와 비교하면 볼링거 밴드는 잘못된 브레이크오프를 줄여 브레이크오프를 판단하는 데 더 신뢰할 수 있습니다.

또한 이 전략은 롱과 쇼트 양쪽 모두에 대한 진입 규칙을 설정하여 쌍방향 거래를 통해 가격 변동을 최대한 포착 할 수 있습니다. 중간에 있는 밴드를 스톱 로스 수준으로 채택하면 손실 절단 정확도를 향상시킬 수 있습니다. 신속한 스톱 로스는 전략 수익성에 중요합니다.

전략 위험

이 전략의 주요 위험은 볼링거 밴드 매개 변수 구성에 있습니다. 볼링거 밴드의 이동 평균 기간과 표준편차 크기는 상위 및 하위 밴드의 위치에 직접 영향을 줄 것입니다. 잘못된 매개 변수 설정은 잘못된 브레이크아웃의 비율을 증가시킬 수 있습니다.

또한, 중위 대역을 스톱 로스 수준으로 사용하는 것 또한 위험성을 가지고 있습니다. 시장이 급격한 변동을 경험할 때, 가격은 중위 대역을 급격히 뚫고 스톱 로스를 유발할 수 있습니다. 그 다음 큰 트렌드 반전이 있는지 평가하고 필요에 따라 스톱 로스 범위를 확장해야합니다.

전략 개선

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. 볼링거 밴드 매개 변수를 최적화합니다. 가장 좋은 매개 변수 조합을 찾기 위해 다른 기간의 경험적 데이터를 축적합니다.

  2. 용량 검사 규칙을 추가하여 가벼운 거래량 시나리오에서 잘못된 브레이크오프를 피합니다. 주문을 활성화하기 전에 최근 평균 값을 초과해야하는 거래량의 문턱을 설정할 수 있습니다.

  3. 시장 변동성 정도에 따라 동적으로 Stop Loss 레벨을 조정하여 Stop Loss 메커니즘을 정비합니다. 높은 변동성 하에서 Stop Loss 범위를 넓히고 낮은 변동성 하에서 좁히십시오.

  4. MACD, KDJ와 같은 더 많은 지표의 판단을 통합하여 입시 시기를 결정하고 운영 정확도를 향상시킵니다.

요약

결론적으로, 이것은 일반적으로 전략을 따르는 실용적인 추세입니다. 볼링거 밴드 지표를 사용하여 추세 방향을 식별하고 가격이 상부 또는 하부 밴드를 통과 할 때 주문을 유발합니다. 쌍방향 거래는 가격 움직임을 극대화하는 데 도움이됩니다. 더 나은 결과를 위해 매개 변수 조정, 스톱 로스 정제 등을 통해 전략 최적화에 큰 공간이 있습니다.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Valente_F
//@version=4
strategy(title="Strategy: Trend Following Bollinger Bands", shorttitle="Strategy: Trend Following Bollinger Bands", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity)

//Inputs
//Bollinger Bands Parameters
length = input(defval=20, minval=1, title= "Length")
stddev = input(defval=2, minval=0.5, title= "StdDev")

// STRATEGY INPUTS
//Entry and Exit Parameters
checkbox1 = input(true, title="Enable Long Entrys")
checkbox2 = input(true, title="Enable Short Entrys")


//Bollinger Bands Calculation

[middle, upper, lower] = bb(close, length, stddev)

//Long Conditions

bulls1 = close > upper
bulls2 = close[1] < upper[1]
bulls = bulls1 and bulls2

//Short Conditions

bears1 = close < lower
bears2 = close[1] > lower[1]
bears = bears1 and bears2

// Plots of Bollinger Bands
plot(upper, title = "Upper Band", color = color.aqua)//, display = display.none)
plot(middle, title = "MA", color = color.red)//, display = display.none)
plot(lower, title = "Lower Band", color = color.aqua)//, display = display.none)

neutral_color = color.new(color.black, 100)
barcolors = bulls ? color.green : bears ? color.red : neutral_color

//Paint bars with the entry colors
barcolor(barcolors)

//Strategy


//STRATEGY LONG
long_entry = bulls and checkbox1

long_entry_level = high

strategy.entry("Long", true, stop = long_entry_level, when = long_entry)
strategy.cancel("Long", when = not long_entry)

strategy.exit("Stop Long", "Long", stop = middle)

//STRATEGY SHORT
short_entry = bears and checkbox2

short_entry_level = low

strategy.entry("Short", false, stop = short_entry_level, when = short_entry)
strategy.cancel("Short", when = not short_entry)

strategy.exit("Stop Short", "Short", stop = middle)


더 많은