볼링거 밴드 (Bollinger Band) 를 기반으로 한 단기 거래 전략

저자:차오장, 날짜: 2024-03-01 13:29:47
태그:

img

전반적인 설명

이 전략은 거래 신호를 결정하고 스톱 노프 / 로스 수준을 설정하기 위해 볼링거 밴드 지표를 사용합니다. 가격이 아래에서 중간 밴드에 닿을 때 길고 가격이 위에서 중간 밴드에 닿을 때 짧습니다. 0.5%의 수익을 취하고 3%의 스톱 로스를 설정하며 단기 거래 전략에 속합니다.

전략 논리

볼링거 밴드의 중간 대역은 종료 가격의 N일 간단한 이동 평균이다. 상단 대역은 중간 대역 + K × N일 종료 가격의 표준편차이다. 하단 대역은 중간 대역 - K × N일 종료 가격의 표준편차이다. 가격이 아래로부터 중간 대역을 넘어서면 길게, 가격이 위에서 중간 대역을 넘어서면 짧게 된다. 각 거래에 고정된 크기를 열고 0.5%의 수익을 취하고 3%의 손실을 중지한다.

이점 분석

  1. 거래 신호를 결정하기 위해 볼링거 밴드를 사용하면 가격 브레이크오프를 효과적으로 파악할 수 있습니다.
  2. 단기 거래를 채택하면 거래 주기가 매우 짧아서 빠르게 방향을 전환 할 수 있습니다.
  3. 고정 크기의 포지션과 스톱 이윤/손실 설정은 거래별로 위험을 잘 관리합니다.

위험 분석

  1. 볼링거 밴드는 시장의 변동성에 민감합니다. 잘못된 매개 변수 설정은 더 많은 신호로 이어질 수 있지만 더 낮은 승률을 초래할 수 있습니다.
  2. 높은 주파수 거래는 수수료가 상대적으로 높으면 수익률을 크게 줄일 수 있습니다.
  3. 부적절한 스톱프로프트/러스 설정으로 인해 조기 스톱프로프트가 발생하거나 더 큰 이윤을 놓칠 수 있습니다.

해결책:

  1. 가장 좋은 조합을 찾기 위해 매개 변수를 최적화하세요.
  2. 낮은 수수료가 있는 증권을 선택하세요.
  3. 백테스팅을 통해 스톱프로프트/손실 수준을 최적화합니다.

최적화

  1. K선 패턴과 MACD와 같은 다른 지표와 결합하여 신호를 필터하고 승률을 향상시킵니다.
  2. 수익 잠재력을 확장하기 위해 후속 정지 또는 부분 폐쇄와 같은 더 많은 유형의 수익을 추가하십시오.
  3. 볼링거 밴드의 매개 변수를 최적화하고 가장 좋은 조합을 찾기 위해 수익/손실 수준을 중지하십시오.

결론

이 전략의 전반적인 논리는 분명하다. 신호를 결정하기 위해 볼링거 밴드를 사용하는 것이 효과적이다. 그러나 높은 거래 빈도와 거래 당 제한된 수익 공간. 트렌드 지표를 결합하여 신호를 필터하고 전략 성능을 향상시키기 위해 매개 변수를 최적화하는 것이 좋습니다.


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

//@version=5
strategy("Estrategia Bollinger Bands", shorttitle="BB Strategy", overlay=true)

// Parámetros de las Bandas de Bollinger
length = input(20, title="Longitud")
mult = input(2.0, title="Multiplicador")

// Calcula las Bandas de Bollinger
basis = ta.sma(close, length)
upper_band = basis + mult * ta.stdev(close, length)
lower_band = basis - mult * ta.stdev(close, length)

// Condiciones para realizar operaciones
price_touches_basis_up = ta.crossover(close, basis)
price_touches_basis_down = ta.crossunder(close, basis)

// Lógica de la estrategia
if (price_touches_basis_up)
    strategy.entry("Compra", strategy.long, qty = 1)
    
if (price_touches_basis_down)
    strategy.entry("Venta", strategy.short, qty = 1)

// Lógica para cerrar la operación con un movimiento del 0,5% (take profit) o 3% (stop loss)
target_profit = 0.005 // Actualizado a 0.5%
stop_loss = 0.03

if (strategy.position_size > 0)
    strategy.exit("Take Profit/Close", from_entry = "Compra", profit = close * (1 + target_profit))
    strategy.exit("Stop Loss/Close", from_entry = "Compra", loss = close * (1 - stop_loss))

if (strategy.position_size < 0)
    strategy.exit("Take Profit/Close", from_entry = "Venta", profit = close * (1 - target_profit))
    strategy.exit("Stop Loss/Close", from_entry = "Venta", loss = close * (1 + stop_loss))

// Dibuja las Bandas de Bollinger en el gráfico
plot(upper_band, color=color.blue, title="Upper Band")
plot(lower_band, color=color.red, title="Lower Band")
plot(basis, color=color.green, title="Basis")


더 많은