
この戦略は,RSI指標を適用してクロスサイクルクロス判断し,ATRのストップ・ストロップ・メカニズムを採用し,トレンド追跡戦略の一種である.異なる周期のRSI指標をクロスして市場トレンドの転換点を決定し,クローズオフ価格判断とフィルターで多額の空売り時間を決定する.ストップ・ストロップ・メカニズムは,リスクを効果的に制御し,利益をロックする.
この戦略は,まず,SMA平滑技術を使用して26周期の指数移動平均を計算し,多頭市場判断の基準線として使用する.それから,RSIの4周期値を計算し,それが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()