調整されたRSIバックテスト戦略 V2

作者: リン・ハーンチャオチャン開催日:2023年9月21日 15:02:06
タグ:

概要

この戦略は,ジョン・エラーズによって開発されたRSIインジケーターの強化版である.その主な利点は,遅延を最小限に抑えながらRSI曲線を滑らかにすることです.

働き方

  1. 平均値 xValue を 6 つのバーで計算する.

  2. xValue を基に CU23 の上向き和と CD23 の下向き和を計算する.

  3. 標準化された RES 値 nRes を CU23/(CU23 + CD23 として計算する.

  4. nRes を値値と比較して長/短信号を生成する.

  5. 信号を逆転させるオプション

  6. シグナルに基づいて長/短を入力します.

利点

  • 滑らかなRSI曲線は誤った信号を減らす
  • 最適値を見つけるための調整可能なパラメータ
  • リバース・トレード 異なる市場状況に適応可能
  • シンプルで直感的な論理

リスク

  • パラメータの最適化が不十分である場合,誤った信号が過剰になる可能性があります.
  • 遅延が残る 短時間の逆転を 見逃す可能性があります
  • リバース トレーディングは取引頻度とコストを増加させる

オプティマイゼーションの方向性

  • 最適な組み合わせを見つけるためにパラメータを最適化
  • 追加指示器のフィルター信号
  • 単一の損失を制御するストップ損失論理を追加
  • 最適な保持期間を見つけるためのバックテスト
  • パラメータ最適化のための機械学習を探索する

結論

この戦略は,計算を向上させ,誤った信号を一定程度減らすことで,効率的にRSI曲線を滑らかにする.さらなるフィルタリングとパラメータ最適化はパフォーマンスを向上させることができる.しかし,いくつかの遅れはモメントシステムとして持続する.全体として,シンプルで信頼性の高いブレイクアウトシステムはさらなる研究と最適化に価値がある.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/11/2017
// This is new version of RSI oscillator indicator, developed by John Ehlers. 
// The main advantage of his way of enhancing the RSI indicator is smoothing 
// with minimum of lag penalty. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Smoothed RSI Backtest ver.2")
Length = input(10, minval=1)
TopBand = input(0.8, step=0.01)
LowBand = input(0.2, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xValue = (close + 2 * close[1] + 2 * close[2] + close[3] ) / 6
CU23 = sum(iff(xValue > xValue[1], xValue - xValue[1], 0), Length)
CD23 = sum(iff(xValue < xValue[1], xValue[1] - xValue, 0), Length)
nRes = iff(CU23 + CD23 != 0, CU23/(CU23 + CD23), 0)
pos = iff(nRes > TopBand, 1,
	   iff(nRes < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(nRes, color=blue, title="Smoothed RSI")

もっと