이중 전략 조합 스토카스틱 느리고 상대적 강도 지수

저자:차오장, 날짜: 2023-12-27 15:18:40
태그:

img

전반적인 설명

이 전략은 고전적인 스토카스틱 슬로우 전략과 상대적 강도 지수 (RSI) 전략을 결합하여 이중 전략을 형성합니다. 스토카스틱이 80 (단기) 를 초과하거나 20 (장기) 이하로 떨어질 때, RSI가 70 (단기) 를 초과하거나 30 (장기) 이하로 떨어질 때 포지션을 열 것입니다.

전략 논리

이 전략은 주로 두 가지 고전적 인 지표를 사용합니다. 스토카스틱 느린 지표와 RSI 지표, 과잉 구매 및 과잉 판매 조건을 결정하기위한 임계 값을 설정합니다.

스토카스틱 느린 부분:

  • 스톡스틱 계산을 위한 뷰백 기간인 스톡스레인지를 14로 설정합니다.
  • StochOverBought를 80로 설정하고 StochOverSold를 20로 설정하십시오. 과잉 구매 및 과잉 판매의 임계 값
  • 세트 매끄러운K로 3 및 매끄러운D로 3, 매끄러운 매개 변수 %K 및 %D 라인

계산된 %K와 %D줄은 코드에서 k와 d로 표시됩니다.

아래에서 %K가 %D를 넘을 때, 그것은 긴 신호입니다. 위에서 아래를 넘을 때, 그것은 짧은 신호입니다. 과잉 구매 / 과잉 판매 판단과 결합하면 기회를 식별하는 데 사용할 수 있습니다.

RSI 부분:

  • RSIlength를 14로 설정합니다. RSI 계산을 위한 워크백 기간입니다.
  • RSIOverBought를 70로 설정하고 RSIOverSold를 30으로 설정하십시오. 과소매와 과소매의 임계 값

계산된 RSI 지표는 코드에서 vrsi로 지정됩니다.

RSI가 70을 넘으면 과잉 구매 신호가 되고, 30을 넘으면 과잉 판매 신호가 됩니다.

이중 전략 입력 논리:

이 전략은 스토카스틱과 RSI가 동시에 과잉 구매/ 과잉 판매 신호를 표시할 때만 포지션을 열고, 즉 자신의 임계 값을 통과합니다.

이 조합은 신호 신뢰성을 높이고 잘못된 신호를 줄이기 위해 두 지표의 보완적 특성을 이용합니다.

이점 분석

이 두 가지 전략 조합의 장점은 다음과 같습니다.

  1. 두 개의 지표의 조합은 서로를 검증하고 잘못된 신호를 줄이고 신호 품질을 높일 수 있습니다.
  2. 스토카스틱 판단 과잉 구매/ 과잉 판매 조건, RSI는 같은 일을 합니다. 조합은 결과를 더 신뢰할 수 있습니다.
  3. 스토카스틱은 %K와 %D의 크로스오버 시스템을 사용하며, 평형 매개 변수들은 외형값에 대한 견고함을 제공합니다.
  4. RSI는 최근 변화에 빠르게 반응하고, 스토카스틱은 중장기 트렌드와 전환점을 판단합니다.
  5. 보수적인 거래 방식, 두 지표가 일치할 때만 포지션을 오픈합니다.

위험 과 해결책

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

  1. 매개 변수 조정 위험

    부적절한 매개 변수 설정은 좋은 기회를 놓치거나 잘못된 신호를 생성할 수 있습니다. 우리는 양적 알고리즘이나 수동 조정을 통해 매개 변수를 최적화하여 최상의 조합을 찾을 수 있습니다.

  2. 신호가 없어

    이중 표시 시스템으로 인해 신호 주파수는 상대적으로 낮고 위치 활용 비율은 높지 않습니다. 우리는 더 많은 입력 신호를 생성하기 위해 매개 변수를 적절히 느슨하게 할 수 있습니다.

  3. 지연 위험

    스토카스틱과 RSI 모두 약간의 지연 효과를 가지고 있으며, 이는 빠른 기회를 놓칠 수 있습니다. 더 민감한 지표가 지원에 도입 될 수 있습니다.

  4. 도구의 특수성

    이 전략은 주식 지수 및 금과 같은 일부 격렬한 변동 도구에 더 적합 할 수 있습니다. 부드러운 도구에는 적용되지 않을 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 더 이상 최적화 될 수 있습니다.

  1. 매개 변수 최적화

    가장 좋은 매개 변수 조합을 찾기 위해 양적으로 또는 수동으로 매개 변수를 최적화합니다.

  2. 스톱 로스 메커니즘을 도입

    단일 거래 손실을 제어하기 위해 가격 움직임 또는 비율에 따라 Stop Loss를 설정합니다.

  3. 다른 지표와 결합

    부피, 이동 평균과 같은 다른 지표를 도입하여 신호 품질을 판단하는 데 도움이 됩니다.

  4. 이중 전략 조건이 느려지자

    더 많은 진입 신호를 생성하기 위해 이중 전략의 문턱을 적절히 완화하십시오.

결론

이 전략은 스토카스틱 슬로우와 RSI를 이중 확인 모드로 결합하여 두 지표가 과잉 구매 / 과잉 판매 신호에 동의 할 때만 지위를 입력합니다. 높은 신호 신뢰성, 보수적인 거래 스타일 등을 갖추고 있습니다. 또한 매개 변수 조정, 신호 부족과 같은 몇 가지 위험이 있습니다. 매개 변수 최적화, 스톱 로스 도입, 안정성을 향상시키기 위해 보조 지표를 추가함으로써 추가 개선이 가능합니다.


/*backtest
start: 2023-12-19 00:00:00
end: 2023-12-26 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Stochastic + RSI, Double Strategy (by ChartArt)", shorttitle="CA_-_RSI_Stoch_Strat", overlay=true)

// ChartArt's Stochastic Slow + Relative Strength Index, Double Strategy
//
// Version 1.0
// Idea by ChartArt on October 23, 2015.
//
// This strategy combines the classic RSI
// strategy to sell when the RSI increases
// over 70 (or to buy when it falls below 30),
// with the classic Stochastic Slow strategy
// to sell when the Stochastic oscillator
// exceeds the value of 80 (and to buy when
// this value is below 20).
//
// This simple strategy only triggers when
// both the RSI and the Stochastic are together
// in overbought or oversold conditions.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/


///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)

 
///////////// RSI 
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)


///////////// Double strategy: RSI strategy + Stochastic strategy

if (not na(k) and not na(d))
    if (crossover(k,d) and k < StochOverSold)
        if (not na(vrsi)) and (crossover(vrsi, RSIOverSold))
            strategy.entry("LONG", strategy.long, comment="StochLE + RsiLE")
 
 
if (crossunder(k,d) and k > StochOverBought)
    if (crossunder(vrsi, RSIOverBought))
        strategy.entry("SHORT", strategy.short, comment="StochSE + RsiSE")
 
 
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)WQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

더 많은