Sistema de negociação de filtro SMA de quebra de lacuna de tendência

GAP SMA MA
Data de criação: 2024-11-29 15:07:43 última modificação: 2024-11-29 15:07:43
cópia: 0 Cliques: 377
1
focar em
1617
Seguidores

Sistema de negociação de filtro SMA de quebra de lacuna de tendência

Visão geral

Trata-se de um sistema de negociação de acompanhamento de tendências baseado em salto de preços e filtragem de médias móveis. A estratégia identifica sinais de salto de preços com significância estatística e, em combinação com o filtro de tendências SMA, executa a negociação quando há uma tendência clara no mercado. O conceito central da estratégia é capturar oportunidades de continuação de tendências causadas por salto de preços causados por desequilíbrio de oferta e demanda.

Princípio da estratégia

A estratégia funciona com base nos seguintes elementos-chave:

  1. Identificação de saltos - O sistema identifica saltos por meio do cálculo do percentual de diferença entre o preço de abertura e o preço de fechamento anterior, e define o limite mínimo de saltos para filtrar pequenas flutuações.
  2. Opções de direção - oferece vários modos de negociação de salto alto (faça mais salto alto, faça salto baixo, salto alto, etc.), o usuário pode escolher de forma flexível de acordo com a situação do mercado.
  3. Filtro de tendência SMA - julgar a tendência geral através de uma média móvel simples e abrir uma posição somente quando o preço está de acordo com a direção da tendência.
  4. Gerenciamento de posições - Gerenciamento de posições usando um ciclo de posse predefinido para controlar o risco de forma eficaz.

Vantagens estratégicas

  1. Sinais claros - Os sinais de salto são claramente visíveis, facilitando o julgamento e a execução.
  2. Controlar o risco - controlar o risco de forma eficaz, definindo o limite mínimo de salto e o tempo de detenção.
  3. Flexível - pode optar por diferentes direções de negociação de salto, de acordo com a situação do mercado.
  4. Confirmação de tendências - o filtro SMA fornece confirmação de tendências adicionais, aumentando a taxa de sucesso das negociações.
  5. Alto nível de automação - estratégia de lógica clara, fácil de automatizar.

Risco estratégico

  1. Risco de Falsa Ressurreição - Pode ocorrer uma reposição rápida após o salto, resultando em um falso sinal.
  2. Risco de deslizamento - O comércio de salto em aberto pode enfrentar um deslizamento maior.
  3. Risco de reversão de tendência - o prazo fixo de posse pode perder a reversão de tendência.
  4. Dependência do cenário de mercado - em mercados de baixa volatilidade, há menos sinais eficazes.

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

  1. Período de detenção dinâmico - o tempo de detenção é ajustado dinamicamente de acordo com a volatilidade do mercado.
  2. Confirmação múltipla - introdução de indicadores como volume de tráfego, taxa de flutuação e confirmação de sinais.
  3. Optimização de stop loss - adicionar stop loss de rastreamento ou stop loss de taxa de flutuação.
  4. Classificação de sinais - Sistema de abertura de depósito de acordo com a amplitude de salto.
  5. Seleção de Mercado - Estabelecer mecanismos de identificação do ambiente de mercado para negociar em condições de mercado adequadas.

Resumir

A estratégia é capaz de obter ganhos estáveis em mercados de tendência através de um sistema de negociação com clareza lógica e controle de risco, combinado com filtragem de tendências de salto de preço e linha uniforme. A estratégia é recomendada aos comerciantes para realizar testes históricos completos antes de usar no mercado real e otimizar de forma direcionada de acordo com as características específicas do mercado.

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

//@version=5
strategy("Simplified Gap Strategy with SMA Filter", overlay=true)

// Input fields for user control
long_gap_threshold = input.float(0.1, title="Gap Threshold (%)", minval=0.01, step=0.01)  // Minimum percentage for gaps
hold_duration = input.int(10, title="Hold Duration (bars)", minval=1)  // Duration to hold the position
gap_trade_option = input.string("Long Up Gap", title="Select Trade Option", options=["Long Up Gap", "Short Down Gap", "Short Up Gap", "Long Down Gap"])  // Combined option
use_sma_filter = input.bool(false, title="Use SMA Filter")  // Checkbox to activate SMA filter
sma_length = input.int(200, title="SMA Length", minval=1)  // Length of the SMA

// RGB color definitions for background
color_up_gap = color.new(color.green, 50)    // Green background for up gaps
color_down_gap = color.new(color.red, 50)    // Red background for down gaps

// Gap size calculation in percentage terms
gap_size = (open - close[1]) / close[1] * 100  // Gap size in percentage

// Calculate gaps based on threshold input
up_gap = open > close[1] and gap_size >= long_gap_threshold  // Long gap condition
down_gap = open < close[1] and math.abs(gap_size) >= long_gap_threshold  // Short gap condition

// Calculate the SMA
sma_value = ta.sma(close, sma_length)

// Define the trading logic based on selected option and SMA filter
if (gap_trade_option == "Long Up Gap" and up_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)
if (gap_trade_option == "Short Down Gap" and down_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Short Up Gap" and up_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Long Down Gap" and down_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)

// Exit position after the hold duration
if (strategy.opentrades > 0)
    if (bar_index - strategy.opentrades.entry_bar_index(0) >= hold_duration)
        strategy.close("Long")
        strategy.close("Short")

// Background coloring to highlight gaps on the chart
bgcolor((gap_trade_option == "Long Up Gap" and up_gap) ? color_up_gap : na, title="Up Gap Background")
bgcolor((gap_trade_option == "Short Down Gap" and down_gap) ? color_down_gap : na, title="Down Gap Background")
bgcolor((gap_trade_option == "Short Up Gap" and up_gap) ? color_down_gap : na, title="Short Up Gap Background")
bgcolor((gap_trade_option == "Long Down Gap" and down_gap) ? color_up_gap : na, title="Long Down Gap Background")

// Plot the SMA for visualization
plot(use_sma_filter ? sma_value : na, color=color.white, title="SMA", linewidth=1)