RSIインジケーターの期間をまたぐストッププロフィットとストップロス戦略


作成日: 2024-02-06 11:43:11 最終変更日: 2024-02-06 11:43:11
コピー: 3 クリック数: 649
1
フォロー
1617
フォロワー

RSIインジケーターの期間をまたぐストッププロフィットとストップロス戦略

概要

この戦略は,RSI指標を適用してクロスサイクルクロス判断し,ATRのストップ・ストロップ・メカニズムを採用し,トレンド追跡戦略の一種である.異なる周期のRSI指標をクロスして市場トレンドの転換点を決定し,クローズオフ価格判断とフィルターで多額の空売り時間を決定する.ストップ・ストロップ・メカニズムは,リスクを効果的に制御し,利益をロックする.

戦略原則

この戦略は,まず,SMA平滑技術を使用して26周期の指数移動平均を計算し,多頭市場判断の基準線として使用する.それから,RSIの4周期値を計算し,それが30の超売り区間を下方に突破すると,市場が上昇する可能性があると判断する.この時点で,ショートデイのパラメータの新高がロングデイのパラメータの最近の新高を突破できるかどうかを判断し,短期トレンドが強くなることを示す.上記の条件が同時に満たされれば,複数の信号を発信する.

入場後,ATR指標の倍数で止まり幅として,閉盘価格の高点に一定比率で止まる.

戦略的優位性

この戦略の利点は以下の通りです.

  1. RSI指標を用いて逆転点を判断し,良い時機捕捉能力を持っている.

  2. 誤った信号を避けるため,新高新低のメカニズムを適用します.

  3. ATRのストップ・ストロスを使って,最適な脱出点を自動で追跡する.

  4. パラメータの設定は柔軟で最適レベルまで調整できます.

  5. 戦略的思考が明確で理解しやすく,安定性も高い.

戦略リスク

この戦略には以下のリスクもあります.

  1. RSI指標は誤った信号を発し,入場タイミングが不適切になる可能性があります. RSIパラメータを適切に調整したり,他の指標のフィルターを追加したりできます.

  2. ATRのストップ幅は,最大利益をロックできないほど大きく,または小さく設定されている可能性があります.より優れたパラメータの組み合わせをテストできます.

  3. ストップポイントが近すぎると,ストップを突破する恐れがある. ストップ距離を適切に緩めることができる.

  4. 逆戻りデータは不十分で,戦略の収益率を過大評価している可能性がある.逆戻り周期と市場環境テストを増やすべきである.

戦略の最適化

この戦略は以下の点で最適化できます.

  1. RSIパラメータとストップ・ストップ・ロスの倍数をテストして最適のパラメータの組み合わせを見つける.

  2. 戦略の正確性を高めるために,MACD,KDなどの他の指標の判断を追加します.

  3. ATRの波動範囲に応じて動的に調整する.

  4. 異なる取引品種でのパフォーマンスのテスト. 流動性があり,波動率が高い品種を選択.

  5. 異なる止損タイプのパフォーマンスを比較する. 比率止損,移動止損など.

要約する

この戦略は,全体として,明快で流暢に動作し,指標選択とパラメータ設定は合理的で,強力な実用性を持っています.パラメータ最適化とメカニズム改善を通じて,さらなる改善の余地があります.全体的に,この戦略は,高い安定した収益性を持っています.現場でデビューして投入する価値があります.

ストラテジーソースコード
/*backtest
start: 2023-02-05 00:00:00
end: 2024-01-18 05:20:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//A translation from info found at http://backtestwizard.com/swing-trading-system-for-stocks/
strategy("Swing Trading System RSI", overlay=true)
source = close[1]

longperiod = input(26,"long week",minval=2,maxval=500,step=1)
s = request.security(syminfo.tickerid, "W", sma(close[1], longperiod)) // 1 Day
plot(s)

shortdays = input(21,"short days high period",minval=2,maxval=500,step=1)
longdays = input(50,"long days high period",minval=2,maxval=500,step=1)
rsiperiod = input(4,"rsi period",minval=2,maxval=500,step=1)
rsithresh = input(30,"rsi thresh",minval=2,maxval=500,step=1)

highcheck = highest(source,shortdays) == highest(source,longdays)
rsicheck = crossunder(rsi(source,rsiperiod),rsithresh)

longCondition = (highcheck) and (rsicheck) and source > s
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

profittarget = input(3,"profit target",minval=2,maxval=500,step=1)
stoploss = input(2,"stop target",minval=2,maxval=500,step=1)

exitCondition1 = source > strategy.position_avg_price + (atr(50) * profittarget)
exitCondition2 = source <  strategy.position_avg_price - (atr(50) * stoploss)

if (exitCondition1)
    strategy.close_all()
if (exitCondition2)
    strategy.close_all()