다중 요인 주도 추세 추종 전략


생성 날짜: 2024-01-17 14:02:22 마지막으로 수정됨: 2024-01-17 14:02:22
복사: 0 클릭수: 568
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 요인 주도 추세 추종 전략

개요

이 전략은 이동 평균 집적 지표 ((MACD) 와 무작위 상대적으로 강한 지표 ((Stoch RSI) 의 두 가지 요인을 결합하여 시장 추세 방향을 판단합니다. 추세가 상승하면 더 많이하고, 추세가 하락하면 공백합니다. 추세 추적 유형 전략에 속합니다.

전략 원칙

이 전략은 MACD와 Stoch RSI를 사용하여 시장의 경향 방향을 판단합니다.

MACD 지표는 빠른 선 ((ema 빠른 선) 과 느린 선 ((ema 느린 선) 과 그 차이를 구성하며, 단기 및 장기 평균의 집적 및 분리 상태를 반영한다. 빠른 선에서 느린 선을 통과하면 구매 신호, 빠른 선에서 느린 선을 통과하면 판매 신호이다.

스토치 RSI 지표는 RSI 지표와 스토치 지표의 장점을 결합하여 시장의 과매매 현상을 보여줄 수 있습니다. 스토치 RSI는 스토치 RSI 신호선보다 크면 구매 신호를, 신호선보다 작으면 판매 신호를 제공합니다.

이 전략은 MACD와 Stoch RSI를 사용하여 일일선과 4시간선에서 시장의 경향 방향을 판단합니다. 일일선과 4시간선에 있는 두 지표가 동시에 구매 신호를 발신할 때, 더 많이 하고, 두 지표가 동시에 판매 신호를 발신할 때, 더 적게 합니다. 이것은 가짜 신호를 효과적으로 필터링하여 신호의 신뢰성을 향상시킵니다.

전략적 이점

  1. 시장의 흐름을 판단하는 이중 요소와 결합하여 가짜 신호를 효과적으로 필터링하여 신호 정확도를 향상시킬 수 있습니다.

  2. 높은 낮은 시간 축 ((일계와 4시간계) 에서 신호를 검증하여 중매를 피하십시오.

  3. 트렌드를 따라가며 흔들리는 시장을 피하라

  4. 전략은 명확하고 간단하며, 실행도 쉽다.

위험과 해결

  1. 트렌드 전환점을 효과적으로 판단할 수 없고, 현지에서 역전되는 스톱로즈가 발생할 수 있다.
  • 적절히 조정된 파라미터 최적화, 또는 다른 지표 판단을 추가
  1. 단일 계약은 시장의 시스템적 위험을 분산시킬 수 없습니다.
  • 다른 계약이나 주식으로 분산 투자
  1. 갑자기 일어난 사건의 영향에 대한 판단이 불가능하다.
  • 기본적 분석과 함께 위험 예방에 대한 인식을 강화합니다.

최적화 방향

  1. MACD와 Stoch RSI의 변수를 조정하여 구매 및 판매 지점을 최적화합니다.

  2. 이동식 중지 전략이 추가되고 수익이 잠겨집니다.

  3. 자금 관리 모듈을 추가하여 단편 포지션을 제어합니다.

  4. 더 많은 판단 요소와 함께 신호의 정확도를 높여줍니다.

  5. 기계 학습 방법을 사용하는 동적 최적화 매개 변수

요약하다

이 전략은 2 인자 모델을 통해 거래 트렌드 방향을 판단하고, 높은 낮은 시간 축 검증 신호와 결합하여, 안정적이고 신뢰할 수있는 트렌드 추적 전략입니다. 특정 위험 예방 능력과 오류 용인 공간을 가지고 있습니다. 후기에는 매개 변수 최적화, 손해 방지 전략, 자금 관리 등의 모듈을 추가하여 더 나은 전략 성능을 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='[RS]Khizon (UGAZ) 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('NGAS', '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('NGAS', '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)