
이 전략의 이름은 부린밴드 기반의 가격행동 전략이다. 이는 가격행동 분석과 부린밴드 지표를 통합하여 복합 조건 판단을 사용하여 거래 신호를 생성한다.
이 전략은 먼저 부린띠의 상하 궤도를 계산하고, 마지막 K선에서 부린띠의 상하 궤도를 돌파했는지 여부를 판단한다. 동시에, 마지막 K선에 있는 개체가 이전 K선 개체의 절반밖에 없는지 여부를 판단한다. 이 두 가지 조건이 충족되면 거래 신호를 낸다.
구체적으로, 전략은 하향상태에서 빨간 K선 개체가 작아져 이전 K선 개체의 절반에 불과한 상황을 이용하고, 마지막 K선 종결 가격의 부린 대역 상향 경로를 뚫는 것을 다중 신호로 한다. 반대로, 상승상태에서 녹색 K선 개체가 작아져 이전 K선 개체의 절반에 불과한 상황을 이용하고, 마지막 K선 종결 가격의 부린 대역 상향 경로를 뚫는 것을 공백 신호로 한다.
이 전략은 기술적 지표와 가격 행동 판단을 결합하여 가짜 브레이크를 효과적으로 필터링 할 수 있습니다. 동시에, 트렌드 역점에서만 신호를 발산하여 트렌드에서 반복되는 거래를 피합니다. 또한, 전략은 K선 개체가 작아지는 특성을 활용하여 미세한 조정 후 트렌드 역점 위치를 고정 할 수 있습니다. 이러한 장점은 전략의 안정성과 수익률을 높일 수 있습니다.
이 전략의 주요 위험은 부린 띠 파라미터를 잘못 설정하고 브레이크가 실패하는 것입니다. 부린 띠 파라미터가 너무 크고 너무 작으면 잘못된 판단을 초래할 수 있습니다. 또한, 가격이 부린 띠를 뚫고 내려가더라도 가짜 브레이크가 될 수 있으며 진정한 트렌드 반전을 만들 수 없습니다. 이러한 위험은 전략 거래 손실을 초래할 수 있습니다. 이러한 위험을 줄이기 위해 부린 띠 파라미터를 적절히 조정하거나 다른 지표를 추가하여 조합 검증을 수행 할 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
트렌드 및 파동을 더 효과적으로 포착하기 위해 브린 대역을 최적화합니다.
이윤을 고정하기 위해 이동적 손실을 늘리고, 위험을 관리한다.
MACD, RSI 등의 다른 지표와 함께 검증하고, 가짜 신호를 필터링한다.
기계 학습 알고리즘을 추가하고, 빅데이터 훈련 모델을 활용하여 전략 변수 및 지표 중량 동성을 최적화하십시오.
이 전략은 가격 행동과 브린 대역 지표를 성공적으로 결합하여 낮은 위험 조건에서 높은 수익률을 얻습니다. 그것은 중요한 지점에서만 신호를 발산하고, 노이즈의 방해를 피합니다. 이 전략은 매개 변수 및 필터링 조건을 지속적으로 최적화함으로써 더 안정적인 초과 수익을 얻을 수 있습니다.
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// main codebody taken from Trader Noro - Noro's Crypto Pattern for H1
// Intraday strategy- Exit at EOD at all cost
strategy(title = "Price Action + Bollinger Strategy ",overlay=true)
bar = close > open ? 1 : close < open ? -1 : 0
body = abs(close - open)
avgbody = sma(body, 100)
//calculate simple moving average bollinger bands
b_sma = input(21,minval=1,title=" SMA candle")
b_sma_no_of_deviations = 2.1
b_sma_signal = sma(close, b_sma)
b_sma_deviation = b_sma_no_of_deviations * stdev(close, b_sma)
b_sma_upper= b_sma_signal + b_sma_deviation
b_sma_lower= b_sma_signal - b_sma_deviation
up1 = body < body[1] / 2 and bar[1]==1 and bar == -1 and close[1] > b_sma_upper
dn1 = body < body[1] / 2 and bar[1]==-1 and bar == 1 and close[1] < b_sma_lower
up2 = false
dn2 = false
up2 := (up1[1] or up2[1]) and close < close[1]
dn2 := (dn1[1] or dn2[1]) and close > close[1]
plotarrow(up1 or up2 ? 1 : na, colorup = color.black, colordown = color.black, transp = 0)
plotarrow(dn1 or dn2 ? -1 : na, colorup = color.black, colordown = color.black, transp = 0)
strategy.entry("Buy", true, when = dn1)
strategy.exit("exit", "Buy", profit = 3, loss = 1.5)
strategy.entry("Short", false, when = up1)
strategy.exit("exit", "Short", profit = 3, loss = 1.5)