この戦略は,RSIインジケーターと2つのEMAラインのクロスオーバー・シグナルを使用して,買い・売るポイントを決定する. 閉値がEMA100とEMA20の両方よりも低くなり,RSI値が30を下回ると買い信号が生成され,閉値がEMA100とEMA20の両方よりも高くなり,RSI値が70を超えると売る信号が生成される. この戦略の主なアイデアは,RSIインジケーターを使用して,EMAラインのトレンド判断と組み合わせて,過剰購入および過剰販売状態を判断し,市場の変動の低点および高点を把握し,低買いおよび高売り操作を実行することである.
RSIとダブルEMAクロスオーバーシグナル定量戦略は,シンプルで実践的な定量取引戦略である.RSI指標とEMA移動平均を組み合わせることで,変動する市場の高低をより良く把握し,仲介を行うことができる.しかし,この戦略にはトレンド市場の失敗,ポジション管理やリスク管理対策の欠如など,いくつかの制限とリスクもあります.したがって,実践的な応用では,市場の特徴や個人の好みに応じて適切に最適化し,改善する必要があります.この戦略は,定量取引の堅牢さと収益性を向上させるために,学習および使用するための入門レベルの戦略として使用できます.しかし,慎重に扱われ,リスクは厳格に制御する必要があります.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true) // Input parameters rsiLength = input.int(14, "RSI Length") emaCloseLength = input.int(100, "EMA Length (Closing Price)") emaLowLength = input.int(20, "EMA Length (Low Price)") oversoldLevel = input.int(30, "Oversold Level") overboughtLevel = input.int(70, "Overbought Level") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Calculate EMA of closing price emaClose = ta.ema(close, emaCloseLength) // Calculate EMA of low price emaLow = ta.ema(low, emaLowLength) // Determine overbought and oversold conditions isOversold = rsi <= oversoldLevel isOverbought = rsi >= overboughtLevel // Plot RSI and its EMAs plot(rsi, color=color.blue, title="RSI") plot(emaClose, color=color.green, title="EMA 100 (Closing Price)") plot(emaLow, color=color.orange, title="EMA 20 (Low Price)") // Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level buySignal = close < emaClose and close < emaLow and isOversold // Plot buy signals plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small) // Strategy entry if (buySignal) strategy.entry("Buy", strategy.long) // Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level sellSignal = close > emaClose and close > emaLow and isOverbought // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short) // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short)