
La estrategia de cerrar y cerrar el primer umbral es una estrategia de negociación intradiaria que utiliza el intervalo de precios de la primera línea de cerramiento después de la apertura del mercado como soporte y resistencia importantes. La estrategia se forma después de la primera línea de cerramiento y espera que el precio entre en el mercado después de que se rompa su punto más alto o más bajo.
La estrategia se basa en la observación del mercado de que los intervalos de precios que se forman en la primera línea de tendido después de la apertura del mercado a menudo tienen un significado técnico importante. La lógica central de la estrategia es la siguiente:
La estrategia utiliza un mecanismo de entrada posterior a la confirmación, es decir, la entrada en el comercio después de que el precio realmente rompa los máximos o mínimos de la primera barra, en lugar de entrar en el mercado inmediatamente cuando el precio acaba de tocar estos niveles, lo que ayuda a reducir el riesgo de falsas rupturas.
A pesar de las ventajas de esta estrategia, existen algunos riesgos potenciales:
La estrategia se puede optimizar para los riesgos mencionados en las siguientes direcciones:
La estrategia de cerrar y cerrar el primer breakout es una estrategia de negociación diaria basada en el primer breakout de la línea de precios después de la apertura del mercado. Utiliza la entrada de la señal de entrada de la línea de precios después de la confirmación, utiliza el mecanismo de cerrar y cerrar el riesgo basado en las fluctuaciones del mercado y obliga a cerrar el mercado a una hora fija todos los días para evitar el riesgo de la noche a la mañana.
Las ventajas de esta estrategia residen en la claridad de las señales de entrada, la gestión dinámica de los riesgos, la evitación de los falsos breaks y el riesgo nocturno, la adaptación a la volatilidad del mercado, la limitación de las operaciones excesivas y la ejecución totalmente automatizada. Sin embargo, también se enfrenta a desafíos como el riesgo de falsos breaks, el estancamiento irrazonable, la pérdida de grandes situaciones, la dependencia del tiempo, la falta de objetivos de ganancias y la sensibilidad a los parámetros.
La estabilidad y la rentabilidad de las estrategias se pueden mejorar aún más mediante el aumento de las condiciones de filtración, la optimización de los mecanismos de parada de pérdidas, la introducción de mecanismos de ganancias parciales, el aumento de las condiciones de mantenimiento de la posición durante la noche, la adición de filtros de tiempo, la optimización de los parámetros del mecanismo de adaptación, la incorporación de la identificación del entorno del mercado, la consideración del análisis de marcos temporales múltiples y la adición del módulo de gestión de fondos.
En general, se trata de una estrategia de day trading estructurada, lógica y razonable, adecuada para aquellos operadores que desean operar con un sistema automatizado y estrictamente controlar el riesgo. Mediante la optimización específica y el ajuste de los parámetros apropiados, la estrategia espera obtener un rendimiento estable en diferentes entornos de mercado.
/*backtest
start: 2025-03-24 00:00:00
end: 2025-03-31 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"TRX_USDT"}]
*/
//@version=5
strategy("First Candle Breakout - Trailing Stop & EOD Close", overlay=true)
// User Inputs
startHour = input(9, "Start Hour (Exchange Time)")
startMinute = input(15, "Start Minute (Exchange Time)")
endHour = input(15, "End Hour (Exchange Time)") // Market closing hour
endMinute = input(30, "End Minute (Exchange Time)")
trailStopMultiplier = input(1.5, "Trailing Stop Multiplier") // 1.5x first candle range
// Variables to store the first candle's high & low
var float firstCandleHigh = na
var float firstCandleLow = na
var bool tradeTaken = false // Ensures only one trade per day
var int tradeDirection = 0 // 1 for long, -1 for short
var float trailStopLevel = na // Trailing stop level
// Identify first candle's high & low
if (hour == startHour and minute == startMinute and bar_index > 1)
firstCandleHigh := high
firstCandleLow := low
tradeTaken := false // Reset trade flag at start of day
tradeDirection := 0 // Reset trade direction
trailStopLevel := na // Reset trailing stop
// Calculate first candle range
firstCandleRange = firstCandleHigh - firstCandleLow
trailStopDistance = firstCandleRange * trailStopMultiplier
// Buy condition: Close above first candle high AFTER the first candle closes
longCondition = not na(firstCandleHigh) and close > firstCandleHigh and not tradeTaken and hour > startHour
if (longCondition)
strategy.entry("Buy", strategy.long, comment="Buy")
trailStopLevel := close - trailStopDistance // Set initial trailing stop
tradeTaken := true
tradeDirection := 1
// Sell condition: Close below first candle low AFTER the first candle closes
shortCondition = not na(firstCandleLow) and close < firstCandleLow and not tradeTaken and hour > startHour
if (shortCondition)
strategy.entry("Sell", strategy.short, comment="Sell")
trailStopLevel := close + trailStopDistance // Set initial trailing stop
tradeTaken := true
tradeDirection := -1
// Update trailing stop for long trades
if (tradeDirection == 1 and not na(trailStopLevel))
trailStopLevel := nz(trailStopLevel, close - trailStopDistance) // Initialize if na
trailStopLevel := math.max(trailStopLevel, close - trailStopDistance) // Adjust trailing stop up
if (close <= trailStopLevel) // Stop loss hit
strategy.close("Buy", comment="Trailing SL Hit")
// Update trailing stop for short trades
if (tradeDirection == -1 and not na(trailStopLevel))
trailStopLevel := nz(trailStopLevel, close + trailStopDistance) // Initialize if na
trailStopLevel := math.min(trailStopLevel, close + trailStopDistance) // Adjust trailing stop down
if (close >= trailStopLevel) // Stop loss hit
strategy.close("Sell", comment="Trailing SL Hit")
// Close trade at end of day if still open
if (tradeTaken and hour == endHour and minute == endMinute)
strategy.close_all(comment="EOD Close")