Bollinger Bands %B 지표를 기반으로 한 장기 거래 전략


생성 날짜: 2024-02-01 11:15:44 마지막으로 수정됨: 2024-02-01 11:15:44
복사: 0 클릭수: 567
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

Bollinger Bands %B 지표를 기반으로 한 장기 거래 전략

개요

이 전략은 부린띠 %B 지표에 기반하여 거래 신호를 설계하고, %B 값이 설정된 마이너스보다 낮을 때 더 많은 것을 하고, 동적으로 상장하는 방법을 사용하여 트렌드를 추적하고, 미리 설정된 스톱 손실 조건에 도달한 후 평소한다. 이 전략은 하향 부린띠 지지점을 뚫은 후 반발 상황을 식별하는 데 사용됩니다.

전략 원칙

  1. N일 브린 띠의 중간, 상단, 하단 레일을 계산한다
  2. %B값을 계산합니다:
  3. %B값이 설정된 임계값 (기본 0) 보다 낮으면 더 많이 합니다.
  4. 포지션 개시 가격을 기준으로 하여, 스톱 라인 (설정 포지션 개시 가격의 105%) 과 스톱 라인 (설정 포지션 개시 가격의 95%) 을 계산합니다.
  5. 포지션 개설 후, 조건만 충족하면 계속 포지션을 올립니다.
  6. 가장 먼저 발동된 스톱 스톱 손실 조건은 평준화를 결정합니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. %B 지표를 사용하여 부린 벨트 아래의 레일 서포트 반발 지점을 식별하고, 높은 효율성을 갖는다.
  2. 동적 상장 방식을 사용하여 트렌드 수익을 추적할 수 있습니다.
  3. 정지 손실 조건이 명확하여 위험 관리에 도움이 됩니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. %B 지표는 거짓 신호를 발산할 가능성이 높으며, 다른 지표와 함께 확인해야 합니다.
  2. 지진이 더 자주 발생할 수 있습니다.
  3. 너무 급진적일 경우 더 큰 위험이 발생할 수 있습니다.

대응방법:

  1. KD, MACD 등의 지표 조합과 함께 거래 신호의 신뢰성을 보장합니다.
  2. 스탠드 포지션을 조정하여 흔들림에 대한 공간을 확장합니다.
  3. 1회 리저지 비율을 합리적으로 제어하여 위험의 통제를 벗어나는 것을 방지합니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다양한 변수 조합을 테스트하여 최적의 변수를 찾습니다.
  2. 이자율이 일정 비율에 도달한 후에 이자율을 중지하는 이자율 논리를 최적화한다
  3. 유동성 필터링을 늘리고, 유동성이 낮은 주식의 잘못된 거래를 방지합니다.

요약하다

이 전략은 전반적으로 좀 더 안정적인 긴 라인 거래 전략이다. 인식 능력과 변수 최적화 모두 향상될 여지가 있다. 다른 지표 필터링 신호와 함께 포지션 관리를 잘 제어하면 이 전략은 추세 상황에서 더 나은 수익을 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Girdiler
length = input.int(20, title="BB Length")
src = input(close, title="Source")
dev = input.float(2.0, title="Deviation")
kar_hedefi = input(5, title="Take Profit")
zarar_durumu = input(100, title="Stop Loss")
start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date")
end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date")
altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin")

// Bollinger Bantları %B göstergesi
basis = ta.sma(src, length)
stdDev = ta.stdev(src, length)
upperBand = basis + dev * stdDev
lowerBand = basis - dev * stdDev
percentB = (src - lowerBand) / (upperBand - lowerBand)

// Alım-Satım Sinyalleri
longCondition = percentB < altinda_kalirsa_long

// Kar/Zarar Hesaplama
takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100)
stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100)

// Long (Alım) İşlemi
if (longCondition )
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss)

// Take Profit Seviyesi Çizgisi
plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)