Estratégia de negociação de rompimento de altura de candlestick com múltiplas médias móveis, RSI e saídas de desvio padrão


Data de criação: 2024-03-28 16:13:45 última modificação: 2024-03-28 16:13:45
cópia: 0 Cliques: 671
1
focar em
1617
Seguidores

Estratégia de negociação de rompimento de altura de candlestick com múltiplas médias móveis, RSI e saídas de desvio padrão

Visão geral da estratégia

A estratégia combina várias médias móveis de índices (EMA), índices de fraqueza relativa (RSI) e condições de saída baseadas em desvios padrão para identificar oportunidades de compra e venda potenciais. Usam EMAs de curto prazo (6,8,12 dias), médio prazo (55 dias) e longo prazo (150 dias, 200 dias, 250 dias) para analisar a direção e a intensidade da tendência do mercado. O RSI usa barreiras configuráveis de compra (~30) e venda (~70) para avaliar a dinâmica e identificar situações de sobrecompra ou sobrevenda.

Princípio da estratégia

  1. Calcule os EMAs de múltiplos ciclos (6, 8, 12, 55, 100, 150, 200) como referência visual para avaliar a tendência do mercado.
  2. De acordo com o número de linhas de arame que o usuário insere ((3-4 raízes), calcule o preço mais alto e o preço mais baixo dos últimos N linhas de arame.
  3. Condições de compra: o preço de fechamento atual é superior ao preço mais alto da linha de raiz N mais recente e é superior ao filtro EMA (se ativado).
  4. Condições de venda: o preço de fechamento atual é inferior ao preço mais baixo da linha de raiz N mais recente e é inferior ao filtro EMA (se ativado).
  5. Condições de saída para posições longas: o preço de fechamento atual está abaixo da EMA de 12 dias + 0,5 vezes o diferencial padrão, ou abaixo da EMA de 12 dias.
  6. Condições de saída de posição curta: o preço de fechamento atual está acima da EMA do dia 12 - 0,5 vezes a diferença padrão, ou acima da EMA do dia 12
  7. Usando o RSI como um indicador auxiliar, o ciclo padrão é de 14, o limiar de superalimento é de 30, o limiar de superalimento é de 70.

Vantagens estratégicas

  1. A combinação das duas dimensões de seguimento de tendências (múltiplos EMAs) e a dinâmica (RSI) fornece uma perspectiva mais abrangente de análise de mercado.
  2. O exclusivo mecanismo de saída baseado na diferença padrão permite um equilíbrio entre a proteção dos lucros e o controle dos riscos.
  3. O código é altamente modulado, os parâmetros-chave podem ser configurados pelo usuário e a flexibilidade é alta.
  4. Aplica-se a várias variedades e períodos de tempo, especialmente para ações e Bitcoin de transações de dia.

Análise de Riscos

  1. Os sinais falsos são frequentes durante os primeiros momentos de um mercado em turbulência ou de uma reversão de tendência, resultando em perdas contínuas.
  2. Os parâmetros padrão não são válidos para todos os cenários de mercado e precisam ser otimizados em combinação com o feedback.
  3. É arriscado negociar apenas com esta estratégia, e recomenda-se tomar decisões auxiliares, como a combinação de outros indicadores e a sustentação de resistências.
  4. A reação ao surgimento de um evento de grande importância é lenta.

Direção de otimização

  1. Optimizar os parâmetros EMA e RSI: Analisar as combinações de parâmetros de acordo com a variedade, o período e as características do mercado para encontrar o melhor intervalo de parâmetros.
  2. Adicionar um mecanismo de stop loss: consulte os indicadores de volatilidade, como o ATR, configure um stop loss e um stop loss razoáveis, controle o risco de uma única transação.
  3. Introdução de gerenciamento de posições: pode ajustar o tamanho das posições de acordo com a intensidade da tendência (como o ADX) ou a distância dos pontos de resistência de suporte crítico.
  4. Usado em combinação com outros indicadores técnicos, como Brinband, MACD, equilíbrio de cruzamentos, etc., para aumentar a confiabilidade do sinal de abertura de posição.
  5. Optimização de estado de segmentação de mercado: combinação de parâmetros de otimização para diferentes estados de mercado, como tendências, oscilações e reviravoltas.

Resumir

Este artigo propõe uma estratégia de negociação de alta ruptura de linha de ancoragem baseada em múltiplas médias móveis, RSI e saídas padrão. A estratégia analisa o mercado a partir de duas dimensões de tendência e dinâmica, e usa um mecanismo exclusivo de saída padrão para controlar o risco ao mesmo tempo em que capta oportunidades de tendência.

Código-fonte da estratégia
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candle Height Breakout with Configurable Exit and Signal Control", shorttitle="CHB Single Signal", overlay=true)

// Input parameters for EMA filter and its length
useEmaFilter = input.bool(true, "Use EMA Filter", group="Entry Conditions")
emaFilterLength = input.int(55, "EMA Filter Length", minval=1, group="Entry Conditions")
candleCount = input.int(4, "SamG Configurable Candle Count for Entry", minval=3, maxval=4, step=1, group="Entry Conditions")
exitEmaLength = input.int(12, "Exit EMA Length", minval=1, group="Exit Conditions", defval=12)
exitStdDevMultiplier = input.float(0.5, "Exit Std Dev Multiplier", minval=0.1, maxval=2.0, step=0.1, group="Exit Conditions")

// State variables to track if we are in a long or short position
var bool inLong = false
var bool inShort = false

// Calculating EMAs with fixed periods for visual reference
ema6 = ta.ema(close, 6)
ema8 = ta.ema(close, 8)
ema12 = ta.ema(close, 12)
ema55 = ta.ema(close, 55)
ema100 = ta.ema(close, 100)
ema150 = ta.ema(close, 150)
ema200 = ta.ema(close, 200)
emaFilter = ta.ema(close, emaFilterLength)
exitEma = ta.ema(close, exitEmaLength)

// Plotting EMAs
plot(ema6, "EMA 6", color=color.red)
plot(ema8, "EMA 8", color=color.orange)
plot(ema12, "EMA 12", color=color.yellow)
plot(ema55, "EMA 55", color=color.green)
plot(ema100, "EMA 100", color=color.blue)
plot(ema150, "EMA 150", color=color.purple)
plot(ema200, "EMA 200", color=color.fuchsia)
plot(emaFilter, "EMA Filter", color=color.black)
plot(exitEma, "Exit EMA", color=color.gray)

// Calculating the highest and lowest of the last N candles based on user input
highestOfN = ta.highest(high[1], candleCount)
lowestOfN = ta.lowest(low[1], candleCount)

// Entry Conditions with EMA Filter
longEntryCondition = not inLong and not inShort and (close > highestOfN) and (not useEmaFilter or (useEmaFilter and close > emaFilter))
shortEntryCondition = not inLong and not inShort and (close < lowestOfN) and (not useEmaFilter or (useEmaFilter and close < emaFilter))

// Update position state on entry
if (longEntryCondition)
    strategy.entry("Buy", strategy.long, comment="B")
    inLong := true
    inShort := false

if (shortEntryCondition)
    strategy.entry("Sell", strategy.short, comment="S")
    inLong := false
    inShort := true

// Exit Conditions based on configurable EMA and Std Dev Multiplier
smaForExit = ta.sma(close, exitEmaLength)
upperExitBand = smaForExit + exitStdDevMultiplier * ta.stdev(close, exitEmaLength)
lowerExitBand = smaForExit - exitStdDevMultiplier * ta.stdev(close, exitEmaLength)

exitConditionLong = inLong and (close < upperExitBand or close < exitEma)
exitConditionShort = inShort and (close > lowerExitBand or close > exitEma)

// Strategy exits
if (exitConditionLong)
    strategy.close("Buy", comment="Exit")
    inLong := false

if (exitConditionShort)
    strategy.close("Sell", comment="Exit")
    inShort := false

// Visualizing entry and exit points
plotshape(series=longEntryCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal", text="B")
plotshape(series=shortEntryCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal", text="S")