この戦略は,クロスサイクルの判断を通じてエントリータイミングを決定するためにRSIインジケーターを使用し,トレンド追跡戦略のためにATR利益とストップメカニズムを採用する.異なるサイクルのRSIインジケーターの交差によって市場のトレンドのターニングポイントを決定し,ロングとショートポジションのタイミングをフィルターするために閉値を組み合わせる.利益とストップメカニズムによりリスクと利益のロックが効果的に制御される.
この戦略は,まずSMAスムージング技術を使用して,26週間の移動平均値を牛市を判断するための基準として計算する.その後,4週間のRSI指標値を計算し,過剰販売領域で30を下回ると,市場は回復する可能性があると考えられる.この時点で,ショートデイパラメータの新しい高値がショートデイパラメータの最近の新しい高値を突破できるかどうかを判断し,短期トレンドが強化していることを示す.上記の条件が同時に満たされた場合,ロング信号が発行される.
市場に入ると,ATRインジケーターの倍数を利益範囲として使って,閉じる価格の高値の一定パーセントでストップロスをします.
この戦略には以下の利点があります.
RSIインジケーターを使って タイミングをよく把握して 逆転点を判断します
誤った信号を避けるために 新しい高低メカニズムを適用します
ATR を使って利益を得たり,ストップロスを取ったりして,最適な出口ポイントを自動的に追跡します.
柔軟なパラメータ設定を最適レベルに調整できます.
戦略のアイデアは 明確で分かりやすく 安定性も高い
この戦略には次のリスクもあります
RSIインジケーターは間違った信号を発し,タイミングが不適切になる可能性があります.RSIパラメータはそれに応じて調整したり,フィルタリングのために他のインジケーターを追加したりできます.
ATR 利益範囲は最大利益をロックするには大きすぎたり小さすぎたりすることがあります.より良いパラメータ組み合わせをテストすることができます.
ストップ・ロスのポイントが近づいてしまい,ストップ・ロスは壊れてしまう可能性があります.適切なストップ・ロスの距離を緩めましょう.
バックテストデータ不足により,戦略の収益率が過大評価される可能性があります.バックテスト期間と市場環境テストを拡大する必要があります.
戦略は以下の側面で最適化できます.
最適なパラメータの組み合わせを見つけるために RSIパラメータと損益倍数をテストし最適化します
戦略の正確性を高めるために他の指標を増やします.MACD,KDなどです.
ストップ・ロスのメカニズムを最適化し,ATRの変動範囲に応じて動的に調整する.
異なる取引品種に対するパフォーマンス効果をテストし,流動性が良し,波動性が高い品種を選択します.
ストップ損失の異なるタイプのパフォーマンスを比較します. 比例ストップ損失,移動ストップ損失など.
この戦略の全体的な運用は明確でスムーズで,指標選択とパラメータ設定は合理的で,実用性も強い.パラメータ最適化とメカニズム改善を通じてさらなる改善の余地がある.全体として,戦略は安定した利益を得る比較的高い能力を持っています.実際の取引でデバッグして使用する価値があります.
/*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()