
この戦略は,相対的に強い指数 ((RSI)) に基づくダイナミックな平仓戦略で,ダイナミックな開場およびポジション条件を設定して市場トレンドを捕捉する. RSI指標が超買超売りレベルを超えたときに取引シグナルを生成し,異なるRSIレベルの平仓条件を設定して取引パフォーマンスを最適化するユニークなダイナミックな平仓メカニズムを導入する.
戦略の中核となるロジックには、次の主要なコンポーネントが含まれます。
これは,合理的に設計された動的取引戦略であり,RSI指標と動的平衡メカニズムによって市場機会を捉えます.この戦略の主な特徴は,体系化程度が高く,リスク管理が完善で,適応性が高いことです.いくつかの固有のリスクがあるものの,パラメータの最適化と機能拡張により,戦略には大きな改善の余地があります.安定した取引システムを求める投資家にとって,これは考慮すべき戦略の枠組みです.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy with Close Levels", shorttitle="RSI Strat", overlay=true)
// RSI Input settings
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiCloseLongLevel = input.int(60, title="RSI Level to Close Long Position")
rsiCloseShortLevel = input.int(40, title="RSI Level to Close Short Position")
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Generate buy and sell signals based on RSI levels
buySignal = ta.crossover(rsi, rsiOversold)
sellSignal = ta.crossunder(rsi, rsiOverbought)
// Check if there are open positions
var bool inPosition = na
if (strategy.opentrades > 0)
inPosition := true
else
inPosition := false
// Open long position on buy signal if not already in a position
if (buySignal and not inPosition)
strategy.entry("Buy", strategy.long)
inPosition := true
// Close long position on sell signal or when RSI reaches the close long level
if (inPosition and strategy.position_size > 0 and (sellSignal or rsi >= rsiCloseLongLevel))
strategy.close("Buy")
inPosition := false
// Open short position on sell signal if not already in a position
if (sellSignal and not inPosition)
strategy.entry("Sell", strategy.short)
inPosition := true
// Close short position on buy signal or when RSI reaches the close short level
if (inPosition and strategy.position_size < 0 and (buySignal or rsi <= rsiCloseShortLevel))
strategy.close("Sell")
inPosition := false
// Plot buy and sell signals
//plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
//plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot RSI for visualization
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
hline(rsiCloseLongLevel, "RSI Close Long Level", color=color.blue)
hline(rsiCloseShortLevel, "RSI Close Short Level", color=color.purple)
plot(rsi, title="RSI", color=color.orange)