estratégia de tendência do conceito de dinheiro inteligente


Data de criação: 2025-12-04 15:57:27 última modificação: 2025-12-04 15:57:27
cópia: 4 Cliques: 178
2
focar em
413
Seguidores

estratégia de tendência do conceito de dinheiro inteligente estratégia de tendência do conceito de dinheiro inteligente

SMC, FVG, BOS, OB, EMA

Não é uma análise técnica comum, é um pensamento transacional a nível institucional.

A análise técnica tradicional está obsoleta. Este conjunto de estratégias SMC replica diretamente o modelo de pensamento dos traders institucionais: busca de pontos de captura de liquidez, identificação de blocos de ordens e captura de disrupção da estrutura do mercado. Os dados de retrospectiva mostram que o uso de um período de 15 minutos no par BTC / EUR, combinado com um filtro de tendência de EMA200 de 1 hora, é significativamente superior ao rendimento ajustado ao risco do que a estratégia de indicadores tradicionais.

A chave está no mecanismo de confirmação múltipla: brecha de valor justo ((FVG) + destruição da estrutura de mercado ((BOS) + captura de liquidez + Fibonacci 50% desconto / área de prémio. Não é uma pilha de indicadores técnicos, mas uma interpretação precisa da microestrutura do mercado.

Risco fixo de 2 euros, mas o potencial de ganho é três vezes maior que o risco

O gerenciamento de risco é direto e grosseiramente eficaz: cada transação assume um risco fixo de 2 euros, independentemente da volatilidade do mercado. A distância de parada é calculada automaticamente, garantindo a constante do risco. A relação de ganho e perda é bloqueada em 1: 3, o que significa que uma probabilidade de ganho de 33,4% é suficiente para atingir o equilíbrio de ganhos e perdas, e qualquer ganho acima desse número é um lucro líquido.

A posição mínima é de 0.00001 BTC, a posição máxima é de 0.01 BTC, totalmente adaptada ao tamanho do capital do varejista. Não há risco desnecessário por causa de uma posição muito grande, nem oportunidades perdidas por causa de uma posição muito pequena.

Os filtros de tendência são a chave para a vitória, 87,5% dos falsos sinais são diretamente filtrados

Os sinais de SMC simples são suscetíveis a erros frequentes em mercados de turbulência. Esta estratégia inclui o EMA200 de 1 hora como um filtro de tendência: o sinal de multi-cabeça é executado apenas quando o preço de 15 minutos está acima do EMA200 de 1 hora, ao contrário do que o sinal de cabecera é executado.

Este design reduz diretamente a aplicabilidade da estratégia do “mercado total” para o “mercado de tendência”, reduzindo a frequência de negociação, mas aumentando significativamente a qualidade do sinal. Durante a correção horizontal, a estratégia interrompe automaticamente a negociação, evitando o consumo de fundos em flutuações ineficazes.

Lógica de identificação de blocos de pedidos: memória de preços deixada pela agência

Os blocos de pedidos não são suportes de resistência, mas áreas de preços onde o capital da instituição foi ativo. A estratégia identifica blocos de pedidos efetivos através das seguintes condições:

Bloco de pedidos múltiplos: a linha K anterior é negativa + Existe um FVG ascendente + Preços quebraram os mínimos de oscilação prévia + Existe uma liquidez descendente + Preços atuais estão na área de desconto abaixo de 50% de Fibonacci.

Bloco de pedidos em branco: a linha K anterior é a linha do sol + Existe um FVG descendente + Preços abaixo dos picos de oscilação do período anterior + Existe uma liquidez ascendente + Preços atuais estão na área de prémio de Fibonacci acima de 50%

Cada condição tem a sua lógica: a linha do sol/dia indica a pressão direcional, o FVG mostra o desequilíbrio da liquidez, o BOS confirma a mudança de estrutura, a liquidez procura o envolvimento da agência de certificação, a área de desconto/prémio oferece o melhor momento de entrada.

Caça móvel: 0,1% de capacidade de captura para a caça

90% dos stop loss de varejistas no mercado são configurados em níveis de resistência de suporte visíveis. O capital institucional impulsiona intencionalmente os preços para tocar nessas áreas, desencadeando uma operação de reversão após uma grande quantidade de stop loss. A estratégia para identificar esse tipo de caça à liquidez é a diferença de preço de 0,1%.

Quando o mínimo de preços em 7 períodos é inferior a 0,1% do ponto mais baixo atual, confirma-se a existência de liquidez abaixo. Este design evita erros de julgamento demasiado sensíveis, ao mesmo tempo em que garante que a verdadeira caça à liquidez não seja omitida.

Confirmação de ponto de oscilação: 4 ciclos de atraso em troca de confiabilidade do sinal

A estratégia usa um comprimento de oscilação de 4 ciclos para confirmar altos e baixos, o que significa que é necessário esperar 4 linhas K para confirmar um ponto de oscilação. Esse atraso é um custo necessário: um período de confirmação muito curto produz um grande número de pontos de oscilação falsos, e um período de confirmação muito longo perde a eficácia.

4 ciclos no gráfico de 15 minutos equivalem a 1 hora de confirmação, garantindo a eficácia dos pontos de oscilação e não atrasando excessivamente as mudanças do mercado. Este parâmetro foi otimizado com uma grande quantidade de feedback e é o melhor ponto de equilíbrio entre eficiência e precisão.

A advertência de risco rigoroso: não é um cálice sagrado e precisa ser rigorosamente executado

A retrospectiva histórica não representa ganhos futuros, e qualquer estratégia tem a possibilidade de perdas contínuas. A estratégia SMC tem um excelente desempenho em mercados de forte tendência, mas a qualidade do sinal diminui em mercados de turbulência.

A estratégia requer uma rigorosa qualidade psicológica: é preciso aceitar perdas de 2 euros por partida, é preciso executar de forma decisiva quando surge um sinal, é preciso ser paciente quando não há sinal. Qualquer operação emocional destrói a vantagem estatística da estratégia.

Recomenda-se o uso de simulações de negociação por pelo menos 3 meses antes da entrada em vigor, para garantir a compreensão completa da lógica da estratégia e das características de risco. Lembre-se: a estrutura do mercado muda e nenhuma estratégia é válida para sempre.

Código-fonte da estratégia
/*backtest
start: 2024-12-04 00:00:00
end: 2025-12-02 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy(title="Stratégie SMC V18.2 (BTC/EUR FINAL R3 - Tendance)", shorttitle="SMC-BTC-FINAL-Tendance", overlay=true,
     currency=currency.EUR, // <--- CHANGÉ EN EUR
     initial_capital=1000, // Capital initial de 1000 euros pour coller à votre compte démo
     pyramiding=0, 
     default_qty_type=strategy.cash, 
     default_qty_value=1) 

// --- PARAMÈTRES ADAPTÉS POUR BTC (M15) ---
i_max_lot_size = input.float(0.01, title="Lot Max (Quantité Max BTC)", minval=0.00001, step=0.001)
i_min_lot_size = input.float(0.00001, title="Lot Min Réel (Exigence Broker)", minval=0.00001, step=0.00001) 
i_swing_length = input.int(4, title="Long. Swing (BOS) pour BTC", minval=2) // ADAPTÉ M15
i_ob_opacity = input.int(80, title="Opacité OB", minval=0, maxval=100)
i_liq_tolerance = input.float(0.1, title="Tolérance Liq. (%) pour BTC", minval=0.01, step=0.01)
i_liq_search = input.int(7, title="Long. Recherche Liq.", minval=5) // ADAPTÉ M15

// --- PARAMÈTRES DE FILTRE DE TENDANCE (H1/EMA 200 PAR DÉFAUT) ---
i_tf_tendance = input.string("60", title="Timeframe Tendance (ex: 60 pour H1)", options=["30", "60", "120", "240"]) // ADAPTÉ H1
i_ema_length = input.int(200, title="Longueur EMA Tendance", minval=1)

// --- GESTION DU RISQUE DÉDIÉE ---
float risk_amount = 2.0 // Risque de 2.00 EUROS par transaction
float min_sl_distance = 0.0001 

// --- VARIABLES SMC ---
var float obHigh = na
var float obLow = na
var bool obIsBullish = false 
var box currentBox = na          
var float last_swing_low = na
var float last_swing_high = na
var label active_label = na      
var bool signal_entry_long = false
var bool signal_entry_short = false
var float entry_sl_level = na
var float entry_tp_level = na
var float entry_qty_to_risk = na 
var bool signal_persistant_long = false
var bool signal_persistant_short = false

// --- FONCTION DE FILTRE DE TENDANCE (EMA sur TF supérieur) ---
f_get_ema_hl() => 
    request.security(syminfo.tickerid, i_tf_tendance, ta.ema(close, i_ema_length))

ema_tendance = f_get_ema_hl()

// PLOT de l'EMA pour la visualisation (Titre corrigé)
plot(ema_tendance, color=color.new(color.white, 20), title="EMA Tendance (Filtre)", linewidth=2)


// --- RÉINITIALISATION ---
if not na(active_label)
    label.delete(active_label)
active_label := na 

signal_entry_long := false 
signal_entry_short := false 
entry_qty_to_risk := na 


// Mise à jour des Swings Highs/Lows
sh_confirmed = ta.barssince(high == ta.highest(i_swing_length * 2 + 1)) == i_swing_length
sl_confirmed = ta.barssince(low == ta.lowest(i_swing_length * 2 + 1)) == i_swing_length

// Initialisation des swings 
if na(last_swing_high)
    last_swing_high := ta.highest(200)
if na(last_swing_low)
    last_swing_low := ta.lowest(200)

if sh_confirmed
    last_swing_high := high[i_swing_length]
if sl_confirmed
    last_swing_low := low[i_swing_length]

float fib_0_5_level = not na(last_swing_high) and not na(last_swing_low) ? (last_swing_high + last_swing_low) / 2 : na

// PLOT DE DÉBOGAGE: Visualisation des derniers swings
plot(last_swing_high, color=color.new(color.fuchsia, 50), style=plot.style_line, linewidth=2, title="Last Swing High")
plot(last_swing_low, color=color.new(color.lime, 50), style=plot.style_line, linewidth=2, title="Last Swing Low")


// --- FONCTIONS DE DÉTECTION (unchanged) ---
fvg_bullish() => high[1] < low[3]
fvg_bearish() => low[1] > high[3]

f_has_liquidity(direction) =>
    result = false
    price_to_search = direction ? low : high 
    
    search_price = direction ? ta.lowest(i_liq_search) : ta.highest(i_liq_search)

    tolerance = close * i_liq_tolerance / 100 
    
    if direction 
        result := search_price < price_to_search - tolerance
    else 
        result := search_price > price_to_search + tolerance
        
    result

// --- LOGIQUE DE DÉCLENCHEMENT DE L'ORDRE BLOCK (unchanged) ---
is_bullish_ob() =>
    isBearCandle = close[1] < open[1] 
    hasFVG = fvg_bullish() 
    isBOS = not na(last_swing_low) and close > last_swing_low 
    hasLiquiditySupport = f_has_liquidity(true)
    isDiscount = not na(fib_0_5_level) and close < fib_0_5_level

    isBearCandle and hasFVG and isBOS and hasLiquiditySupport and isDiscount

is_bearish_ob() =>
    isBullCandle = close[1] > open[1] 
    hasFVG = fvg_bearish() 
    isBOS = not na(last_swing_high) and close < last_swing_high 
    hasLiquiditySupport = f_has_liquidity(false)
    isPremium = not na(fib_0_5_level) and close > fib_0_5_level

    isBullCandle and hasFVG and isBOS and hasLiquiditySupport and isPremium

// --- CRÉATION / MISE À JOUR DE L'OB ACTIF (unchanged) ---
if na(obHigh) or strategy.position_size == 0
    if is_bullish_ob() or is_bearish_ob()
        obIsBullish := is_bullish_ob()
        obHigh := high[1]
        obLow := low[1]

// --- GESTION DE LA MITIGATION ET VALIDATION ---
if not na(obHigh) 
    
    float mitigation_buffer = 0.00005 * close 

    isTouched = obIsBullish ? low <= obHigh + mitigation_buffer : high >= obLow - mitigation_buffer
    isInvalidatedBull = obIsBullish and close < obLow
    isInvalidatedBear = not obIsBullish and close > obHigh
    
    // L'OB est touché ET nous ne sommes pas déjà en position
    if isTouched and strategy.position_size == 0
        
        // --- CALCULS ET SIGNAL ---
        var float sl_level = obIsBullish ? obLow : obHigh
        var float rr_distance_usd = math.abs(close - sl_level) 
        float safe_rr_distance = math.max(rr_distance_usd, min_sl_distance)
        
        float desired_risk_amount = risk_amount 
        
        float calculated_qty = desired_risk_amount / safe_rr_distance
        
        // LOGIQUE POUR GÉRER LOT MAX/MIN
        float minimum_lot_for_market = i_min_lot_size 
        
        entry_qty_to_risk := math.max(calculated_qty, minimum_lot_for_market)
        
        entry_qty_to_risk := math.min(entry_qty_to_risk, i_max_lot_size) 
        
        entry_sl_level := sl_level
        
        // TP FIXE : R:R 1:3
        entry_tp_level := obIsBullish ? close + safe_rr_distance * 3 : close - safe_rr_distance * 3 
        
        // VÉRIFICATION DU LOT MINIMUM 
        if entry_qty_to_risk >= minimum_lot_for_market
            if obIsBullish
                signal_entry_long := true
            else
                signal_entry_short := true



// --- EXÉCUTION DE LA STRATÉGIE ---

// Persistance du signal
if signal_entry_long and strategy.position_size == 0
    signal_persistant_long := true

if signal_entry_short and strategy.position_size == 0
    signal_persistant_short := true

// EXÉCUTION AVEC FILTRE DE TENDANCE
if strategy.position_size == 0
    
    // EXÉCUTION LONG
    if signal_persistant_long and not na(entry_qty_to_risk)
        // FILTRE LONG : Prix M15 au-dessus de l'EMA de tendance H1
        if close > ema_tendance
            strategy.entry("LongEntry", strategy.long, qty=entry_qty_to_risk, comment="OB Long Actif")
            strategy.exit("ExitLong", from_entry="LongEntry", stop=entry_sl_level, limit=entry_tp_level) 
        signal_persistant_long := false 

    // EXÉCUTION SHORT
    if signal_persistant_short and not na(entry_qty_to_risk)
        // FILTRE SHORT : Prix M15 en dessous de l'EMA de tendance H1
        if close < ema_tendance
            strategy.entry("ShortEntry", strategy.short, qty=entry_qty_to_risk, comment="OB Short Actif")
            strategy.exit("ExitShort", from_entry="ShortEntry", stop=entry_sl_level, limit=entry_tp_level)
        signal_persistant_short := false 

// S'assurer que le signal actif est effacé après l'entrée/sortie
if strategy.position_size != 0
    signal_persistant_long := false
    signal_persistant_short := false