
La estrategia de comercio de volcado de movimiento de la línea de paridad cruzada es un sistema de seguimiento de tendencias basado en reglas cuya lógica central se desarrolla en torno a la media móvil de 21 ciclos del índice ((21 EMA)). La estrategia monitorea la relación entre el precio y la 21 EMA, haciendo más cuando el precio cruza por encima de la línea de paridad, quedando vacío cuando cruza por debajo de la línea de paridad, y cerrando posiciones cuando el precio cruza nuevamente la línea de paridad y revirtiendo la posición. La estrategia también incluye mecanismos de control de riesgo como el cierre de paradas y paradas de pérdidas personalizadas, el límite máximo número de operaciones por día y el bloqueo automático de operaciones después de la primera ganancia, con el objetivo de proporcionar un sistema de comercio disciplinado y lógicamente claro.
El principio central de la estrategia es capturar el cambio de la dinámica de los precios alrededor de las 21 EMA, para lograr el seguimiento de la tendencia y el comercio inverso.
La estrategia también incorpora el precio promedio ponderado por volumen de transacciones (VWAP) como indicador de referencia auxiliar, que proporciona información adicional sobre el contexto del mercado.
Estas orientaciones de optimización tienen como objetivo mejorar la solidez y adaptabilidad de las estrategias, reducir las falsas señales y mejorar la rentabilidad.
La estrategia de trading de volcado de movimiento de la línea de cruce de la mediana es un sistema de seguimiento de tendencias basado en el cruce de 21 EMA, con características de claridad lógica y rigor de reglas. Al monitorear la relación entre el precio y la línea de mediana, combinado con un riguroso mecanismo de gestión de riesgos, la estrategia puede capturar eficazmente los puntos de cambio de tendencia del mercado, al tiempo que controla el riesgo.
Las principales ventajas de la estrategia residen en su lógica de negociación sencilla e intuitiva y su mecanismo de ejecución disciplinaria, especialmente en su diseño para bloquear las operaciones después de la primera ganancia, lo que evita el exceso de operaciones y el retorno de ganancias. Sin embargo, la estrategia también presenta riesgos potenciales como el retraso lineal, la dependencia excesiva de un solo indicador.
La orientación de la optimización futura debe centrarse en la dinámica de los parámetros, la confirmación de señales multifactoriales, la mejora de la gestión de riesgos y la clasificación de los estados del mercado para mejorar la capacidad de adaptación de la estrategia en diferentes entornos de mercado. A través de estas optimizaciones, la estrategia tiene la posibilidad de convertirse en un sistema de comercio cuantitativo más sólido y confiable.
Como parte de la metodología DSPLN, esta estrategia refleja la filosofía de negociación de “Do So Patiently Listening Now”, que enfatiza la disciplina y la sistematización, ofreciendo a los operadores un marco de negociación que supera la interferencia emocional y se centra en la ejecución de las reglas.
/*backtest
start: 2025-06-15 00:00:00
end: 2025-06-21 08:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EnvisionTrades
//@version=5
strategy("DSPLN EMA Flip Strategy v6", overlay=true)
// 🔹 Inputs
startHour = input.int(8, "Start Hour")
startMinute = input.int(30, "Start Minute")
endHour = input.int(10, "End Hour")
endMinute = input.int(30, "End Minute")
useTPSL = input.bool(true, "Use TP/SL?")
tpPoints = input.int(40, "Take Profit (points)")
slPoints = input.int(20, "Stop Loss (points)")
// 🔹 Time Filter
isWithinTradingHours = (hour > startHour or (hour == startHour and minute >= startMinute)) and
(hour < endHour or (hour == endHour and minute < endMinute))
// 🔹 Indicators
ema21 = ta.ema(close, 21)
vwap = ta.vwap
plot(ema21, title="21 EMA", color=color.orange)
plot(vwap, title="VWAP", color=color.blue)
// 🔹 State Variables
var int tradesToday = 0
var bool lastTradeWon = false
var float entryPrice = na
var label winLabel = na
var int prevTradeCount = 0
// 🔹 Entry Conditions
longEntry = isWithinTradingHours and close > ema21 and close[1] <= ema21[1]
shortEntry = isWithinTradingHours and close < ema21 and close[1] >= ema21[1]
// 🔹 Exit Conditions
longExit = strategy.position_size > 0 and close < ema21
shortExit = strategy.position_size < 0 and close > ema21
// 🔹 Trade Control
canTrade = tradesToday < 5 and not lastTradeWon
// 🔹 Entry Logic
if canTrade and strategy.position_size == 0 and longEntry
strategy.entry("Long", strategy.long)
entryPrice := close
if useTPSL
strategy.exit("TP Long", from_entry="Long", stop=close - slPoints * syminfo.mintick, limit=close + tpPoints * syminfo.mintick)
if canTrade and strategy.position_size == 0 and shortEntry
strategy.entry("Short", strategy.short)
entryPrice := close
if useTPSL
strategy.exit("TP Short", from_entry="Short", stop=close + slPoints * syminfo.mintick, limit=close - tpPoints * syminfo.mintick)
// 🔹 EMA Manual Exit Logic
if longExit
strategy.close("Long")
tradesToday += 1
lastTradeWon := close > entryPrice
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ WIN - No More Trades", style=label.style_label_down, color=color.green)
if shortExit
strategy.close("Short")
tradesToday += 1
lastTradeWon := close < entryPrice
if lastTradeWon
winLabel := label.new(bar_index, low, "✅ WIN - No More Trades", style=label.style_label_up, color=color.green)
// 🔹 Detect Closed Trades (TP/SL exits)
tradeCount = strategy.closedtrades
if tradeCount > prevTradeCount
closedProfit = strategy.netprofit - strategy.netprofit[1]
tradesToday += 1
lastTradeWon := closedProfit > 0
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ TP WIN - No More Trades", style=label.style_label_down, color=color.green)
prevTradeCount := tradeCount
// 🔹 Reset Daily
if (hour == endHour and minute == endMinute)
tradesToday := 0
lastTradeWon := false
entryPrice := na
prevTradeCount := 0
if not na(winLabel)
label.delete(winLabel)