Estratégia de negociação de limite de tamanho de vela de símbolo de negociação

TICKS CST ES NQ CL
Data de criação: 2025-02-21 10:17:23 última modificação: 2025-02-27 17:17:35
cópia: 1 Cliques: 277
2
focar em
319
Seguidores

Estratégia de negociação de limite de tamanho de vela de símbolo de negociação Estratégia de negociação de limite de tamanho de vela de símbolo de negociação

Visão geral

A estratégia baseia-se no tamanho do thread para identificar e negociar movimentos de preços importantes. Ela permite um controle preciso, definindo um limite específico de pontos, uma janela de tempo de negociação e um limite de transações diárias. A estratégia é especificamente otimizada para o mercado de futuros e pode capturar mudanças significativas de preços em períodos de alta liquidez.

Princípio da estratégia

A lógica central da estratégia é a de calcular o diferencial de alto e baixo de cada linha de fenda (em unidades de pontos) e compará-lo com o limiar predeterminado. Quando o tamanho da linha de fenda excede o limiar e dentro da janela de tempo de negociação designada (em tempo de 7:00 a 9:15 AM), o sistema dispara um sinal de negociação multi-espaço de acordo com a direção da linha de fenda. Para controlar o risco, a estratégia limita-se a executar apenas uma transação por dia e define um ponto de parada.

Vantagens estratégicas

  1. Controle de pontuação preciso - computação de tick-levels para garantir a precisão da execução de transações
  2. Filtragem de tempo - concentração nas horas de maior atividade do mercado
  3. Gerenciamento de riscos - estabeleça pontos de parada e de perda definidos para proteger o seu dinheiro
  4. Controle de frequência de transação - limite de uma transação por dia para evitar transações excessivas
  5. Alertas visuais - Os fios que desencadeiam a transação são mostrados em alta luz para facilitar a análise
  6. Compatível com retrospectiva - inclui funções como filtragem de data e execução de tempo para facilitar a retrospectiva histórica

Risco estratégico

  1. Risco de volatilidade do mercado - pode desencadear sinais errados em períodos de forte volatilidade
  2. Risco de deslizamento - a alta velocidade de negociação no mercado de futuros pode levar ao desvio dos preços reais de transação
  3. Custo de oportunidade - o limite de uma transação por dia pode perder outras boas oportunidades de negociação
  4. Dependência de tempo - a eficácia da estratégia é altamente dependente da janela de tempo de negociação selecionada

Direção de otimização da estratégia

  1. Dimensão do fio - dimensão do fio que se ajusta automaticamente à volatilidade do mercado
  2. Múltiplos períodos de tempo - Aumente o sinal de confirmação de múltiplos períodos de tempo
  3. Filtragem de volume de transações - adição de indicadores de volume de transações como julgamento auxiliar
  4. Índice de Sentimento de Mercado - Indicadores que avaliam a situação do mercado, combinados com a volatilidade
  5. Stop Loss Adaptável - Stop Loss baseado em configurações dinâmicas de flutuação do mercado

Resumir

A estratégia fornece um sistema de negociação confiável para negociação de futuros, com precisão de controle de pontos e rigoroso filtro de tempo. Sua vantagem reside na precisão e no controle de risco da execução, mas também exige que o comerciante otimize os parâmetros de acordo com a variedade específica e as condições do mercado.

Código-fonte da estratégia
/*backtest
start: 2025-02-15 01:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omnipadme

//@version=5
strategy("Futures Candle Size Strategy (Start Trading on Jan 1, 2025)", overlay=true)

// Input for candle size threshold in ticks
candleSizeThresholdTicks = input.float(25, title="Candle Size Threshold (Ticks)", minval=1)

// Input for take profit and stop loss in ticks
takeProfitTicks = input.float(50, title="Take Profit (Ticks)", minval=1)
stopLossTicks = input.float(40, title="Stop Loss (Ticks)", minval=1)

// Time filter for trading (e.g., 7:00 AM to 9:15 AM CST)
startHour = input.int(7, title="Start Hour (CST)", minval=0, maxval=23)
startMinute = input.int(0, title="Start Minute (CST)", minval=0, maxval=59)
endHour = input.int(9, title="End Hour (CST)", minval=0, maxval=23)
endMinute = input.int(15, title="End Minute (CST)", minval=0, maxval=59)

// Tick size of the instrument (e.g., ES = 0.25)
tickSize = syminfo.mintick

// Convert tick inputs to price levels
candleSizeThreshold = candleSizeThresholdTicks * tickSize
takeProfit = takeProfitTicks * tickSize
stopLoss = stopLossTicks * tickSize

// Time range calculation
startTime = timestamp("GMT-6", year(timenow), month(timenow), dayofmonth(timenow), startHour, startMinute)
endTime = timestamp("GMT-6", year(timenow), month(timenow), dayofmonth(timenow), endHour, endMinute)
inTimeRange = (time >= startTime and time <= endTime)

// Filter to start trading only from January 1, 2025
startTradingDate = timestamp("GMT-6", 2025, 1, 1, 0, 0)
isValidStartDate = time >= startTradingDate

// Calculate the candle size for the current candle
candleSize = math.abs(high - low)

// Track whether a trade has been executed for the day
var hasTradedToday = false
isNewDay = dayofweek != dayofweek[1]  // Detect new day

// Reset `hasTradedToday` at the start of a new day
if isNewDay
    hasTradedToday := false

// Trigger condition for futures trading (only if no trade has been executed today)
triggerCondition = isValidStartDate and inTimeRange and candleSize >= candleSizeThreshold and not hasTradedToday

// Entry logic: If condition is met, enter a trade
if triggerCondition
    hasTradedToday := true  // Mark as traded for the day
    if close > open  // Bullish candle
        strategy.entry("Buy", strategy.long)
    if close < open  // Bearish candle
        strategy.entry("Sell", strategy.short)

// Set take profit and stop loss
strategy.exit("Exit Long", from_entry="Buy", limit=close + takeProfit, stop=close - stopLoss)
strategy.exit("Exit Short", from_entry="Sell", limit=close - takeProfit, stop=close + stopLoss)

// Alerts for triggered condition
if triggerCondition
    alert("Candle size is " + str.tostring(candleSizeThresholdTicks) + " ticks or greater. Trade initiated.", alert.freq_once_per_bar)

// Color the alert candle white
barcolor(triggerCondition ? color.white : na)

// Visual aids for backtesting
bgcolor(isValidStartDate and inTimeRange ? color.new(color.green, 90) : na, title="Time and Date Range Highlight")