
이 전략은 부린 띠와 헐 지표의 교차를 기반으로 거래 신호를 생성한다. 헐 지표에 부린 띠를 통과할 때 더 많은 것을 하고, 헐 지표 아래에서 부린 띠를 통과할 때 빈 것을 한다. 이 전략은 부린 띠의 돌파 전략과 헐 지표의 트렌드 추적 전략을 결합하여 둘의 장점을 이용한다.
이 전략은 주로 브린 벨트와 헐 지표의 교차에 기초하여 거래 신호를 생성한다.
첫째, 브린 띠는 세 개의 선을 포함합니다: 중간 궤도, 상단 궤도 및 하단 궤도. 중간 궤도는 n 일 이동 평균이며, 상단 궤도 각은 중간 궤도 각에서 표준 차이를 더합니다. 가격이 위 궤도를 돌파하면 돌파 할 기회가 있으며, 가격이 하단을 돌파하면 회수 할 기회가 있습니다.
둘째, 헐 지표는 트렌드를 추적하는 지표이다. 그것은 두 개의 다른 기간의 가중된 이동 평균 사이의 차이를 사용하여 현재의 움직임을 판단한다. 단기 평균이 장기 평균보다 높으면 다면 위로, 반대로 공허 하향으로 분류된다.
이 전략은 이 두 지표의 장점을 결합하는 것이다. 헐 지표에 부린 띠를 통과할 때, 주가가 트렌드 상향 단계에 들어갈 수 있다고 생각하면, 이 때 더 많이 한다. 헐 지표에 부린 띠를 통과할 때, 주가가 회귀 하향 단계에 들어갈 수 있다고 생각하면, 이 때 공을 한다.
이 두 지표의 장점을 결합하여 거래 신호를 더욱 신뢰할 수 있습니다.
흐르 지표를 사용하여 트렌드 방향을 판단하고, 부린 띠를 판단하여 저항 위치를 지원하여 교차 신호를 형성하여 수익 가능성을 높일 수 있습니다.
브린 띠와 헐 지표의 파라미터를 조정함으로써, 다른 주기의 주식에 대해 최적화 할 수 있으며, 적용 범위가 넓다.
주가가 수평조정상태에 있을 때 이 전략은 더 많은 가짜 신호를 생성하여 손실을 초래할 수 있다. 최적화 매개 변수 또는 필터 조건을 추가함으로써 가짜 신호를 줄일 수 있다.
주가격이 급격히 변동할 때, 부린띠와 헐 지표는 동시에 거래 신호를 발산할 수 있다. 신호 순차성을 확보하여 교차 신호 판단 오류를 피하는 것이 필요하다. 손실을 제어하기 위해 스톱을 추가하는 것을 고려할 수 있다.
코드에서 직접 창고 개장 수를 100%로 설정한다. 실제 배포 시, 창고 위치 관리를 조정해야 하며, 창고를 완전히 열 수 없으며, 손실 확장을 초래할 수 있다.
더 많은 주기를 가진 주식에 적응하기 위해 브린 띠와 헐 지표의 최적화 파라미터를 테스트 할 수 있습니다.
거래량이나 변동률을 증가시키는 필터로, 회수할 때 잘못된 신호를 피한다.
손해 중지 전략을 최적화, 이동 손해 중지 설정 또는 단 단 손해 중지 설정.
포지션 관리 규칙을 조정하여 손실 확산을 방지하기 위해 재입장 조건이 추가되었습니다.
이 전략은 브린 띠의 돌파 전략과 헐 지표의 트렌드 추적 전략을 통합하여 두 가지의 교차로 거래 신호를 형성하여 트렌드 추적과 돌파의 이중 효과를 달성한다. 이 전략은 근본적으로 큰 변화가 일어나지 않는 전제 하중 짧은 라인 주식에 대해 강한 적응력을 가지고 있다. 그러나 실제 배포 시에는 주식 특성에 맞는 변수를 최적화하고, 포지션 관리, 손해 중지 전략 등을 적절히 조정하여 전략을 더 튼튼하게 할 필요가 있다.
/*backtest
start: 2023-11-30 00:00:00
end: 2023-12-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Strategy Hull Bollinger", shorttitle="Hull bollinger",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)
n=input(title="period",defval=3)
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
i = input(1)
PP = close[i]
length1 = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=10, step=0.2)
basis = sma(src, length1)
dev = mult * stdev(src, length1)
upper = basis + dev
lower = basis - dev
TP = input(500) * 10
SL = input(500) * 10
TS = input(20) * 10
TO = input(10) * 10
CQ = 100
TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na
longCondition = crossover(n1,lower)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(n1,upper)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)