O recurso está a ser carregado... Carregamento...

Integração de sinais dinâmicos de vários períodos TIC Estrutura inteligente

Autora:ChaoZhang, Data: 2025-01-06 14:09:05
Tags:RSIMACDEMABOSFVGHTFLTFTIC

img

Resumo

Esta estratégia é um sistema de negociação abrangente que combina múltiplos indicadores técnicos com TIC (Conceitos Institucionais de Negociação). Integra indicadores tradicionais de análise técnica (RSI, Estocástico, MACD, EMA) com conceitos modernos de negociação de TIC (Fair Value Gap, Break of Structure, Higher Timeframe Bias Analysis) em diferentes prazos, implementando um controle preciso da entrada no mercado através de uma filtragem rigorosa da sessão de negociação.

Princípios de estratégia

A estratégia baseia-se em cinco componentes fundamentais que trabalham em sinergia:

  1. Análise de viés de maior prazo: Utilizando a EMA 200 para determinar a direção da tendência do mercado em prazos mais longos
  2. Filtro de sessão de negociação: negociação restrita a uma determinada Zona de eliminação (07:00-10:00)
  3. Identificação da diferença de valor justo (FVG): Reconhecimento de lacunas estruturais do mercado através de padrões de três velas
  4. Determinação da ruptura da estrutura (BOS): confirmação de alterações direcionais com base nos níveis principais de preços
  5. Confirmação do indicador de prazo inferior: verificação múltipla utilizando RSI, Stochastic, MACD e 200 EMA

Vantagens da estratégia

  1. Integração multidimensional de sinais: Melhora a fiabilidade do sinal através da combinação de múltiplos indicadores técnicos independentes e conceitos TIC
  2. Sinergia de prazo: uma coordenação de prazo superior e inferior melhora a estabilidade do sinal
  3. Captação de oportunidades estruturais: concentra-se em oportunidades de negociação estruturais de alta probabilidade através da identificação de FVG e BOS
  4. Controle de risco abrangente: inclui mecanismos de stop-loss e take-profit, gestão de fundos padronizada
  5. Optimização do tempo de negociação: reduz a interferência de sessões não comerciais através de filtragem de tempo

Riscos estratégicos

  1. Lag de sinal: a combinação de múltiplos indicadores pode provocar um atraso no tempo de entrada
  2. Desempenho do mercado lateral: pode gerar sinais falsos frequentes em mercados variados
  3. Sensibilidade dos parâmetros: vários parâmetros de indicadores exigem uma validação completa dos dados históricos
  4. Risco de execução: combinações complexas de condições podem perder algumas oportunidades de negociação na negociação em tempo real
  5. Dependência do ambiente de mercado: o desempenho da estratégia pode variar significativamente em função das diferentes condições de mercado

Orientações para a otimização da estratégia

  1. Ajuste dinâmico dos parâmetros: ajuste adaptativo dos parâmetros dos indicadores com base na volatilidade do mercado
  2. Classificação do ambiente de mercado: adição do módulo de reconhecimento do ambiente de mercado para diferentes combinações de parâmetros
  3. Optimização do peso do sinal: Introdução de métodos de aprendizagem de máquina para otimizar a distribuição de peso do indicador
  4. Prorrogação do prazo: Incluindo mais análises de prazo para melhorar a fiabilidade do sinal
  5. Melhoria do controlo do risco: introdução de mecanismos dinâmicos de stop-loss e otimização das estratégias de gestão de fundos

Resumo

A estratégia constrói um sistema de negociação abrangente, integrando a análise técnica tradicional com conceitos modernos de TIC. Seus pontos fortes estão na confirmação de sinal multidimensional e no controle rigoroso de riscos, ao mesmo tempo em que enfrenta desafios na otimização de parâmetros e adaptabilidade do mercado. Através da otimização e melhoria contínuas, a estratégia mostra promessa em manter um desempenho estável em diferentes ambientes de mercado.


/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// -----------------------------------------------------
// Multi-Signal Conservative Strategy (Pine Script v5)
// + More ICT Concepts (HTF Bias, FVG, Killzone, BOS)
// -----------------------------------------------------
//
// Combines:
// - RSI, Stochastic, MACD, 200 EMA (lower TF)
// - Higher Timeframe (HTF) bias check via 200 EMA
// - Kill Zone time filter
// - Fair Value Gap (FVG) detection (simplified 3-candle approach)
// - Break of Structure (BOS) using pivot highs/lows
// - Only trade markers on chart (no extra indicator plots).
//
// Use on lower timeframes: 1m to 15m
// Always backtest thoroughly and manage risk properly.
//
// -----------------------------------------------------
//@version=5
strategy(title="Multi-Signal + ICT Concepts (HTF/FVG/Killzone/BOS)", shorttitle="ICTStrategyExample",overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// -----------------------------------------------------
// User Inputs
// -----------------------------------------------------
/////////////// Lower TF Inputs ///////////////
emaLength       = input.int(200,   "LTF EMA Length",           group="Lower TF")
rsiLength       = input.int(14,    "RSI Length",               group="Lower TF")
rsiUpper        = input.int(60,    "RSI Overbought Thresh",    group="Lower TF", minval=50, maxval=80)
rsiLower        = input.int(40,    "RSI Oversold Thresh",      group="Lower TF", minval=20, maxval=50)
stochLengthK    = input.int(14,    "Stoch K Length",           group="Lower TF")
stochLengthD    = input.int(3,     "Stoch D Smoothing",        group="Lower TF")
stochSmooth     = input.int(3,     "Stoch Smoothing",          group="Lower TF")
macdFast        = input.int(12,    "MACD Fast Length",         group="Lower TF")
macdSlow        = input.int(26,    "MACD Slow Length",         group="Lower TF")
macdSignal      = input.int(9,     "MACD Signal Length",       group="Lower TF")

/////////////// ICT Concepts Inputs ///////////////
htfTimeframe    = input.timeframe("60", "HTF for Bias (e.g. 60, 240)", group="ICT Concepts")
htfEmaLen       = input.int(200,  "HTF EMA Length",                   group="ICT Concepts")
sessionInput    = input("0700-1000:1234567", "Kill Zone Window", group="ICT Concepts")
fvgLookbackBars = input.int(2,    "FVG Lookback Bars (3-candle check)",  group="ICT Concepts", minval=1, maxval=10)

/////////////// Risk Management ///////////////
stopLossPerc    = input.float(0.5, "Stop-Loss %",  step=0.1, group="Risk")
takeProfitPerc  = input.float(1.0, "Take-Profit %", step=0.1, group="Risk")

// -----------------------------------------------------
// 1) Higher Timeframe Bias
// -----------------------------------------------------
//
// We'll request the HTF close, then compute the HTF EMA on that data
// to decide if it's bullish or bearish overall.

htfClose       = request.security(syminfo.tickerid, htfTimeframe, close)
htfEma         = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, htfEmaLen))
isBullHTF      = htfClose > htfEma
isBearHTF      = htfClose < htfEma

// -----------------------------------------------------
// 2) Kill Zone / Session Filter
// -----------------------------------------------------
//
// We'll only consider trades if the current bar is within
// the user-defined session time (e.g., 07:00 to 10:00 local or exchange time).

isInKillZone = time(timeframe.period, sessionInput) != 0

// -----------------------------------------------------
// 3) Fair Value Gap (FVG) Detection (Simplified)
//
// For a "Bullish FVG" among bars [2], [1], [0]:
//     high[2] < low[0] => there's a gap that bar [1] didn't fill
// For a "Bearish FVG":
//     low[2] > high[0] => there's a gap that bar [1] didn't fill
//
// Real ICT usage might check partial fill, candle bodies vs wicks, etc.
// This is just a minimal example for demonstration.

fvgBarsAgo = fvgLookbackBars // default = 2
bullFVG = high[fvgBarsAgo] < low  // e.g. high[2] < low[0]
bearFVG = low[fvgBarsAgo]  > high // e.g. low[2]  > high[0]

// -----------------------------------------------------
// 4) Break of Structure (BOS)
// -----------------------------------------------------
// Using pivot detection from previous example:

swingLen = 2  // pivot detection length (bars on each side)
// Identify a pivot high at bar [1]
swingHigh = high[1] > high[2] and high[1] > high[0]
// Identify a pivot low at bar [1]
swingLow  = low[1]  < low[2]  and low[1]  < low[0]

// Track the most recent pivot high & low
var float lastPivotHigh = na
var float lastPivotLow  = na

if swingHigh
    lastPivotHigh := high[1]

if swingLow
    lastPivotLow := low[1]

bosUp   = not na(lastPivotHigh) and (close > lastPivotHigh)
bosDown = not na(lastPivotLow)  and (close < lastPivotLow)

// -----------------------------------------------------
// 5) Lower TF Indicator Calculations
// -----------------------------------------------------
ema200      = ta.ema(close, emaLength)  // 200 EMA on LTF
rsiValue    = ta.rsi(close, rsiLength)
kValue      = ta.stoch(high, low, close, stochLengthK)
dValue      = ta.sma(kValue, stochLengthD)
stochSignal = ta.sma(dValue, stochSmooth)
[macdLine, signalLine, histLine] = ta.macd(close, macdFast, macdSlow, macdSignal)

// LTF trend filter
isBullTrend = close > ema200
isBearTrend = close < ema200

// -----------------------------------------------------
// Combine All Conditions
// -----------------------------------------------------
//
// We'll require that all filters line up for a long or short:
//  - HTF bias
//  - kill zone
//  - bullish/bearish FVG
//  - BOS up/down
//  - RSI, Stoch, MACD alignment
//  - Price above/below LTF 200 EMA

longCondition = isInKillZone                     // must be in session
 and isBullHTF                                   // HTF bias bullish
 and bullFVG                                     // bullish FVG
 and bosUp                                       // BOS up
 and (rsiValue > rsiUpper)                       // RSI > threshold
 and (kValue > dValue)                           // stoch K above D
 and (macdLine > signalLine)                     // MACD bullish
 and isBullTrend                                 // above LTF 200 EMA

shortCondition = isInKillZone                    // must be in session
 and isBearHTF                                   // HTF bias bearish
 and bearFVG                                     // bearish FVG
 and bosDown                                     // BOS down
 and (rsiValue < rsiLower)                       // RSI < threshold
 and (kValue < dValue)                           // stoch K below D
 and (macdLine < signalLine)                     // MACD bearish
 and isBearTrend                                 // below LTF 200 EMA

// -----------------------------------------------------
// Strategy Entries
// -----------------------------------------------------
if longCondition
    strategy.entry("Long Entry", strategy.long)

if shortCondition
    strategy.entry("Short Entry", strategy.short)

// -----------------------------------------------------
// Risk Management (Stop-Loss & Take-Profit)
// -----------------------------------------------------
if strategy.position_size > 0
    // Long position exit
    strategy.exit("Long Exit", stop  = strategy.position_avg_price * (1.0 - stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 + takeProfitPerc/100.0))

if strategy.position_size < 0
    // Short position exit
    strategy.exit("Short Exit",  stop  = strategy.position_avg_price * (1.0 + stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 - takeProfitPerc/100.0))

// -----------------------------------------------------
// Hide All Indicator Plots
// (We only show trade markers for entry & exit)
// -----------------------------------------------------
// Comment out or remove any plot() calls so chart stays clean.
//
// Example (commented out):
// plot(ema200, title="EMA 200", color=color.new(color.yellow, 0), linewidth=2)
// plot(rsiValue, title="RSI", color=color.new(color.blue, 0))
// plot(macdLine, title="MACD", color=color.new(color.teal, 0))
// plot(signalLine, title="Signal", color=color.new(color.purple, 0))


Relacionados

Mais.