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

Estratégias de stop loss dinâmicas adaptativas de cruzamento entre SMA e filtragem de volume de negociação

Autora:ChaoZhang, Data: 2024-07-31 11:20:39
Tags:SMA

SMA交叉与成交量过滤的自适应动态止盈止损策略

Resumo

Esta estratégia é um sistema de negociação automatizado baseado em cruzeiros simples de médias móveis (SMA) e filtragem de transações. Utiliza cruzeiros de SMAs rápidos e lentos para gerar sinais de entrada, além de combinar indicadores de negociação para confirmar a intensidade da tendência. A estratégia também inclui mecanismos dinâmicos de stop loss e stop loss, e condições de saída baseadas em tempo, com o objetivo de otimizar o gerenciamento de riscos e aumentar a lucratividade.

Princípios estratégicos

A estratégia é baseada em três componentes fundamentais:

  1. O sinal de cruzamento SMA:

    • Usando uma média móvel simples com dois ciclos diferentes (Fast SMA e Slow SMA)
    • Quando o SMA rápido atravessa o SMA lento abaixo, um sinal de multiplicação é produzido.
    • Quando o SMA rápido atravessa o SMA lento de cima, um sinal de parada é gerado.
  2. Filtragem de transações:

    • Calcule a média móvel simples de transações
    • Fazer vários sinais requer um volume de transações atual maior que o SMA.
    • Para fazer o sinal branco, o volume de transações atual é menor que o SMA.
  3. A partir de agora, o número de vítimas aumentará.

    • Estabelecer níveis de stop loss e stop loss com base na percentagem do preço de entrada
    • Os níveis de stop loss e stop filtragem podem ser ajustados através de parâmetros de entrada
  4. A partir do momento em que você saiu:

    • Configure o tempo máximo de armazenamento (quantificado em K-line)
    • O equilíbrio automático acima do tempo máximo de detenção, para evitar posições desfavoráveis por muito tempo
  5. Configuração durante o retest:

    • Permite que o usuário defina um intervalo de tempo específico de reencontro
    • Certifique-se de que a estratégia só funcione durante o período de tempo indicado

Vantagens estratégicas

  1. A tendência é acompanhada de um movimento: A estratégia é capaz de capturar mercados de tendência forte, evitando frequentes negociações em mercados fracos, combinando cruzamento de SMA e filtragem de volume de transações.

  2. Gestão flexível de riscos: Os mecanismos de stop loss e stop loss dinâmicos permitem que a estratégia ajuste automaticamente a exposição ao risco de acordo com a volatilidade do mercado, ajudando a proteger os lucros e limitar os possíveis prejuízos.

  3. O que fazer para evitar o excesso de estoque: O limite máximo de tempo de detenção ajuda a impedir que a estratégia mantenha posições perdedoras por muito tempo em condições adversas de mercado e promove o uso eficiente dos fundos.

  4. A partir de agora, a empresa está em desenvolvimento. Vários parâmetros ajustáveis (como o ciclo SMA, a porcentagem de stop loss, o tempo máximo de detenção, etc.) permitem que a estratégia seja otimizada de acordo com diferentes mercados e estilos de negociação.

  5. Apoio visual: A estratégia traça a linha SMA e os sinais de negociação no gráfico, facilitando a compreensão e análise intuitivas do desempenho da estratégia.

Risco estratégico

  1. O atraso: Os indicadores SMA são inerentemente atrasados, o que pode levar a uma entrada atrasada ou a oportunidades perdidas em mercados de rápida reversão.

  2. O risco de falsos avanços: No mercado horizontal, o cruzamento do SMA pode gerar sinais de ruptura falsos frequentes, resultando em excesso de negociação e aumento do custo de negociação.

  3. O preço depende de: A dependência excessiva de indicadores de volume de negociação pode ser um erro estratégico em certas condições de mercado, especialmente durante períodos de baixa liquidez ou volume de negociação anormal.

  4. Percentagem fixa de prejuízo/prejuízo: O uso de perdas e perdas em percentagem fixa pode não ser adequado para todas as condições do mercado, especialmente em períodos de fortes variações de volatilidade.

  5. A restrição do tempo de saída: O tempo máximo de detenção fixo pode levar a uma liquidação prematura quando a tendência favorável ainda não terminou, afetando os ganhos potenciais.

Estratégias de otimização

  1. Ajuste de parâmetros dinâmicos: Realizar ajustes dinâmicos no ciclo SMA, percentual de stop-loss e tempo máximo de detenção para adaptar-se a diferentes ciclos e volatilidades do mercado.

  2. Incorporar filtros adicionais: A introdução de outros indicadores técnicos (como RSI, MACD, etc.) como condições de filtragem adicionais aumenta a precisão dos sinais de negociação.

  3. O que é que isso significa para o Brasil? Desenvolver um mecanismo de limiar de volume de negociação de ajuste dinâmico para se adaptar melhor às características de volume de negociação em diferentes etapas do mercado.

  4. Melhorar o mecanismo de saída: Explorar mecanismos de saída inteligente baseados em estrutura de mercado ou indicadores de dinâmica, substituindo a saída de tempo fixo e melhorando a adaptabilidade da estratégia.

  5. A mudança de volatilidade: Realizar ajustes dinâmicos dos níveis de stop-loss e stop-loss baseados na volatilidade do mercado para melhor gerenciar o risco e capturar lucros.

  6. Análise de vários quadros de tempo: A análise de dados integrada em vários quadros de tempo aumenta a capacidade da estratégia de identificar tendências e inversões no mercado.

  7. Otimizar a aprendizagem de máquina: Utilize algoritmos de aprendizado de máquina para otimizar dinamicamente os parâmetros da estratégia e melhorar o desempenho da estratégia em diferentes contextos de mercado.

Resumo

A estratégia de stop-loss dinâmico adaptável, que combina rastreamento de tendências, análise de tendências e gestão de riscos. Através da utilização da estratégia de stop-loss dinâmico e filtragem de entradas, a estratégia visa capturar tendências de mercado fortes, enquanto seu mecanismo de stop-loss dinâmico e a função de saída de base de tempo fornecem controle de risco flexível. Apesar de algumas limitações inerentes, como o atraso do sinal e a dependência de parâmetros fixos, a estratégia oferece várias direções de otimização, incluindo ajustes dinâmicos de parâmetros, introdução de indicadores técnicos adicionais e utilização de tecnologias de aprendizagem de máquina. Através da otimização e melhoria contínuas, a estratégia tem potencial para se tornar uma ferramenta de negociação automática altamente flexível e adequada para uma variedade de condições e estilos de negociação de mercado.


/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true)

// INPUTS
dateStart_Year = input.int(2018, title="Start Year", minval=2000)
dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12)
dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input.int(2019, title="End Year", minval=2000)
dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31)

fast_SMA_input = input.int(7, title="SMA Fast")
slow_SMA_input = input.int(25, title="SMA Slow")
volume_SMA_input = input.int(20, title="Volume SMA")
stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100
take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1)

// INDICATORS
fast_SMA = ta.sma(close, fast_SMA_input)
slow_SMA = ta.sma(close, slow_SMA_input)
volume_SMA = ta.sma(volume, volume_SMA_input)

// STRATEGY
LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA
SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA

// TRIGGERS
testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day)
testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day)
timecondition = true

// Track bar index for entries
var int long_entry_bar_index = na
var int short_entry_bar_index = na

if timecondition
    if LONG
        strategy.entry(id="LONG", direction=strategy.long)
        long_entry_bar_index := bar_index
    if SHORT
        strategy.entry(id="SHORT", direction=strategy.short)
        short_entry_bar_index := bar_index

    // Exit conditions for LONG
    if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade
        strategy.close("LONG")
        long_entry_bar_index := na
    
    // Exit conditions for SHORT
    if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade
        strategy.close("SHORT")
        short_entry_bar_index := na

    // Standard exits
    if LONG
        strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent))
    if SHORT
        strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent))

// PLOTS
plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA")
plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA")
plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA")
plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)

// Uncomment the following lines for alerts
// alertcondition(LONG, title="LONG")
// alertcondition(SHORT, title="SHORT")


Relacionado

Mais informações