ストキャスティック・オーバーセール・オーバー買い範囲RSI戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-11 13:19:08
タグ:

img

概要

ストーカスティックオーバーソールドとオーバー購入範囲RSI戦略は,市場機会をより柔軟に把握するために,RSIのオーバーソールドとオーバーセールドの限界値を動的に調整する.この戦略は,相対強度指数 (RSI) を主な取引指標として使用し,複数のランダムなオーバーソールドとオーバーセールパラメータを設定する.RSI線がランダムな限界範囲を横切ったときに取引信号を生成する.

戦略の論理

この戦略の主な論理は,株価が過剰購入または過剰販売されているかどうかを判断するためにRSI指標を使用することです.RSIは,現在の価格傾向を判断するために,閉じる価格と閉じる価格の平均値を比較します.ストカストティックRSI戦略は固定された過剰購入および過剰販売パラメータを使用しません.代わりに,複数のランダムな値範囲を設定し,RSI線がこれらのランダムな範囲を横切ると取引信号を生成します.

例えば,典型的なRSI戦略では,30を値として使用し,RSIが30を下回り,RSIが70を超えるとポジションを閉じる.しかし,このストカスティックRSI戦略では,値範囲として20から30の間の複数のランダム値を設定します.これは,より柔軟な取引戦略により,より多くの機会のポイントでポジションを開くことができます.

具体的には,この戦略の主な論理は次のとおりです.

  1. RSI パラメータの長さを設定します.例えば,6日間のRSI
  2. ランダムにオーバー買い・オーバーセール範囲を設定する
  3. RSIがランダムな過売れ範囲を下回るとロングする
  4. RSI がランダムなオーバー買い範囲を超えた場合,ポジションを閉じる

利点

このストカスティック・オーバーセール・オーバー買い範囲のRSI戦略は,従来のRSI戦略と比較して,以下の主な利点があります.

  1. ランダムな値設定はより柔軟で,より多くのチャンスポイントでポジションを開くことができます.固定的な値には2つのポイントのみがあります.この戦略では,より多くの取引機会を把握するために複数のランダムな範囲を設定します.

  2. ランダムな範囲設定は,市場の周期性をよりよく反映することができる.合理的な限界範囲は,市場のサイクルによって異なる可能性があります.ランダムな設定は,異なる市場状況に適応することができます.

  3. 複数のランダムレンジの組み合わせは,比較的完全な取引システムを形成する.単一の取引信号は失敗する傾向があるが,この戦略における複数のレンジによって形成された複数の取引論理は,戦略をより安定かつ信頼性のあるものにする.

  4. RSIインジケーター自体は高い安定性を持っています.トレンドインジケーターとして,RSIは価格の傾向を明確に決定することができます.価格自体と比較して,RSI信号は偽陽性の可能性が低い.

  5. この戦略は,実装が簡単で,バックテストも簡単です.複雑な式なしで基本的なRSI計算のみを伴うため,実装とテストが非常に簡単です.これは戦略を最適化し改善することも簡単です.

リスク

ストカスティックRSI戦略にはいくつかの利点がありますが,大きなリスクもあります.

  1. 他の指標と同様に,RSIは市場の動きを完璧に予測することはできません.RSIは歴史的なデータから計算され,将来の価格に対する決定的な予測力はありません.

  2. ランダムな範囲の選択で曲線のフィッティングのリスクは依然としてあります.戦略が過去の市場動きにフィッティングするだけで,将来の市場状況に適応することができないことを防ぐ必要があります.

  3. 多重取引論理は,例えば,ロングエントリー信号の後に接近ポジション信号を発信する場合がある.最適なパラメータを見つけるには注意深くテストする必要がある.

  4. 最適な範囲の組み合わせは慎重に特定する必要があります.範囲の密度と方向は,絶えず調整と最適化が必要です.

  5. RSI戦略は,中期から長期のトレンド取引に適しています.短期的には,RSI信号が遅れる可能性があります.逆転リスクを減らすために取引頻度は制御する必要があります.

主なリスク管理アプローチは,安定性と収益性を確保するために,長期間にわたる厳格なバックテストとさまざまな市場条件を採用することです.同時に,ポジションサイズ管理は健全なリスク管理で制御する必要があります.

改良

このストカスティックRSI戦略では,主な最適化方向は以下の通りである.

  1. 5日,10日,20日等をテストして最適なRSIパラメータ長さを求めます

  2. 適正な範囲分布を見つけるため,よりランダムな範囲をテストし,過度の密度を避けるのに十分なカバーを確保する.

  3. 単一貿易リスクを制御し,持続的な収益性を確保するために,利益を取ったり,損失を停止するメカニズムを組み込む.

  4. より包括的な多要素モデルを構築するために他の補助指標を組み込む.例えば,シグナル品質を改善するためにフィルターとして移動平均値を追加する.

  5. 中期・長期保有を最適化し,安定を脅かすような過剰な取引を避けるため,取引頻度を削減する.

  6. 戦略をより多くの市場環境に適応するために,異なる製品でパラメータを個別に最適化します.

  7. より高度な機械学習方法を採用し,パラメータを動的に最適化し,重要なパラメータをリアルタイム市場変化に応じて更新することができる.

これらの最適化対策は,曲線フィッティングリスクを軽減し,戦略の固有のアルファを明らかにし,より良いライブ取引パフォーマンスを達成するのに役立ちます.

結論

ストーカスティックオーバーセール&オーバーボートレンジRSI戦略は,キーRSI指標の購入・販売範囲を柔軟に設定することで,伝統的なRSI戦略よりも豊かな取引論理を実現する.このアプローチにより,指標信号は市場の周期性と短期変動をよりよく把握することができる.一方,ランダムレンジパラメータの導入は,戦略最適化にもより大きな余地を提供し,ライブトレーディングパフォーマンスの継続的な改善を可能にします.要約すると,これはライブテストとさらなる研究に値する使いやすい一方で強力な定量戦略パラダイムです.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("imrich", shorttitle="imrich", overlay=true)


RSIlength = input(6,title="RSI Period Length") 
RSIoverSold1 = 1
RSIoverSold2 = 2
RSIoverSold3 = 3
RSIoverSold4 = 4
RSIoverSold5 = 5
RSIoverSold6 = 6
RSIoverSold7 = 7
RSIoverSold8 = 8
RSIoverSold9 = 9
RSIoverSold10 = 10
RSIoverSold11 = 11
RSIoverSold12 = 12
RSIoverSold13 = 13
RSIoverSold14 = 14
RSIoverSold15 = 15
RSIoverSold16 = 16
RSIoverSold17 = 17
RSIoverSold18 = 18
RSIoverSold19 = 19
RSIoverSold20 = 20
RSIoverSold21 = 21
RSIoverSold22 = 22
RSIoverSold23 = 23
RSIoverSold24 = 24
RSIoverSold25 = 25
RSIoverSold26 = 26
RSIoverSold27 = 27
RSIoverSold28 = 28
RSIoverSold29 = 29
RSIoverSold30 = 30
RSIoverSold31 = 31
RSIoverSold32 = 32

RSIoverBought1 = 70
RSIoverBought2 = 72
RSIoverBought3 = 73
RSIoverBought4 = 74
RSIoverBought5 = 75
RSIoverBought6 = 76
RSIoverBought7 = 77
RSIoverBought8 = 78
RSIoverBought9 = 79
RSIoverBought10 = 80
RSIoverBought11 = 81
RSIoverBought12 = 82
RSIoverBought13 = 83
RSIoverBought14 = 84
RSIoverBought15 = 85
RSIoverBought16 = 86
RSIoverBought17 = 87
RSIoverBought18 = 88
RSIoverBought19 = 89
RSIoverBought20 = 90
RSIoverBought21 = 91
RSIoverBought22 = 92
RSIoverBought23 = 93
RSIoverBought24 = 94
RSIoverBought25 = 95
RSIoverBought26 = 96
RSIoverBought27 = 97
RSIoverBought28 = 98
RSIoverBought29 = 99
RSIoverBought0 = 100

price = close
vrsi = rsi(price, RSIlength)





long = (crossover(vrsi, RSIoverSold5)  or crossover(vrsi, RSIoverSold10) or crossover(vrsi, RSIoverSold15) or crossover(vrsi, RSIoverSold20) or crossover(vrsi, RSIoverSold25) or crossover(vrsi, RSIoverSold30) or crossover(vrsi, RSIoverSold7) or crossover(vrsi, RSIoverSold8) or crossover(vrsi, RSIoverSold9))
close_long = (crossunder(vrsi, RSIoverBought1) or crossunder(vrsi, RSIoverBought5) or crossunder(vrsi, RSIoverBought10) or crossunder(vrsi, RSIoverBought15) or crossunder(vrsi, RSIoverBought20) or crossunder(vrsi, RSIoverBought25) or crossunder(vrsi, RSIoverBought29))

if (not na(vrsi))

    if long
        strategy.entry("RSI_BB", strategy.long, comment="RSI_BB")
    else
        strategy.cancel(id="RSI_BB")
        
    if close_long
        strategy.close("RSI_BB")



もっと