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

Segurança do mercado

Autora:ChaoZhang, Data: 2024-11-27 16:08:16
Tags:EMATEMAMACDSMA

img

Resumo

Esta é uma estratégia de negociação quantitativa que combina a análise de tendência e de momento. A estratégia utiliza a média móvel exponencial tripla (TEMA), vários crossovers de média móvel e uma variante MACD para identificar tendências de mercado e pontos de entrada. Implementa mecanismos de controle de risco rigorosos, incluindo stop-loss fixo, metas de lucro e trailing stops para otimizar o equilíbrio risco-recompensa.

Princípios de estratégia

A estratégia determina os sinais de negociação através de três sistemas principais de indicadores técnicos:

  1. O sistema de média móvel exponencial tripla (TEMA) confirma a direção geral da tendência.
  2. O sistema de cruzamento MA rápido/lento utiliza EMAs de 9 e 15 períodos para capturar pontos de inversão de tendência de médio prazo.
  3. O cruzamento de preços com a EMA de 5 períodos serve como sinal de confirmação final para um calendário de entrada preciso.

Os sinais comerciais são acionados quando todas as condições estão preenchidas:

  • O MACD cruza acima de sua linha de sinal com tendência ascendente do TEMA
  • A EMA de curto prazo cruza a EMA de longo prazo
  • Cruzamento dos preços acima da EMA de 5 períodos

Vantagens da estratégia

  1. Os mecanismos de confirmação múltiplos reduzem muito os falsos sinais e melhoram a precisão das negociações.
  2. Combina os benefícios do acompanhamento de tendências e da análise de impulso para capturar as principais tendências e as oportunidades de curto prazo.
  3. Implementa mecanismos abrangentes de stop-loss, incluindo paradas fixas e paradas dinâmicas de trail, para um controlo eficaz do risco.
  4. Alta adaptabilidade dos parâmetros para diferentes ambientes de mercado.
  5. Uma lógica de entrada clara que seja fácil de compreender e executar.

Riscos estratégicos

  1. Os requisitos de confirmação múltiplos podem conduzir a entradas atrasadas e a oportunidades perdidas em mercados em rápida evolução.
  2. Os pontos de stop-loss fixos precisam de ser ajustados para diferentes volatilidades do mercado, a fim de evitar saídas prematuras.
  3. Pode gerar sinais falsos frequentes em mercados variados e agitados.
  4. As paradas de trailing podem sair das tendências de qualidade demasiado cedo durante as fortes flutuações do mercado.

Orientações de otimização

  1. Introduzir indicadores de volatilidade para ajustamento dinâmico das paradas e dos objetivos de lucro para melhor corresponder às condições de mercado.
  2. Adicionar indicadores de volume como confirmação auxiliar para melhorar a fiabilidade do sinal.
  3. Implementar o reconhecimento do ambiente de mercado para diferentes combinações de parâmetros em diferentes estados de mercado.
  4. Desenvolver um mecanismo de construção de posições contra-tendência para uma acumulação moderada durante os recuos.
  5. Otimizar o algoritmo de trailing stop para melhor adaptação à volatilidade do mercado.

Resumo

A estratégia constrói um sistema de negociação robusto, integrando vários sistemas de indicadores técnicos. Seus principais pontos fortes estão em vários mecanismos de confirmação e sistemas abrangentes de controle de risco.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")


Relacionados

Mais.