
Die Strategie ist ein vollständiges Handelssystem, das mehrere Zeitrahmen analysiert, Trends verfolgt und dynamische Positionsmanagement kombiniert. Die Strategie verwendet EMA als Haupttrendindikator und MACD als Sekundärbestätigungsindikator und kombiniert ATR für Risikokontrolle und Stop-Loss-Einstellungen. Die Strategie ist einzigartig darin, Handelssignale durch die Quantifizierung von Preisanalysen für 8-Stunden-Zeitrahmen zu filtern und die Positionsgröße dynamisch an die Trendstärke anzupassen.
Die Strategie basiert auf einer geschichteten Konzeption und umfasst folgende Kernkomponenten:
Die Strategie baut durch die Analyse mehrerer Zeiträume und die dynamische Positionsverwaltung ein vollständiges Handelssystem für die Trendverfolgung auf. Die Strategie hat ihre Vorteile in ihrer systematischen Designidee und ihren ausgefeilten Risikokontrollmechanismen, muss aber auch auf die Anpassungsfähigkeit der Marktumgebung und die Optimierung der Parameter achten. Durch die empfohlene Optimierungsrichtung kann die Strategie ihre Stabilität und Ertragsfähigkeit weiter verbessern.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy('Optimized Trend Strategy', overlay = true, initial_capital = 10000, default_qty_type = strategy.cash, default_qty_value = 50, commission_value = 0.1)
// 🟢 核心指標
ema7 = ta.ema(close, 7)
ema90 = ta.ema(close, 90)
atr = ta.atr(14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// 🟢 8 小時多時間框架確認
h8Close = request.security(syminfo.tickerid, '480', close)
h8Volume = request.security(syminfo.tickerid, '480', volume)
h8Ema7 = ta.ema(h8Close, 7)
h8Signal = h8Close > h8Ema7 and h8Volume > ta.sma(h8Volume, 50)
// 🟢 動態風控
stopLoss = close - 1.5 * atr
takeProfit = close + 3 * atr
// 🟢 交易信號
longCondition = close > ema7 and ema7 > ema90 and ta.crossover(macdLine, signalLine) and h8Signal
shortCondition = close < ema7 and ema7 < ema90 and ta.crossunder(macdLine, signalLine) and h8Signal
// 🟢 倉位管理(根據趨勢強度)
trendStrength = (ema7 - ema90) / (atr / close)
var float positionSize = na
if trendStrength > 2
positionSize := strategy.equity * 0.7 / close
positionSize
else if trendStrength < 0.5
positionSize := strategy.equity * 0.3 / close
positionSize
else
positionSize := strategy.equity * 0.5 / close
positionSize
// 🟢 訂單執行
if longCondition
strategy.entry('Long', strategy.long, qty = positionSize)
strategy.exit('Long Exit', from_entry = 'Long', stop = stopLoss, limit = takeProfit)
if shortCondition
strategy.entry('Short', strategy.short, qty = positionSize)
strategy.exit('Short Exit', from_entry = 'Short', stop = stopLoss, limit = takeProfit)