이중 경로 시스템 모멘텀 거래 전략

저자:차오장, 날짜: 2023-11-22 15:26:28
태그:

전반적인 설명

이 전략은 트렌드 추적 및 과잉 판매/ 과잉 구매 판단을 위한 듀얼 레일 거래 시스템을 구축하기 위해 MACD와 스톡 RSI 지표를 결합합니다. 이 전략은 또한 잘못된 판단 가능성을 줄이기 위해 멀티 타임프레임 판단을 하기 위해 일일 및 4시간 시간 프레임에 지표를 구축합니다.

전략 원칙

이 전략은 MACD와 Stoch RSI 지표를 결합하여 구성합니다. MACD는 가격 변화 속도를 판단하는 모멘텀 지표입니다. Stoch RSI는 상대적인 가격 강도를 판단하는 과잉 구매 / 과잉 판매 지표입니다.

이 전략은 우선 트렌드 및 과잉 구매/ 과잉 판매 판단을 위해 일일 및 4시간 시간 프레임에 MACD 및 스톡 RSI 지표를 구성합니다. 두 시간 프레임에서 신호가 활성화되면 해당 구매/판매 작업이 수행됩니다.

특히, MACD 지표는 판단을 위해 황금/죽은 십자가를 형성하는 DIF 및 DEA 라인을 사용하여 구성됩니다. 스톡 RSI 지표는 판단을 위해 황금/죽은 십자가를 형성하는 K 및 D 라인을 사용하여 구성됩니다. 두 지표 쌍 모두 황금 십자가를 가지고있을 때 구매 신호가 생성됩니다. 둘 다 죽은 십자가를 가지고있을 때 판매 신호가 생성됩니다.

따라서 이중 지표 시스템과 다중 시간 프레임 판단을 종합적으로 적용함으로써 전략은 가격 속도와 상대적 강도를 철저하게 판단하여 의사 결정 정확성을 향상시키고 더 나은 수익을 얻는 데 도움이됩니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 종합적인 판단과 더 높은 의사 결정 정확성을 위해 이중 지표 시스템을 결합
  2. 잘못된 판단의 가능성을 줄이기 위해 여러 시간 프레임을 적용
  3. 추세 추적 및 과잉 구매/ 과잉 판매 판단을 채택하여 가격 속도 및 상대적 강도를 모두 고려합니다.
  4. 다양한 제품과 시장 환경에 따라 조정 가능한 유연한 지표 매개 변수
  5. 이해하기 쉽고 확장하기 쉬운 깨끗한 코드 구조

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 완전히 피할 수 없는 체계적 시장 위험은 존재합니다.
  2. 부적절한 지표 매개 변수 설정은 과잉 거래 또는 놓친 기회로 이어질 수 있습니다.
  3. 이중 지표는 여전히 동시에 잘못된 신호를 줄 수 있지만 단일 지표보다 덜 가능성이 있습니다.
  4. 블랙 스완 사건과 같은 급격한 시장 변화에 대처할 수 없습니다

대책:

  1. 매개 변수를 최적화하고 잘못된 판단을 줄이기 위해 거래 조건을 조정
  2. 결합된 판단을 위한 더 많은 지표를 포함
  3. 단일 손실 위험을 제어하기 위해 스톱 로스 메커니즘을 추가합니다.

최적화 방향

이 전략은 다음 측면에서도 개선될 수 있습니다.

  1. 다중 지표 전략에 더 많은 지표를 포함
  2. 동적 매개 변수 최적화를 위한 기계 학습 알고리즘을 추가
  3. 더 포괄적인 시장 상황 판단을 위해 감정 지표, 뉴스 등을 결합하십시오.
  4. 금전 관리를 최적화하기 위해 손해를 중지, 수익 전략을 추가
  5. 더 나은 기회를 발견하기 위해 더 많은 거래 제품에 확장

결론

이 전략은 이중 지표 시스템과 멀티 타임프레임 판단을 결합하여 가격 속도와 상대적 강도를 철저히 판단하여 시장 추세를 효과적으로 파악하고 단일 지표의 결함을 개선할 수 있습니다. 또한 유연한 매개 변수 조정, 쉬운 이해 및 확장과 같은 장점이 있습니다. 멀티 지표 조합, 동적 매개 변수 최적화, 감정 지표 통합 등으로 추가 확장은 전략 성능을 향상시키는 데 도움이 될 수 있습니다. [trans]


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 10:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='[RS]Khizon (UWTI) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
//  ||  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=3)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=3)
//  ||  Strategy Inputs:
trade_size = input(title='Trade Size in USD:', type=float, defval=1)
buy_trade = input(title='Perform buy trading?', type=bool, defval=true)
sel_trade = input(title='Perform sell trading?', type=bool, defval=true)
//  ||  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(title='D1T', series=daily_trigger?0:na, style=circles, color=blue, linewidth=4, transp=65)
plot(title='H4T', series=h4_trigger?0:na, style=circles, color=navy, linewidth=2, transp=0)

sel_open = sel_trade and not daily_trigger and not h4_trigger
buy_open = buy_trade and daily_trigger and h4_trigger
sel_close = not buy_trade and daily_trigger and h4_trigger
buy_close = not sel_trade and not daily_trigger and not h4_trigger
strategy.entry('sel', long=false, qty=trade_size, comment='sel', when=sel_open)
strategy.close('sel', when=sel_close)
strategy.entry('buy', long=true, qty=trade_size, comment='buy', when=buy_open)
strategy.close('buy', when=buy_close)


더 많은