
この戦略は,ブリン帯 ((Bollinger Bands)) と相対的に強い指標 ((RSI)) を組み合わせた平均回帰取引システムである. この戦略は,価格が平均から偏った極端な状況を認識し,RSIの超買い超売り信号と組み合わせて取引のタイミングを決定する. 価格がブリン帯を突破して超売り領域にRSIが置かれたときに多信号が作られ,価格がブリン帯を突破して超買い領域にRSIが置かれたときに空信号が作られる.
戦略の核心的な論理は,金融市場の平均回帰特性に基づいている.具体的実装では,20日単調移動平均 ((SMA) を平均基準として使用し,標準差の倍数は2.0でブリン帯域を計算する.14日RSIを補助指標として導入し,70と30を超買い超売り値として設定する.戦略は,価格がブリン帯域を突破し,RSIが極限に達したときに取引信号を誘発する.この二重確認機構は,戦略の信頼性を高めます.
この戦略はブリン帯とRSIの協同作用により,安定した平均回帰取引システムを構築する.戦略は合理的に設計され,良好な拡張性と適応性を有する.継続的な最適化と完善により,戦略の安定性と収益性をさらに向上させることができる.実況取引の前に十分な裏付けを推奨し,特定の市場の特徴に応じてパラメータ設定を調整する.
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Mean Reversion Strategy", overlay=true)
// User Inputs
length = input.int(20, title="SMA Length") // Moving Average length
stdDev = input.float(2.0, title="Standard Deviation Multiplier") // Bollinger Band deviation
rsiLength = input.int(14, title="RSI Length") // RSI calculation length
rsiOverbought = input.int(70, title="RSI Overbought Level") // RSI overbought threshold
rsiOversold = input.int(30, title="RSI Oversold Level") // RSI oversold threshold
// Bollinger Bands
sma = ta.sma(close, length) // Calculate the SMA
stdDevValue = ta.stdev(close, length) // Calculate Standard Deviation
upperBand = sma + stdDev * stdDevValue // Upper Bollinger Band
lowerBand = sma - stdDev * stdDevValue // Lower Bollinger Band
// RSI
rsi = ta.rsi(close, rsiLength) // Calculate RSI
// Plot Bollinger Bands
plot(sma, color=color.orange, title="SMA") // Plot SMA
plot(upperBand, color=color.red, title="Upper Bollinger Band") // Plot Upper Band
plot(lowerBand, color=color.green, title="Lower Bollinger Band") // Plot Lower Band
// Plot RSI Levels (Optional)
hline(rsiOverbought, "Overbought Level", color=color.red, linestyle=hline.style_dotted)
hline(rsiOversold, "Oversold Level", color=color.green, linestyle=hline.style_dotted)
// Buy and Sell Conditions
buyCondition = (close < lowerBand) and (rsi < rsiOversold) // Price below Lower Band and RSI Oversold
sellCondition = (close > upperBand) and (rsi > rsiOverbought) // Price above Upper Band and RSI Overbought
// Execute Strategy
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Optional: Plot Buy/Sell Signals
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")