볼린저 밴드를 기반으로 한 지능형 추적 거래 전략


생성 날짜: 2024-01-17 14:05:36 마지막으로 수정됨: 2024-01-17 14:05:36
복사: 1 클릭수: 590
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드를 기반으로 한 지능형 추적 거래 전략

개요

이 전략은 부린 띠 지표 디자인에 기반하여, 가격이 부린 띠를 돌파할 때 공백을 하고, 경로를 돌파할 때 더 많이 하고, 거래를 지능적으로 추적한다.

전략 원칙

이 전략은 브린 띠의 중선, 상반도, 하반도 기반 지표를 사용한다. 중선은 n일 종결 가격의 이동 평균이며, 상반도는 중선 상의 편차 두 표준 차이를 나타내고, 하반도는 중선 아래의 편차 두 표준 차이를 나타낸다. 가격이 하반도 순서에서 지나갈 때, 더 많은 것을 하고, 가격이 상반도 순서에서 지나갈 때, 공백을 한다. 이렇게하면 시장의 변동성에 따라 가격을 지능적으로 추적할 수 있다.

특히, 전략은 두 가지 지표에 의해 판단됩니다.

  1. ta.crossover ((source, lower): 종전 가격에서 트레일 아래로 돌고, 더 많이 한다

  2. ta.crossunder ((source, upper): 종전 가격 아래로 궤도를 돌고, 공백

평정상황을 촉발할 때, strategy.cancel () 함수를 사용하여 현재 지분을 평정한다.

전략적 강점 분석

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

  1. 브린 벨트 지표에 기반하여 시장의 변동성을 포착하여 가격 움직임을 효과적으로 추적할 수 있습니다.
  2. 규칙이 명확하고 간단하며 이해하기 쉬운 구현
  3. 주기 길이, 표준 차이의 곱 등과 같은 사용자 정의 가능한 파라미터, 적응력이 강하다
  4. 이동 상쇄, 고정 상쇄 및 이동 정지 등의 최적화 전략 효과를 구성할 수 있습니다.

전략적 위험 분석

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

  1. 브린 벨트 뚫림은 가짜 뚫림으로 인해 가짜 신호가 발생할 수 있습니다.
  2. 효과는 매개 변수 최적화에 의존하고, 매개 변수 선택이 적절하지 않으면 수익성에 영향을 줄 수 있다.
  3. 단편적 손실을 효과적으로 통제할 수 없는 단편적 손실 추적의 어려움

대응방법:

  1. 다른 지표와 함께 필터링 신호를 사용하여 가짜 돌파를 방지합니다.
  2. 이 경우, 각 변수들의 조합을 선택합니다.
  3. 이동 중지 또는 트렌드 추적 중지 클립을 추가

전략 최적화 방향

이 전략은 더욱 개선될 수 있습니다.

  1. 다른 지표와 함께 트렌드 방향을 판단하여 부린 벨트 전략에 적합하지 않은 시장을 피하십시오.
  2. 다양한 주기 변수의 효과를 테스트하여 최적의 주기를 찾습니다
  3. 이동 상쇄 또는 트렌드 추적 상쇄 메커니즘을 추가하여 단독 손실을 효과적으로 제어합니다.

요약하다

이 전략은 브린 띠 지표 디자인에 기반하여 가격 돌파 위아래 방식을 사용하여 자동 추적을 구현한다. 전략은 간단하고 이해하기 쉽고, 시장의 변동성에 민감하며, 파라미터 최적화 및 스톱 로즈 방식으로 효과를 더욱 최적화 할 수 있다. 전반적으로 이 전략은 변동성이 높은 주식 지수 또는 상품 시장에 적합하다. 거래자는 자신의 거래 선호도에 따라 적절한 품종과 파라미터를 선택하여 재검토를 수행하고 최적화 할 수 있습니다.

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

//@version=5
strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
    alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandLE")
    alert(message='cancel long', freq=alert.freq_once_per_bar_close)
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
    alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandSE")
    alert(message='cancel short', freq=alert.freq_once_per_bar_close)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

//Lines of code added to the original built-in script: 14, 17, 20 and 23 only.
//They trigger alerts ready to be executed on real markets through TradingConnector
//available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5