이중 시간 프레임 트렌드를 따르는 거래 전략

저자:차오장, 날짜: 2023-09-12 14:22:39
태그:

이중 시간 프레임 트렌드를 따르는 거래 전략

이 거래 전략은 트렌드에 일찍 들어가기 위해 여러 시간 프레임에 걸쳐 트렌드 방향을 식별합니다. MACD와 스토카스틱 RSI (SRSI) 를 모두 지표로 사용하고 일일 및 4 시간 프레임에서 일관된 신호가 유발되면 거래를합니다.

전략 논리:

  1. 일일 차트에서 MACD와 SRSI를 계산합니다. MACD가 신호 이상과 SRSI %K가 신호 이상을 넘으면 상승 신호로 간주됩니다.

  2. 4시간 차트에서 MACD와 SRSI를 계산합니다. MACD가 신호 이상과 SRSI %K가 신호 이상을 넘으면 상승 신호로 간주됩니다.

  3. 하루와 4시간 상승 신호가 함께 나타났을 때만 장기화합니다.

  4. 일일 및 4시간 상승 신호가 모두 사라지면 긴 포지션을 닫습니다.

  5. 일일 및 4시간 하향 신호 (하래의 MACD와 SRSI 교차) 가 함께 나타나면 단축합니다.

  6. 일일 및 4시간 하향 신호가 사라지면, 단기 포지션을 닫습니다.

  7. 트렌드를 따라 두 개의 신호를 지속적으로 모니터링합니다.

이 전략의 장점은 신호 신뢰성을 향상시키고 격동적인 기간 동안 잘못된 신호를 피하기 위해 이중 필터를 사용하여 트렌드가 발달 할 때 일찍 트렌드에 접근하는 것입니다. 두 가지 시간 프레임의 사용은 트렌드 방향에 대한 더 큰 신뢰를 제공합니다.

그러나 잠재적인 위험은 두 번째에 확인되기 전에 강한 트렌드가 한 시간 프레임에 구축 될 수 있다는 것입니다. 따라서 초기 항목을 놓치고 있습니다. MACD 길이와 같은 매개 변수는 잘못된 신호를 최소화하면서 트렌드를 일찍 포착하도록 최적화해야합니다. 과도하게 민감한 매개 변수는 과도한 거래를 유발할 수 있습니다.

전반적으로, 이중 시간 프레임 트렌드 추적 전략은 초기 단계에서 트렌드 움직임을 포착하는 것을 목표로합니다. 이중 확인은 윙사브를 피하는 데 도움이되지만 때때로 초기 항목을 놓칠 수 있습니다. 신중한 매개 변수 조정과 위험 관리가 필요합니다.


/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy(title='[RS]Khizon (DWTI) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
trade_size = 10000
//  ||  Inputs:
macd_src = input(title='MACD Source:',  defval=close)
macd_fast = input(title='MACD Fast Length:',  defval=12)
macd_slow = input(title='MACD Slow Length:',  defval=26)
macd_signal_smooth = input(title='MACD Signal Smoothing:',  defval=9)
srsi_src = input(title='SRSI Source:',  defval=close)
srsi_rsi_length = input(title='SRSI RSI Length:',  defval=14)
srsi_stoch_length = input(title='SRSI Stoch Length:',  defval=14)
srsi_smooth = input(title='SRSI Smoothing:',  defval=14)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=14)
//  ||  MACD(close, 12, 26, 9):     ||---------------------------------------------||
f_macd_trigger(_src, _fast, _slow, _signal_smooth)=>
    _macd = ema(_src, _fast) - ema(_src, _slow)
    _signal = sma(_macd, _signal_smooth)
    _return_trigger = _macd >= _signal ? true : false
//  ||  Stoch RSI(close, 14, 14, 3, 3)  ||-----------------------------------------||
f_srsi_trigger(_src, _rsi_length, _stoch_length, _smooth, _signal_smooth)=>
    _rsi = rsi(_src, _rsi_length)
    _stoch = sma(stoch(_rsi, _rsi, _rsi, _stoch_length), _smooth)
    _signal = sma(_stoch, _signal_smooth)
    _return_trigger = _stoch >= _signal ? true : false
//  ||-----------------------------------------------------------------------------||
//  ||-----------------------------------------------------------------------------||
//  ||  Check Directional Bias from daily timeframe:
daily_trigger = security('USOIL', 'D', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))
h4_trigger = security('USOIL', '240', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))

plot(0, style=circles, color=daily_trigger?blue:na, linewidth=4, transp=65)
plot(0, style=circles, color=h4_trigger?navy:na, linewidth=2, transp=0)

sel_open = daily_trigger and h4_trigger
buy_open = not daily_trigger and not h4_trigger

strategy.entry('sel', long=false,  comment='sel', when=sel_open)
strategy.entry('buy', long=true,  comment='buy', when=buy_open)


더 많은