
この戦略は,技術分析に基づいたトレンド追跡システムであり,均線システム,RSI動態指標,ATR波動率指標を組み合わせて,複数の信号の検証によって取引機会を確認する.この戦略は,市場動向を判断するために多周期均線の交差を使用し,RSI動態量と組み合わせて価格の強さを確認し,最終的にATR動態を活用してストップ・ロズとアベアード・ポジションを設定し,完全な取引システムを形成する.
この戦略の核心的な論理は以下の3つの部分から構成されています.
この戦略は,複数の技術指標を統合して,論理的に完全なトレンド追跡システムを構築している.戦略の優点は,複数の信号の検証と動的リスク管理にあるが,同時に,トレンドの遅延や偽突破などのリスクに対処することにも注意する必要がある.トラフィック確認,パラメータ設定の最適化などの方法を追加することで,戦略は,まだ大きな改善がある.全体として,この戦略は,明らかなトレンド市場での運用に適しており,中長期のトレンドを追跡する上で良好な応用価値がある.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bullish Engulfing with EMA Crossover and ATR-Based SL/TP with RSI Filter", overlay=true)
// Inputs for moving averages
short_ema_length = input.int(100, title="Short EMA Length")
long_ema_length = input.int(200, title="Long EMA Length")
// RSI Input
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.float(50, title="RSI Threshold")
// Calculate the Exponential Moving Averages (EMAs)
short_ema = ta.ema(close, short_ema_length)
long_ema = ta.ema(close, long_ema_length)
// Plot EMAs on the chart
plot(short_ema, color=color.blue, title="100 EMA")
plot(long_ema, color=color.red, title="200 EMA")
// Calculate RSI
rsi_value = ta.rsi(close, rsi_length)
// Plot RSI on a separate panel
hline(rsi_threshold, "RSI Threshold", color=color.gray)
plot(rsi_value, color=color.purple, title="RSI")
// Bullish Engulfing Pattern
bullish_engulfing = close > open[1] and open < close[1] and close > open
// Define strategy entry condition with RSI filter
long_condition = bullish_engulfing and short_ema > long_ema and rsi_value > rsi_threshold
// Plot a buy signal when conditions are met
plotshape(long_condition, style=shape.labelup, location=location.belowbar, color=color.green, title="Buy Signal", text="BUY")
// ATR Calculation
atr_length = input.int(14, title="ATR Length")
atr_value = ta.atr(atr_length)
// Define Stop Loss and Take Profit as levels
stop_loss_level = 1.1 * atr_value
take_profit_level = 2.0 * atr_value
// Execute Strategy Entry
if (long_condition)
strategy.entry("Buy", strategy.long)
// Adjust SL and TP levels using the entry price
if (strategy.position_size > 0)
// Calculate SL and TP relative to the entry price
stop_price = strategy.position_avg_price - stop_loss_level
limit_price = strategy.position_avg_price + take_profit_level
// Exit strategy with SL and TP
strategy.exit("Exit", from_entry="Buy", stop=stop_price, limit=limit_price)