
La estrategia es un sistema de negociación integrado que combina el indicador de volumen de movimiento y el indicador de flujo de capital, que reduce el ruido del mercado de manera efectiva mediante el tratamiento suavizado de los indicadores de volumen de movimiento mediante el triple índice de promedio móvil (EMA). La estrategia utiliza la tasa de cambio (ROC) para calcular el volumen de movimiento original y, en combinación con el indicador de flujo de dinero (MFI) para confirmar la señal de negociación, que se puede aplicar a operaciones en varios períodos de tiempo.
El principio central de la estrategia se basa en dos indicadores técnicos principales: el indicador de movimiento y el indicador de flujo de capital (MFI). Se utiliza primero el ROC para calcular el movimiento original, y luego se obtiene una línea de señal de movimiento más estable a través del tratamiento de la nivelación triple de EMA. La generación de señales de negociación requiere que se cumplan las condiciones de movimiento y MFI al mismo tiempo: se produce una señal de multitud cuando el movimiento después de la nivelación es positivo y el MFI está por encima del nivel medio; se produce una señal de vacío cuando el movimiento después de la nivelación es negativo y el MFI está por debajo del nivel medio.
Se trata de una estrategia de negociación integrada de diseño razonable, lógica y clara. A través de la combinación de la dinámica y el indicador de flujo de capital, y el manejo suave de los tres EMA, se equilibra eficazmente la puntualidad y la fiabilidad de la señal. La estrategia tiene una gran practicidad y extensibilidad, adecuada para una mayor optimización y aplicación en el campo.
/*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")