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

Teoria da SMC de várias zonas baseada na estratégia de tendência inteligente

Autora:ChaoZhang, Data: 2024-11-29 15:38:01
Tags:SMASMCOBEQ

img

Resumo

Esta estratégia, baseada na teoria Smart Money Concepts (SMC), constrói uma tendência abrangente seguindo o sistema de negociação dividindo o mercado em três principais zonas de preços: Equilíbrio, Prémio e Desconto.

Princípios de estratégia

A lógica central inclui vários elementos-chave:

  1. Calcula os altos e baixos das últimas 8 velas para determinar a faixa de mercado.
  2. Define a zona de equilíbrio como o ponto médio entre os altos e baixos do balanço, com a zona de prêmio acima e a zona de desconto abaixo.
  3. Usa a SMA de 50 períodos para determinar a direção geral da tendência - alta acima da SMA, baixa abaixo.
  4. Gerar sinais de compra na zona de desconto quando o preço está acima da SMA, e vender sinais na zona premium quando o preço está abaixo da SMA.
  5. Identifica os blocos de ordens analisando os preços mais altos e mais baixos dentro de 20 velas para confirmar os sinais de negociação.
  6. Marca os altos e baixos de oscilação como zonas de liquidez para prever pontos de reversão de preços potenciais.

Vantagens da estratégia

  1. Método estruturado de divisão de zonas que fornece uma identificação clara da fase de mercado.
  2. Mecanismo de confirmação de sinais múltiplos através da verificação tripla de zonas, tendências e blocos de ordens.
  3. Adaptação dinâmica às alterações do mercado com atualizações em tempo real dos níveis principais de preços.
  4. Sistema de gestão de riscos abrangente, incluindo gestão de stop-loss e de posições.
  5. Implementação de código limpa e eficiente, fácil de manter e otimizar.

Riscos estratégicos

  1. Possíveis falsos sinais de ruptura em mercados voláteis.
  2. O atraso do indicador nas rápidas inversões de mercado devido à dependência dos dados históricos.
  3. A média móvel de período fixo pode não ser adequada a todos os ambientes de mercado.
  4. Requer configurações de stop-loss adequadas para o controlo do risco. Medidas recomendadas de gestão dos riscos:
  • Ajuste dinâmico dos parâmetros para diferentes condições de mercado
  • Adição de filtros de volatilidade
  • Aplicação de regras rigorosas de gestão de fundos
  • Testes antecipados regulares e otimização de parâmetros

Orientações de otimização

  1. Introduzir parâmetros adaptativos:
  • Ajustar dinamicamente os intervalos de zonas com base na volatilidade do mercado
  • Implementar médias móveis de período adaptativo
  1. Filtragem melhorada do sinal:
  • Adicionar mecanismo de confirmação de volume
  • Incorporar indicadores de ímpeto
  1. Melhorar a gestão dos riscos:
  • Implementar um mecanismo dinâmico de stop-loss
  • Otimizar o algoritmo de dimensionamento de posição
  1. Aumentar a eficiência da execução:
  • Otimizar a lógica de cálculo para reduzir o consumo de recursos
  • Melhorar o mecanismo de geração de sinal para uma resposta mais rápida

Resumo

Esta estratégia constrói um robusto sistema de tendência através da divisão de zona inteligente e mecanismos de confirmação de múltiplos sinais. Seus principais pontos fortes estão na análise clara da estrutura do mercado e na gestão de risco abrangente. Através da otimização e melhoria contínua, a estratégia mostra promessa de desempenho estável em diferentes condições de mercado. Os comerciantes são aconselhados a ajustar parâmetros com base em características específicas do mercado e manter um controle de risco rigoroso ao implementar a estratégia na negociação ao vivo.


/*backtest
start: 2024-11-21 00:00:00
end: 2024-11-28 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@version=5
strategy("SMC Strategy with Premium, Equilibrium, and Discount Zones", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === Instellingen voor Swing High en Swing Low ===
swingHighLength = input.int(8, title="Swing High Length")
swingLowLength = input.int(8, title="Swing Low Length")

// Vind de recente swing highs en lows
var float swingHigh = na
var float swingLow = na

if (ta.highestbars(high, swingHighLength) == 0)
    swingHigh := high

if (ta.lowestbars(low, swingLowLength) == 0)
    swingLow := low

// Bereken Equilibrium, Premium en Discount Zones
equilibrium = (swingHigh + swingLow) / 2
premiumZone = swingHigh
discountZone = swingLow

// Plot de zones op de grafiek
plot(equilibrium, title="Equilibrium", color=color.blue, linewidth=2)
plot(premiumZone, title="Premium Zone (Resistance)", color=color.red, linewidth=1)
plot(discountZone, title="Discount Zone (Support)", color=color.green, linewidth=1)

// === Simple Moving Average om trendrichting te bepalen ===
smaLength = input.int(50, title="SMA Length")
sma = ta.sma(close, smaLength)
plot(sma, title="SMA", color=color.orange)

// === Entry- en Exitregels op basis van zones en trendrichting ===

// Koop- en verkoopsignalen
buySignal = close < equilibrium and close > discountZone and close > sma // Prijs in discount zone en boven SMA
sellSignal = close > equilibrium and close < premiumZone and close < sma // Prijs in premium zone en onder SMA

// Order Blocks (Eenvoudig: hoogste en laagste kaars binnen de laatste 20 kaarsen)
orderBlockLength = input.int(20, title="Order Block Length")
orderBlockHigh = ta.highest(high, orderBlockLength)
orderBlockLow = ta.lowest(low, orderBlockLength)

// Koop- en verkoopsignalen met order block bevestiging
buySignalOB = buySignal and close >= orderBlockLow // Koop in discount zone met ondersteuning van order block
sellSignalOB = sellSignal and close <= orderBlockHigh // Verkoop in premium zone met weerstand van order block

// === Uitvoeren van Trades ===
if (buySignalOB)
    strategy.entry("Buy", strategy.long)
    
if (sellSignalOB)
    strategy.entry("Sell", strategy.short)

// === Plots voor visuele feedback ===
plotshape(buySignalOB, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignalOB, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// === Liquiditeitsjachten aangeven ===
// Simpel: markeer recente swing highs en lows als liquiditeitszones
liquidityZoneHigh = ta.valuewhen(high == swingHigh, high, 0)
liquidityZoneLow = ta.valuewhen(low == swingLow, low, 0)

// Markeer liquiditeitszones
plot(liquidityZoneHigh, title="Liquidity Zone High", color=color.red, linewidth=1, style=plot.style_cross)
plot(liquidityZoneLow, title="Liquidity Zone Low", color=color.green, linewidth=1, style=plot.style_cross)


Relacionados

Mais.