
Die Strategie ist ein integriertes Handelssystem mit einer Kombination aus Bewegungsmessungen und Geldflussmessungen, die durch eine glatte Behandlung der Bewegungsmessungen mit einem dreifachen Index bewegt sich durchschnittlich (EMA) und reduziert effektiv die Marktgeräusche. Die Strategie verwendet die Veränderungsrate (ROC) zur Berechnung der ursprünglichen Bewegungsmenge und in Verbindung mit dem Geldflussmessungsindikator (MFI) zur Bestätigung von Handelssignalen, die für den Handel in verschiedenen Zeiträumen geeignet sind.
Die Kernprinzipien der Strategie basieren auf zwei wichtigen technischen Indikatoren: der Dynamik-Indikator und der Geldfluss-Indikator (MFI). Zuerst wird die ursprüngliche Dynamik durch die Berechnung des ROC verwendet, um dann eine stabilere Dynamik-Signallinie durch eine Dreifach-EMA-Gleichbehandlung zu erhalten. Die Erzeugung von Handelssignalen erfordert die gleichzeitige Erfüllung der Bedingungen für die Dynamik und die MFI: Multi-Signale werden erzeugt, wenn die Dynamik nach der Gleitlinie positiv ist und die MFI über dem mittleren Niveau liegt; Abbruchsignale werden erzeugt, wenn die Dynamik nach der Gleitlinie negativ ist und die MFI unter dem mittleren Niveau liegt.
Es handelt sich dabei um eine durch eine Kombination aus Dynamik und Kapitalflussindikatoren sowie durch eine glatte Behandlung des Triple EMAs konzipierte, umfassende Handelsstrategie, die die Aktualität und Zuverlässigkeit der Signale wirksam ausgleicht. Die Strategie hat eine starke Praktikabilität und Erweiterbarkeit und eignet sich für weitere Optimierungen und praktische Anwendungen.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Momentum & Money Flow Strategy with Triple EMA Smoothing", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Input parameters
momentumPeriod = input.int(7, title="Momentum Period", minval=1)
smoothingPeriod = input.int(3, title="Momentum Smoothing Period", minval=1)
mfiPeriod = input.int(14, title="MFI Period", minval=1)
mfiMiddleLevel = input.int(50, title="MFI Middle Level", minval=1, maxval=100)
mfiOverbought = input.int(80, title="MFI Overbought Level", minval=1, maxval=100)
mfiOversold = input.int(20, title="MFI Oversold Level", minval=1, maxval=100)
// Calculate raw momentum oscillator using rate-of-change (ROC)
rawMomentum = ta.roc(close, momentumPeriod)
// Apply triple EMA smoothing for a much smoother momentum line
smoothedMomentum = ta.ema(ta.ema(ta.ema(rawMomentum, smoothingPeriod), smoothingPeriod), smoothingPeriod)
// Calculate Money Flow Index (MFI) using the typical price (hlc3)
typicalPrice = hlc3
mfiValue = ta.mfi(typicalPrice, mfiPeriod)
// Define conditions for filtering signals based on smoothed momentum and MFI
longCondition = (smoothedMomentum > 0) and (mfiValue > mfiMiddleLevel)
shortCondition = (smoothedMomentum < 0) and (mfiValue < mfiMiddleLevel)
// Define exit conditions for capturing turning points
exitLongCondition = (smoothedMomentum < 0) and (mfiValue < mfiOversold)
exitShortCondition = (smoothedMomentum > 0) and (mfiValue > mfiOverbought)
// Execute entries based on defined conditions
if (longCondition and strategy.position_size <= 0)
strategy.entry("Long", strategy.long)
if (shortCondition and strategy.position_size >= 0)
strategy.entry("Short", strategy.short)
// Exit positions based on turning point conditions
if (strategy.position_size > 0 and exitLongCondition)
strategy.close("Long")
if (strategy.position_size < 0 and exitShortCondition)
strategy.close("Short")
// Plot the triple EMA smoothed momentum oscillator and MFI for visual reference
plot(smoothedMomentum, title="Smoothed Momentum (Triple EMA ROC)", color=color.blue)
hline(0, color=color.gray)
plot(mfiValue, title="Money Flow Index (MFI)", color=color.orange)
hline(mfiMiddleLevel, color=color.green, linestyle=hline.style_dotted, title="MFI Middle Level")