
この戦略は,指数移動平均 ((EMA),移動平均の相似分散度 ((MACD) と相対的に強い指標 ((RSI) を組み合わせた多次元定量化取引システムである.トレンド追跡,動態確認,超買い超売判断を融合させることで,3次元の技術指標を構成し,完全な取引意思決定の枠組みを構築する.戦略の核心は,EMA双均等線の交差で市場のトレンドを捕捉し,MACD動態指標と組み合わせてトレンドの強さを確認し,RSI指数を使用して極端市場の条件を過越することで取引の正確性と安定性を高める.
戦略は3つの信号の確認メカニズムを採用しています.
複数の信号の組み合わせが取引条件を構成する.
この戦略は,複数の技術指標の協調的な動作によって,包括的な取引意思決定システムを構築する.戦略は,トレンド性のある市場で優れたパフォーマンスを発揮し,RSIフィルタリングメカニズムによってリスクを効果的に制御し,中長期のトレンド追跡システムの基本的枠組みとして適合する.しかし,移動平均類の指標の遅れの特性を考慮して,実際のアプリケーションで市場環境分析を組み合わせて,ダイナミックパラメータの最適化やポジション管理などの方法でさらに最適化することを推奨する.
/*backtest
start: 2024-02-08 00:00:00
end: 2025-02-06 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA12 + EMA26 + MACD + RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// EMA calculations
ema12 = ta.ema(close, 12)
ema26 = ta.ema(close, 26)
// MACD calculations
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// RSI calculation
rsi = ta.rsi(close, 14)
// Plot EMAs
plot(ema12, color=color.blue, title="EMA 12")
plot(ema26, color=color.red, title="EMA 26")
// Plot MACD Histogram
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")
// Plot RSI
hline(30, "RSI 30", color=color.orange)
hline(70, "RSI 70", color=color.orange)
plot(rsi, color=color.purple, title="RSI")
// Buy condition: EMA12 crosses above EMA26, MACD crosses above signal, RSI below 70
buyCondition = ta.crossover(ema12, ema26) and ta.crossover(macdLine, signalLine) and rsi < 70
// Sell condition: EMA12 crosses below EMA26, MACD crosses below signal, RSI above 30
sellCondition = ta.crossunder(ema12, ema26) and ta.crossunder(macdLine, signalLine) and rsi > 30
// Plot buy/sell signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Execute trades
if (buyCondition)
strategy.entry("Long", strategy.long)
if (sellCondition)
strategy.close("Long")