
볼프 반복 소나 (Bolfo Repeat Sonar) 전략은 볼프 밴드를 기반으로 한 양적 거래 전략이다. 이 전략은 볼프 밴드 상하의 가격 간격을 사용하여 시장의 변동 범위를 판단하고 잠재적인 진입 및 퇴출 시간을 식별한다.
이 전략은 다음과 같은 몇 가지 지표에 의해 판단됩니다.
볼프 중선: 시장의 전반적인 추세를 나타내는 간단한 이동 평균 SMA.
볼프 상반: 중간선 + N배 표준차 △ 상반은 시장의 변동의 상한을 나타낸다。
볼포스 하위 궤도: 중간선- N배 표준차. 하위 궤도는 시장 변동의 하위 한계를 나타낸다.
닫기 가격이 하반구보다 높고, 열기 가격이 하반구보다 낮을 때, 잠재적인 바닥으로 판단하고, 진입을 고려할 수 있다. 닫기 가격이 상반구보다 높고, 열기 가격이 상반구보다 낮을 때, 잠재적인 돌파 상반구 신호로 판단하고, 진입을 할 수 있다.
닫기 가격이 상반선보다 낮고, 열기 가격이 상반선보다 높을 때, 볼띠 상단에 진입한 것으로 판단하여 퇴장을 고려해야 한다. 닫기 가격이 상반선보다 높고, 상반선과 하반선이 중간선보다 2배 이상 떨어져 있을 때, 변동이 증가한 신호로 판단하여 퇴장을 고려해야 한다.
이중 궤도 조합 판단을 이용하여 신호의 정확도를 높인다. 종식 가격과 개시 가격의 조합 판단을 통해 일부 가짜 신호를 제거할 수 있다.
표준 차이의 변동 범위를 계산하여 시장 변화에 자동으로 적응합니다. 고정 가격 범위를 수동으로 설정할 필요가 없습니다.
중선 트렌드 판단과 결합하여, 트렌드가 없는 시장에서 반복적인 흔들림을 피한다.
중간 궤도 돌파를 사용하여 트렌드 반전의 시점을 판단할 수 있다.
중단계 운영 전략, 장단계 보유에 적합하지 않다. 시장 상황을 면밀히 관찰하고, 적시에 손실을 막아야 한다.
볼포르 벨트는 특정 시간 프레임에서만 유효하다. 부적절한 파라미터 설정을 사용하면 가짜 신호가 발생하기 쉽다.
정리 시장에서, 중선 흔들림이 더 커, 상하 레일 교환이 더 자주 발생할 수 있다. 이 때 포지션 규모를 줄이거나, 일시적으로 운영을 중단해야 한다.
더 긴 시간 주기에 적응하기 위해 파라미터를 조정한다. 주기 길이를 증가시켜 지수 이동 평균과 같은 방법을 사용하여 중궤도를 최적화할 수 있다.
ATR과 같은 변동 판단 지표를 추가하여 가짜 브레이크를 추가적으로 방지하십시오. ATR의 사전 빌드 값을 필터링 조건으로 설정하여 특정 범위 이상의 변동이있을 때만 거래 신호를 생성 할 수 있습니다.
다른 지표와 결합하여, Barry 필터 효과를 달성한다. 예를 들어, 교역량을 증가시키는 판단 규칙은 교역량이 커지면만 동작한다.
볼프 반복 소나 전략은 가격 통로를 정의하여 시장의 범위 극한점을 잠재적 거래 기회로 자동으로 식별한다. 그것은 중·단기 가격 반전을 포착하는 데 적합하며, 트렌드 추적 전략의 보완이 된다. 합리적인 최적화를 통해 위험을 효과적으로 제어하고 수익 가능성을 높인다.
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BB Strategy", shorttitle="BB", overlay=true)
length = input.int(55, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1., minval=0.001, maxval=50, title="StdDev")
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)
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Entry conditions
enterCondition = (close > lower and open < lower and close > open) or (close > upper and open < upper and close > open)
// Exit conditions
exitCondition = (close < upper and open > upper) or (close > open and (upper - lower) > 2 * basis) or (close < lower)
strategy.entry("Long", strategy.long, when=enterCondition)
strategy.close("Long", when=exitCondition)
// Plotting
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))