
적응성 변동성 돌파 전략은 트렌드 추적 전략이다. 그것은 강한 상승이 특정 수평 경계를 넘어서는 돌파 신호를 식별하여 다수 포지션을 구축하고 상승 추세를 계속 추적하여 다음 날 상장 할 때 이익을 얻습니다.
이 전략은 Larry R. Williams이 제안한 것으로, 그는 유명한 선물 및 주식 거래자이다. 이 전략은 가격의 돌파구를 포착하려고 한다. 이 돌파구는 종종 시장의 전환을 예고한다. 이러한 신호를 제때 식별하고 포지션을 구축함으로써 새로운 시장의 추세를 추적하여 수익을 얻을 수 있다.
이 전략의 핵심 지표는 ?? 일정한 수평 ?? 이며, 다음과 같은 공식으로 계산된다:
一定水平 = 收盘价 + k * (最高价 - 最低价)
여기서 k는 0.6의 경험 계수이다. 이 공식에는 최고 가격과 최저 가격의 변동성 요소가 추가되어, 시장의 반복에 적응할 수 있도록 브레이크 포인트를 더 유연하게 만든다.
당일 최고 가격이 계산된 의 일정 수준 을 초과할 때, 가격의 돌파구가 있음을 나타냅니다. 이 때 전략은 다중 포지션을 구축합니다. 다음 날 상장할 때 포지션이 모두 종료됩니다.
스톱 손실 수준은 전날의 최저 가격과 진입 가격의 절반으로 설정되어 손실이 확대되는 것을 막습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
변동성을 포착하기 위해: 전략은 최고 가격과 최저 가격 계산의 돌파구를 추가하여, 돌파구 신호를 더 유연하게 만들어 가격 변화의 속도를 포착할 수 있다.
적시에 입점하여 트렌드를 추적하세요: 매일의 돌파 신호를 계산하여 새로운 트렌드를 적시에 파악하고 가격 상승 속도를 따라잡을 수 있습니다.
리스크 컨트롤: 합리적인 스톱 포지션을 설정하여 단독 손실을 효과적으로 제어할 수 있다.
이 전략에는 다음과 같은 위험도 있습니다.
파격 실패 위험: 가격 파격은 지속적으로 상승할 필요는 없으며, 단기 허위 파격일 수 있다. 이때 손실이 발생한다.
극단적 상황 위험: 주식 재해, 갑작스러운 사건과 같은 극단적 상황에서는 가격이 파열되고 폭등할 수 있으며, 이로 인해 정지 손실이 유발되어 큰 손실이 발생할 수 있습니다.
과도한 거래 위험: 매일 매장하고 매장하면 거래 빈도와 수수료 부담이 증가합니다.
이 전략은 다음과 같은 관점에서 최적화될 수 있습니다.
곱셈을 추가: 돌파 계산 공식에 곱셈을 추가하여 시장의 변동이 커지면 적절히 축소하고, 시장이 안정되면 적절히 확대하여 전략을 더 탄력하게 만듭니다.
포지션 보유 기간을 연장: 포지션 보유 기간을 2일 또는 3일로 연장하여 단기 허위 돌파구를 필터링하십시오.
스톱 포지션을 최적화한다: 스톱 포지션을 부린 반지 하위, 전일 종결 가격 등과 같은 더 깊은 지지 위치에 설정한다.
적응적 변동성 돌파 전략은 가격의 변동성과 리듬을 실시간으로 추적함으로써 트렌드 추적을 구현한다. 전통적인 돌파 전략에 비해 더 탄력적이고 포착 능력을 갖는다. 그러나 극단적인 상황에서는 스톱로스가 돌파될 수 있다는 위험도 주의해야 한다. 포지션 보유 시간과 스톱로스 위치 최적화를 통해 더 나은 결과를 얻을 수 있다.
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Dicargo_Beam
//@version=5
strategy("Volatility Breakout Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100,process_orders_on_close=false)
k = input.float(0.6)
[o,h,l,c] = request.security(syminfo.tickerid,"D",[open,high,low,close])
lp = math.log(c[1])+(math.log(h[1])-math.log(l[1]))*k
_lp = math.pow(2.718,lp)
longcond = _lp < high
exit = hour==0 or math.log(close) < (math.log(l[1])+lp)/2
plot(_lp,"Entry",color=color.yellow)
//plot(l,"Yesterday's Low")
plot((_lp+l[1])/2,"StopLoss",color=color.red)
strategy.entry("Long", strategy.long,comment = "Long", when = longcond and strategy.opentrades == 0)
strategy.close("Long", comment="Exit", when = exit)
var bg = 0
bg := if hour == 0
bg + 1
else
bg[1]
bgcolor(bg/2== math.floor(bg/2) ? color.new(color.blue,95):na)