
이 전략은 다중 기술 지표에 기반한 혼성 거래 시스템으로, 거래량 가중 평균 가격 (VWAP), 시간 가중 평균 가격 (TWAP), 변동률 돌파구 및 형태 식별과 같은 여러 차원의 분석 방법을 결합합니다. 전략은 여러 기술 지표의 신호를 통합하여 시장 진입 및 출구 시기를 결정하며, 거래 신뢰성을 높이기 위해 거래량 확인을 결합합니다.
전략의 핵심 논리는 다음과 같은 핵심 구성 요소를 기반으로 합니다.
가격이 부린을 뚫고 경로에 올랐을 때, 기술 형태 신호가 나타나고 높은 거래량과 함께, 시스템은 여러 신호를 생성한다. 가격이 돌파 동력을 잃고 기술 형태가 나타나면, 시스템은 이미 보유한 포지션을 청산한다. 시스템의 정지 설정은 입시 가격으로 ATR 2 배, 손실 정지 설정은 입시 가격으로 ATR 1.5 배로 줄인다.
이것은 다중의 기술 분석 차원을 결합하는 통합 거래 전략이며, 다중의 신호 확인을 통해 거래의 신뢰성을 향상시킵니다. 전략의 핵심 장점은 다차원 분석 방법과 엄격한 거래 조건으로, 이는 가짜 신호의 위험을 줄이는 데 도움이 됩니다. 전략에는 최적화가 필요한 부분이 있지만, 전체 프레임워크는 좋은 확장성과 적응성을 가지고 있습니다.
/*backtest
start: 2024-10-01 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Hybrid Money Making Trading Strategy", overlay=true)
// VWAP Calculation
cumulative_vp = ta.cum(volume * close)
cumulative_vol = ta.cum(volume)
vwap = cumulative_vp / cumulative_vol
plot(vwap, title="VWAP", color=color.blue)
// TWAP Calculation
twap = ta.sma((high + low + close) / 3, 14)
plot(twap, title="TWAP", color=color.orange)
// Volatility Breakout
atr = ta.atr(14)
bb_upper = ta.sma(close, 20) + 2 * ta.stdev(close, 20)
bb_lower = ta.sma(close, 20) - 2 * ta.stdev(close, 20)
volatility_breakout = close > bb_upper
// Pattern Recognition (Basic Example)
head_shoulders = ta.crossover(close, ta.sma(close, 50))
triangle_pattern = ta.crossover(ta.sma(close, 10), ta.sma(close, 50))
pattern_signal = head_shoulders or triangle_pattern
// Volume Confirmation (Require high volume for entry)
vol_avg = ta.sma(volume, 20)
high_volume = volume > 1.5 * vol_avg
// Buy/Sell Signal Conditions
buy_signal = volatility_breakout and pattern_signal and high_volume
sell_signal = not volatility_breakout and pattern_signal
// Track Latest Signal
var float last_signal_price = na
var string last_signal_type = ""
if buy_signal
last_signal_price := close
last_signal_type := "BUY"
if sell_signal
last_signal_price := close
last_signal_type := "SELL"
// Strategy Entry & Exit
if buy_signal
strategy.entry("Long", strategy.long)
strategy.exit("TakeProfit", from_entry="Long", stop=close - 1.5 * atr, limit=close + 2 * atr)
if sell_signal
strategy.close("Long")