この戦略は,RSIが70を超えると売る (または30を下回ると購入する) 伝統的なRSI戦略と,ストカスティック・スロー戦略を組み合わせて,ストカスティック・オシレーターが80を超えると売る (そして20を下回ると購入する) 伝統的なストカスティック・スロー戦略を組み合わせています.
この簡単な戦略は,RSI とストカスティックが両方が過買いまたは過売状態にある場合にのみ起動します.S&P 500の1時間チャートは最近この二重戦略でかなりうまく機能しました.
この戦略は,RSIのみを測定する"ストカスティックRSI"と混同すべきではありません.
すべての取引には高いリスクが伴う.過去の業績は必ずしも将来の結果を示すものではない.
バックテスト
/*backtest start: 2022-04-24 00:00:00 end: 2022-05-23 23:59:00 period: 30m basePeriod: 15m 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)