
この戦略は,複数の技術指標を融合した自主的なトレンド追跡取引システムである.この戦略は,均線システム (EMA),動量指標 (RSI),トレンド指標 (MACD) とSuperTrendの信号確認を組み合わせており,停止,停止,移動停止などの機能を含む完全なリスク管理機構を備えている.戦略の設計は,市場の変動を十分に考慮し,複数の信号フィルタリングとリスク制御によって取引の安定性と信頼性を向上させる.
戦略は,複数のシグナル確認メカニズムを活用しています.
この戦略は,多次元的な技術指標の協調的な配合によって,堅牢な取引システムを構築している. 完善なリスク制御機構と明確な取引ロジックは,その優れた実用性を有している. 特定の最適化の余地があるものの,戦略の基本的枠組みは,堅固な理論的基盤を有し,継続的な最適化と改善によって,その取引効果をさらに向上させる見込みがある.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Optimized BTC Trading Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)
// Input parameters
emaShort = ta.ema(close, 9)
emaLong = ta.ema(close, 21)
// RSI settings
rsi = ta.rsi(close, 14)
rsiBuyLevel = 40
rsiSellLevel = 60
// MACD settings
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Supertrend settings
factor = input.float(3, title="Supertrend Factor")
atrLength = input.int(10, title="ATR Length")
[superTrend, superTrendDirection] = ta.supertrend(factor, atrLength)
// Risk Management (Stop Loss & Take Profit)
stopLossPercent = 0.05 // 5%
takeProfitPercent = 0.10 // 10%
trailingStopPercent = 0.02 // 2% trailing stop for additional security
breakevenBuffer = 0.01 // 1% breakeven buffer
// Fetching average price once to avoid repeated calculations
var float avgPrice = na
if strategy.position_size != 0
avgPrice := strategy.position_avg_price
// Stop Loss & Take Profit Levels
longSL = avgPrice * (1 - stopLossPercent)
longTP = avgPrice * (1 + takeProfitPercent)
shortSL = avgPrice * (1 + stopLossPercent)
shortTP = avgPrice * (1 - takeProfitPercent)
breakevenLevel = avgPrice * (1 + breakevenBuffer)
// Entry Conditions
buyCondition = ta.crossover(emaShort, emaLong) and rsi > rsiBuyLevel and rsi < 70 and (macdLine > signalLine) and superTrendDirection == 1
sellCondition = ta.crossunder(emaShort, emaLong) and rsi < rsiSellLevel and rsi > 30 and (macdLine < signalLine) and superTrendDirection == -1
// Ensure no conflicting trades
if buyCondition and strategy.position_size <= 0
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", limit=longTP, stop=longSL, trail_points=trailingStopPercent * avgPrice)
strategy.exit("Breakeven", from_entry="Long", stop=breakevenLevel)
if sellCondition and strategy.position_size >= 0
strategy.close("Long")
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", limit=shortTP, stop=shortSL, trail_points=trailingStopPercent * avgPrice)
strategy.exit("Breakeven", from_entry="Short", stop=breakevenLevel)
// Plot Buy & Sell signals with trend-based color indicators
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY", size=size.small)
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="SELL", size=size.small)
// Trend Indicator (for better visualization)
plot(superTrend, color=superTrendDirection == 1 ? color.green : color.red, linewidth=2, title="Supertrend")