
この戦略は,二重均線突破理論に基づく自動取引システムで,リスク管理機能が組み込まれている.戦略の核心は,21周期と50周期の指標移動平均 ((EMA) を信号指標として採用し,均線交差によって市場の傾向の変化を判断し,自動的に取引を実行する.システムは,ストップ・ロス ((Stop Loss)) とストップ・テイク・プロフィット (Take Profit) の機能を統合し,各取引のリスクと利益目標を効果的に制御する.
戦略の核心的な論理は,技術分析の古典的な均線交差理論に基づいています. 短周期 (21日) EMAが長周期 (50日) EMAを上向きに通過すると,システムは看板信号として認識し,ポジションを開きます. 短周期 (5日) EMAが下向きに通過すると,システムは看板信号として認識し,ポジションを開きます. 各取引シグナルは,自動的にストップとストップポイントを設定し,システムはデフォルトでストップを40最小波動単位に設定し,ストップを80最小波動単位に設定します.
これは合理的で論理的に明確な設計された自動取引戦略である.均線交差信号と厳格なリスク管理を組み合わせることで,取引の安全性を保証しながら,市場トレンドの機会を把握するための信頼できる技術的枠組みを提供する.ある程度の最適化の余地があるが,戦略のインフラストラクチャは完備しており,量化取引システムの基礎モジュールとしてさらなる開発と改善に適している.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity)
// Input settings for SL and TP (ticks)
slTicks = input.int(40, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(80, title="Take Profit (ticks)", minval=1)
// Define EMA periods
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// Detect crossovers
bullishCross = ta.crossover(ema21, ema50)
bearishCross = ta.crossunder(ema21, ema50)
// Plot the EMAs
plot(ema21, color=color.green, linewidth=2, title="EMA 21")
plot(ema50, color=color.red, linewidth=2, title="EMA 50")
// Calculate tick size in points
var float tickSize = syminfo.mintick
// Calculate stop loss and take profit prices for long and short positions
longSL = close - slTicks * tickSize
longTP = close + tpTicks * tickSize
shortSL = close + slTicks * tickSize
shortTP = close - tpTicks * tickSize
// Execute trades on crossover signals
if (bullishCross)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
if (bearishCross)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// Plot arrows on crossovers
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Optional: Background coloring
bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")