이 전략은 여러 기술 지표가 결합된 복합 거래 시스템으로, 주로 Ultimate Trailing Stop Bot (UT Bot), Hull Moving Average (HMA) 및 Open Range Breakout (ORB) 의 세 가지 지표를 사용하여 거래 신호를 생성합니다. 전략의 핵심 아이디어는 동적 중단 메커니즘을 통해 시장 추세를 포착하고 HMA를 사용하여 트렌드 방향을 확인하여 궁극적으로 더 정확한 거래 입출구를 달성합니다.
UT Bot: 이 지표는 평균 실제 파장 (ATR) 을 기반으로 동적 스톱로드를 계산하고, 시장의 변동성에 따라 자율적으로 조정할 수 있다. 가격이 스톱로드를 돌파했을 때 거래 신호가 발생할 수 있다.
HMA: Hull 이동 평균은 전통적인 이동 평균의 지연성을 줄이고 더 명확한 추세 방향 표시를 제공합니다. HMA의 색상 (녹색은 상승 추세를 나타내고, 빨간색은 하락 추세를 나타냅니다) 은 거래 신호를 검증하는 데 사용됩니다.
신호 확인: 이 전략은 다음 조건을 충족시킬 때만 거래를 실행합니다.
ORB: 상장 기간의 브레이크 지표는 매 거래 시기의 시작에 잠재적인 브레이크 기회를 식별하여 거래의 시간 효율성을 증가시킵니다.
다중 지표 연동: 여러 지표를 결합하여 전략은 더 포괄적인 시장 분석을 제공하여 잘못된 신호를 줄일 수 있습니다.
동적 위험 관리: UT Bot의 동적 상쇄 메커니즘은 시장의 변동성에 따라 자동으로 조정하여 위험을 효과적으로 제어할 수 있습니다.
트렌드 확인: HMA 색상의 변화를 사용하여 트렌드 방향을 확인하고 거래 신호의 신뢰성을 향상시킵니다.
적응력: 전략은 다양한 시장 조건과 변동성에 적응할 수 있고, 좋은 유연성을 갖는다.
정확한 입출장: 엄격한 신호 확인 메커니즘을 통해 더 정확한 거래 시간을 파악합니다.
과도한 거래: 불안한 시장에서 거래의 비용이 증가하는 거래 신호가 자주 발생할 수 있습니다.
지연성: HMA가 지연성을 줄였음에도 불구하고 빠르게 변하는 시장에서 신호 지연이 발생할 수 있습니다.
가짜 브레이크: 낮은 변동성이 있는 시장에서 가짜 브레이크 신호가 발생하여 불필요한 거래가 발생할 수 있습니다.
매개 변수 감수성: 정책 성능은 입력 매개 변수 (UT Bot의 감수성 등) 에 매우 민감할 수 있으며, 신중한 최적화가 필요합니다.
필터를 도입: 변동성 필터를 추가하여 낮은 변동성 시장에서 거래 빈도를 줄이는 것을 고려할 수 있습니다.
최적화 매개 변수: UT Bot와 HMA의 매개 변수를 재검토하여 최적의 매개 변수 조합을 찾습니다.
거래량 분석에 추가: 거래량 지표를 도입하여 가격 돌파의 유효성을 확인하는 데 도움이됩니다.
시간 필터: 불리한 거래 시간에 거래하는 것을 피하기 위해 시간 필터를 추가하는 것을 고려하십시오.
리스크 관리 최적화: 동적인 포지션 관리를 구현하고, 시장의 변동성에 따라 거래 규모를 조정한다.
이 다중 지표 조합 동적 정지 트렌드 추적 전략은 UT Bot, HMA 및 ORB를 통합하여 포괄적이고 유연한 거래 시스템을 구현합니다. 주요 장점은 시장의 변동에 적응하고 신뢰할 수있는 트렌드 확인을 제공하며 정확한 거래 시간을 파악하는 것입니다. 그러나 전략은 과도한 거래 및 변수 민감성 등의 위험에 직면합니다. 추가 필터링 메커니즘을 도입하고, 변수 설정을 최적화하고, 위험 관리 방법을 개선함으로써 전략은 다양한 시장 조건에서 더 안정적인 성능을 발휘할 수 있습니다.
/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('SVMKR_UT_HMA_ORB_Strategy', overlay=true)
// Inputs
a = input(2, title='UT Key Value. \'This changes the sensitivity\'')
c = input(1, title='UT ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')
// UT Bot Logic
xATR = ta.atr(c)
nLoss = a * xATR
src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close
xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2
pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3
ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)
// Hull Moving Average Calculation
n = input(31, title='Hull MA Period')
n2ma = 2 * ta.wma(close, math.round(n / 2))
nma = ta.wma(close, n)
diff = n2ma - nma
sqn = math.round(math.sqrt(n))
n1 = ta.wma(diff, sqn)
c1 = n1 > n1[1] ? color.green : color.red
plot(n1, color=c1, linewidth=2, title='HullMA')
// Strategy Buy and Sell Conditions
buyCondition = src > xATRTrailingStop and above and close > n1 and c1 == color.green
sellCondition = src < xATRTrailingStop and below and close < n1 and c1 == color.red
// Execute Strategy Orders
if buyCondition
strategy.entry('Buy', strategy.long)
if sellCondition
strategy.entry('Sell', strategy.short)