
A estratégia de parada e fechamento de liquidação do primeiro furo é uma estratégia de negociação intradiária que utiliza o intervalo de preço da primeira linha de furo após a abertura do mercado como um importante ponto de suporte e resistência. A estratégia, após a formação do primeiro furo, espera que o preço se aproxime do seu ponto mais alto ou mais baixo e depois entra em ação, enquanto usa um mecanismo de parada de perda baseado no intervalo de preço do primeiro furo, e impõe uma posição de liquidação em um determinado horário do dia para evitar o risco durante a noite.
A estratégia baseia-se na observação de que os intervalos de preços formados pela primeira linha de fusão após a abertura do mercado geralmente são de importância técnica. A lógica central da estratégia é a seguinte:
A estratégia utiliza um mecanismo de entrada pós-confirmação, ou seja, a entrada de negociação após o preço realmente quebrar o máximo ou o mínimo do primeiro parâmetro, em vez de entrar imediatamente quando o preço toca esses níveis, o que ajuda a reduzir o risco de falsas rupturas.
Embora a estratégia tenha vários benefícios, há alguns riscos potenciais:
A estratégia pode ser otimizada para os riscos acima mencionados em várias direções:
A estratégia de liquidação de stop loss e de liquidação de liquidação é uma estratégia de negociação diária baseada no primeiro intervalo de preço de linha de fundo após a abertura do mercado. Utiliza a entrada de sinais de ruptura de preço após a confirmação, adota um mecanismo de gestão de risco de stop loss baseado na volatilidade do mercado e impõe a liquidação diária em horários fixos para evitar o risco de noite.
As vantagens da estratégia são a clareza dos sinais de entrada, a dinamização do gerenciamento de risco, a prevenção de falsas brechas e riscos de overnight, a adaptação à volatilidade do mercado, a restrição de excessos de negociação e a execução totalmente automatizada. No entanto, também enfrenta desafios como o risco de falsas brechas, a distância de parada imprudente, a perda de grandes cenários, a dependência de tempo, a falta de objetivos de lucro fortes e a sensibilidade de parâmetros.
A estabilidade e a lucratividade da estratégia podem ser melhoradas adicionando condições de filtragem, otimizando o mecanismo de parada de perdas, introduzindo um mecanismo de lucro parcial, aumentando a condição de overnight, adicionando filtragem de tempo, otimizando o mecanismo de adaptação de parâmetros, adicionando a identificação do ambiente de mercado, considerando a análise de múltiplos quadros temporais e adicionando o módulo de gerenciamento de capital.
Em geral, trata-se de uma estratégia de negociação intradiária estruturada, lógica e racional, adequada para os comerciantes que desejam negociar diariamente através de sistemas automatizados e controlar rigorosamente o risco. Através de otimização direcionada e ajuste de parâmetros apropriados, a estratégia espera ter um desempenho estável em diferentes ambientes 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")