Estratégia de negociação de reversão de candlestick contínuo de reversão média

EMA MR ENTRY EXIT FILTER Trend
Data de criação: 2025-02-19 10:51:35 última modificação: 2025-02-19 10:51:35
cópia: 2 Cliques: 430
1
focar em
1617
Seguidores

Estratégia de negociação de reversão de candlestick contínuo de reversão média

Visão geral

Esta é uma estratégia de negociação baseada no princípio da regressão ao valor médio, para capturar oportunidades de reversão de preços de curto prazo, identificando as formas de K-linhas de queda e subida consecutivas. A lógica central da estratégia é entrar mais após a ocorrência de 3 K-linhas de queda consecutivas e sair em posição zero após a ocorrência de 3 K-linhas de subida consecutivas. A estratégia também pode ser seletivamente combinada com o filtro de linha uniforme da EMA para melhorar a qualidade de negociação.

Princípio da estratégia

A estratégia baseia-se nos seguintes elementos principais:

  1. Contador de linhas K contínuas: conta o número de linhas K que subem e descem em sequência, respectivamente
  2. Condição de entrada: Trigger do sinal de multiplicação quando o preço de fechamento de uma quantidade especificada (default 3 roots) aparece em sequência e a linha K cai
  3. Condição de saída: Acionamento do sinal de liquidação quando o preço de fechamento de uma quantidade especificada (default 3 roots) subiu na linha K consecutivamente
  4. EMA filtro: adicionar seletivamente 200 ciclos de média móvel como condição de filtro de tendência
  5. Janela de horário de negociação: pode-se definir um horário de início de negociação específico para limitar o intervalo de negociação

Vantagens estratégicas

  1. Lógica simples e clara: estratégias usam métodos simples de contagem de linhas K, fáceis de entender e implementar
  2. Adaptabilidade: pode ser aplicada a diferentes períodos de tempo e variedades de transação
  3. Flexibilidade de parâmetros: o número de linhas K contínuas, o ciclo EMA e outros parâmetros podem ser ajustados conforme necessário
  4. Controle de risco perfeito: controle de risco por meio de múltiplos mecanismos, como janelas de tempo e filtragem de tendências
  5. Alta eficiência de computação: a lógica central só precisa comparar os preços de fechamento de linhas K adjacentes, com um baixo ônus operacional

Risco estratégico

  1. Risco de mercado de tendência: Falso breakout pode ocorrer com frequência em mercados de tendência forte
  2. Sensibilidade de parâmetros: a configuração do número de linhas K contínuas tem maior influência no desempenho da estratégia
  3. Efeitos de deslizamento: pode haver maior risco de deslizamento em mercados com muita volatilidade
  4. Risco de falsos sinais: o formato de linha K contínua pode ser interrompido pelo ruído do mercado
  5. Desvantagens de stop loss: a estratégia não tem um mecanismo de stop loss definido, o que pode levar a um retorno maior

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

  1. Adição de mecanismos de stop loss: recomenda-se a adição de stop loss fixo ou stop loss de rastreamento para controlar o risco
  2. Otimização das condições de filtragem: podem ser introduzidos indicadores como volume de tráfego, taxa de flutuação e outros como filtragem auxiliar
  3. Ajuste de parâmetros dinâmicos: considerar o número de linhas K contínuas requeridas para ajuste dinâmico de acordo com a situação do mercado
  4. Aumentar a gestão de armazenamento: pode ser projetado um mecanismo de construção e redução de armazenamento em lotes para aumentar a receita
  5. Perfeccionar o gerenciamento do tempo: Configurar diferentes parâmetros de transação para diferentes períodos de tempo

Resumir

Esta é uma estratégia de retorno do valor médio razoavelmente projetada para obter ganhos capturando oportunidades de rebote de queda e queda de preços em curto prazo. A principal vantagem da estratégia é a simplicidade lógica e a adaptabilidade, mas na aplicação prática, é necessário ter atenção ao controle do risco. É recomendado aumentar a estabilidade da estratégia adicionando mecanismos de parada de perda, otimizando as condições de filtragem e outras formas.

Código-fonte da estratégia
/*backtest
start: 2025-01-19 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("3 Down, 3 Up Strategy", overlay=true, initial_capital = 1000000, default_qty_value = 200, default_qty_type = strategy.percent_of_equity, process_orders_on_close = true, margin_long = 5, margin_short = 5, calc_on_every_tick = true)


//#region INPUTS SECTION
// ============================================
// Time Settings
// ============================================
startTimeInput = input(timestamp("1 Jan 2014"), "Start Time", group = "Time Settings")
endTimeInput = input(timestamp("1 Jan 2099"), "End Time", group = "Time Settings")
isWithinTradingWindow = true

// ============================================
// Strategy Settings
// ============================================
buyTriggerInput = input.int(3, "Consecutive Down Closes for Entry", minval = 1, group = "Strategy Settings")
sellTriggerInput = input.int(3, "Consecutive Up Closes for Exit", minval = 1, group = "Strategy Settings")

// ============================================
// EMA Filter Settings
// ============================================
useEmaFilter = input.bool(false, "Use EMA Filter", group = "Trend Filter")
emaPeriodInput = input.int(200, "EMA Period", minval = 1, group = "Trend Filter")
//#endregion

//#region INDICATOR CALCULATIONS
// ============================================
// Consecutive Close Counter
// ============================================
var int aboveCount = na
var int belowCount = na

aboveCount := close > close[1] ? (na(aboveCount) ? 1 : aboveCount + 1) : 0
belowCount := close < close[1] ? (na(belowCount) ? 1 : belowCount + 1) : 0

// ============================================
// Trend Filter Calculation
// ============================================
emaValue = ta.ema(close, emaPeriodInput)
//#endregion

//#region TRADING CONDITIONS
// ============================================
// Entry/Exit Logic
// ============================================
longCondition = belowCount >= buyTriggerInput and isWithinTradingWindow
exitCondition = aboveCount >= sellTriggerInput

// Apply EMA Filter if enabled
if useEmaFilter
    longCondition := longCondition and close > emaValue
//#endregion

//#region STRATEGY EXECUTION
// ============================================
// Order Management
// ============================================
if longCondition
    strategy.entry("Long", strategy.long)
    
if exitCondition
    strategy.close_all()
//#endregion