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

Estratégia de cruzamento de tendências de múltiplos indicadores: Sistema de negociação de bandas de suporte ao mercado alcista

Autora:ChaoZhang, Data: 2024-12-27 14:35:53
Tags:SMABMSBEMA

img

Resumo

Esta estratégia é um sistema de negociação de tendência baseado na banda de suporte do mercado de touros. Ele usa principalmente sinais de cruzamento entre a média móvel simples (SMA) de 20 semanas e a média móvel exponencial (EMA) de 21 semanas para determinar a direção da tendência do mercado e tomar decisões de negociação.

Princípios de estratégia

A lógica central da estratégia é monitorar a posição relativa da SMA de 20 semanas e da EMA de 21 semanas para julgar as tendências do mercado. Quando a média de curto prazo (20-semana SMA) rompe acima da média de longo prazo (21-semana EMA), ela indica uma tendência de alta potencial, desencadeando uma entrada de posição longa. Quando a média de curto prazo cai abaixo da média de longo prazo, ela sinaliza um fim potencial da tendência de alta, desencadeando o fechamento de posição. A estratégia emprega percent_of_equity gestão de posição, com uma comissão de negociação de 0,1% e deslizamento de 3 pontos base.

Vantagens da estratégia

  1. Seguimento de tendências fortes: utiliza cruzamento das médias móveis de período semanal para filtrar o ruído do mercado a curto prazo e capturar oportunidades de tendências de médio a longo prazo
  2. Controlo razoável do risco: utiliza médias móveis dinâmicas como referência de stop-loss para saídas oportunas do mercado
  3. Definição de parâmetros científicos: os parâmetros de 20 e 21 semanas garantem a estabilidade do sinal sem atrasos excessivos
  4. Lógica de execução clara: os sinais de entrada e saída são explícitos, eliminando o julgamento subjetivo
  5. Gestão flexível do capital: suporta o dimensionamento das posições com base no capital próprio da conta, permitindo um ajustamento dinâmico das posições

Riscos estratégicos

  1. Ineficaz em mercados variáveis: os crossovers frequentes durante os mercados laterais podem conduzir a falhas e perdas consecutivas
  2. Impacto de deslizamento significativo: as operações de prazo semanal podem enfrentar deslizamento substancial nas operações reais
  3. Tempo de entrada atrasado: os sinais cruzados de média móvel estão inerentemente atrasados, potencialmente faltando pontos de entrada ideais
  4. Controle insuficiente da retirada: a dependência exclusiva de cruzamento de médias móveis para o stop-loss pode conduzir a grandes retiradas
  5. Requisitos de capital elevados: as operações de prazo semanal exigem um capital substancial e uma resistência psicológica

Orientações de otimização

  1. Adicionar indicadores de filtragem: Incorporar RSI, MACD, etc. para confirmar tendências e melhorar a confiabilidade do sinal
  2. Otimizar o mecanismo de stop-loss: implementar o stop-loss dinâmico utilizando o indicador ATR para melhorar o controlo do risco
  3. Melhorar a gestão das posições: ajustar dinamicamente os tamanhos das posições com base na volatilidade do mercado
  4. Adicionar filtragem de tendências: introduzir um julgamento de tendências de longo prazo para negociar apenas na direção da tendência primária
  5. Melhorar a execução das negociações: Otimizar as regras de negociação para reduzir o impacto do deslizamento e melhorar a estabilidade da estratégia

Resumo

A estratégia de negociação da banda de suporte do mercado touro é um sistema de tendência baseado na teoria clássica da análise técnica. Captura oportunidades de tendência de médio a longo prazo através de cruzamento de média móvel semanal, com lógica clara e risco controlável. No entanto, a estratégia apresenta desempenho fraco em mercados variados e apresenta algum atraso. Através da adição de indicadores auxiliares, otimização de stop-loss e melhoria da gestão de capital, a estratégia tem espaço significativo para otimização. É adequada para investidores com capital substancial e tolerância ao risco.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0
// © zkdev

//@version=6
strategy(title='Demo GPT - Bull Market Support Band', 
     overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1, 
     slippage=3)

// -------------------------------------------------------------------------
// Compile-time timestamp constants for default date range
// (2018-01-01 00:00:00 UTC -> 1514764800000
//  2069-12-31 23:59:59 UTC -> 3155759999000)
// -------------------------------------------------------------------------
const int defaultFromDate = 1514764800000
const int defaultToDate   = 3155759999000

// -------------------------------------------------------------------------
// Inputs: date range
// -------------------------------------------------------------------------
fromDate = input(title='Start Date', defval=defaultFromDate)
toDate   = input(title='End Date',   defval=defaultToDate)

// -------------------------------------------------------------------------
// Indicator settings & calculations
// -------------------------------------------------------------------------
smaLength = 20
emaLength = 21

source = close
sma    = ta.sma(source, smaLength)
ema    = ta.ema(source, emaLength)

// -------------------------------------------------------------------------
// Fetch weekly SMA & EMA
// -------------------------------------------------------------------------
outSma = request.security(syminfo.tickerid, 'W', sma, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
outEma = request.security(syminfo.tickerid, 'W', ema, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)

// -------------------------------------------------------------------------
// Plot visuals (20w SMA, 21w EMA, fill in between)
// -------------------------------------------------------------------------
smaPlot = plot(outSma, color=color.new(color.red,   0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)

// -------------------------------------------------------------------------
// We evaluate crossover/crossunder on *every bar* and store the result
// -------------------------------------------------------------------------
crossUp   = ta.crossover(outSma, outEma)
crossDown = ta.crossunder(outSma, outEma)

// -------------------------------------------------------------------------
// Trade logic: only operate within chosen date range
// Buy when outSma crosses above outEma; Sell (close) when outSma crosses below outEma
// -------------------------------------------------------------------------
inDateRange = true

if inDateRange
    // If we have a crossUp event on this bar, buy (go Long)
    if crossUp
        strategy.entry('Long', strategy.long)

    // If we have a crossDown event on this bar, sell (close Long)
    if crossDown
        strategy.close('Long')


Relacionados

Mais.