리소스 로딩... 로딩...

BB 탈출 전략

저자:차오장, 날짜: 2024-06-14 15:21:03
태그:SMAEMASMMARMAWMAVWMASTDDEV

img

전반적인 설명

이 전략은 볼링거 밴드 지표에 기반하여 가격이 상위 또는 하위 대역을 넘을 때 거래 신호를 생성합니다. 가격이 상위 대역을 넘을 때 길게 이동하고 가격이 하위 대역을 넘을 때 짧게 이동합니다. 또한, 긴 포지션을 보유하면 가격이 하위 대역을 넘을 때 포지션을 닫습니다. 짧은 포지션을 보유하면 가격이 상위 대역을 넘을 때 포지션을 닫습니다. 전략은 시장 변동성을 포착하는 것을 목표로하며, 가격 변동이 심해지면 트레이드에 들어가고 가격이 역전되면 적시에 종료됩니다.

전략 원칙

  1. 특정 기간의 이동 평균을 볼링거 밴드의 중간 대역으로 계산합니다. SMA, EMA, SMMA, WMA 및 VWMA와 같은 다양한 유형의 이동 평균을 선택할 수 있습니다.
  2. 상단 및 하단 대역을 계산하면 중간 대역에서 표준편차의 특정 배수를 더하고 빼는 것입니다.
  3. 가격이 상단역을 넘어서면 긴 신호를 생성하고, 하단역을 넘어서면 짧은 신호를 생성합니다.
  4. 긴 포지션을 보유한 경우, 가격이 하위 범위에 떨어질 때 포지션을 닫습니다. 짧은 포지션을 보유한 경우, 가격이 상위 범위를 넘을 때 포지션을 닫습니다.

이점 분석

  1. 볼링거 밴드는 시장 변동성을 효과적으로 수치화할 수 있고 가격 변동이 심해지면 명확한 거래 신호를 제공할 수 있습니다.
  2. 이 전략은 또한 위험성을 효과적으로 제어할 수 있는 스톱 로스 조건을 포함합니다.
  3. 전략 매개 변수는 조정 가능하며 다양한 도구와 시간 프레임에 최적화 될 수 있으며 일정 수준의 적응력과 유연성을 제공합니다.

위험 분석

  1. 불안정한 시장에서, 상부 및 하부 볼링거 밴드의 빈번한 가격 돌파는 과도한 거래 신호로 이어질 수 있으며, 이로 인해 거래 비용이 증가합니다.
  2. 볼링거 밴드는 어느 정도의 지연을 가지고 있으며 시장이 빠르게 변할 때 거래 신호가 지연될 수 있습니다.
  3. 부적절한 볼링거 밴드 매개 변수 선택은 전략 성능이 떨어질 수 있으며, 다른 도구와 시간 프레임에 기반한 최적화를 요구할 수 있습니다.

최적화 방향

  1. 트렌드 지표 또는 가격 행동 패턴 인식 방법을 도입하여 거래 신호를 더욱 확인하고 거짓 돌파구로 인한 손실 거래를 줄이는 것을 고려하십시오.
  2. ATR와 같은 지표에 기초한 동적 스톱 로스 설정이나 추가적인 리스크 통제를 위해 후속 스톱 로스 도입과 같은 스톱 로스 조건을 최적화합니다.
  3. 최적의 매개 변수 조합을 찾기 위해 유전 알고리즘이나 그리드 검색과 같은 방법을 사용하여 전략 매개 변수를 최적화하십시오.

요약

BB 브레이크아웃 전략 (BB Breakout Strategy) 은 볼링거 밴드 지표에 기반을 둔 거래 전략으로, 가격이 상부 또는 하부 밴드를 넘어서면 거래 기회를 찾습니다. 전략의 장점은 명확한 신호와 특정 위험 통제 조치와 함께 쉬운 구현입니다. 그러나 전략에는 잠재적으로 높은 거래 빈도 및 신호 지연과 같은 일부 제한도 있습니다. 따라서 실용적인 응용에서는 신호 확인, 스톱-로스 최적화 및 매개 변수 최적화와 같은 분야에서 개선이 고려 될 수 있습니다. 전략의 안정성과 수익성을 향상시키기 위해.


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BB Strategy", overlay=true)

// Input parameters
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500, title="Offset")

// Moving average function
ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Calculate Bollinger Bands
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot Bollinger Bands
plot(basis, "Basis", color=color.blue, offset=offset)
p1 = plot(upper, "Upper", color=color.red, offset=offset)
p2 = plot(lower, "Lower", color=color.green, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))

// Strategy logic
longCondition = ta.crossover(close, upper)
shortCondition = ta.crossunder(close, lower)

// Strategy entries and exits
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)
if (shortCondition and strategy.position_size > 0)
    strategy.close("Long")
if (longCondition and strategy.position_size < 0)
    strategy.close("Short")

관련

더 많은