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

EMA, SMA, CCI, ATR, estratégia de classificação perfeita e tendência do indicador mágico sistema de negociação automático

Autora:ChaoZhang, Data: 2024-09-26 15:52:31
Tags:EMASMACCIATR

EMA, SMA, CCI, ATR, 均线完美排列策略与趋势魔法指标自动交易系统

Resumo

A estratégia combina uma linha homogênea perfeita e um indicador mágico de tendência para capturar as tendências do mercado. Ele usa três médias móveis (EMA45, SMA90 e SMA180) e um indicador mágico de tendência calculado com base no CCI e ATR. O núcleo da estratégia é identificar uma linha homogênea perfeita e, ao mesmo tempo, combinar uma variação de cor do indicador mágico de tendência para confirmar a reversão da tendência, o que gera um sinal de negociação.

Princípios estratégicos

A estratégia funciona com base nos seguintes elementos fundamentais:

  1. EMA 45, SMA 90 e SMA 180 são usados quando eles estão alinhados em uma ordem específica (plural: EMA 45 > SMA 90 > SMA 180; embalado: EMA 45 < SMA 90 < SMA 180) e são considerados sinais fortes de tendência.

  2. Indicador de tendência mágica: é um indicador personalizado baseado no CCI (indicador do canal de mercadorias) e no ATR (amplitude de onda real); ele indica uma reversão potencial da tendência através de mudanças de cor.

  3. Condições de entrada: O sinal de negociação é gerado somente quando a ordem perfeita da linha média e a mudança de cor do indicador mágico da tendência são simultaneamente atendidas. Isso garante que o comércio seja feito somente quando uma tendência forte se forma.

  4. Gestão de risco: estratégia baseada em objetivos de prejuízo e lucro baseados em risco-retorno. O prejuízo é definido no nível do SMA 90 no momento da entrada e o objetivo de lucro é definido como 1,5 vezes maior do que o risco.

Vantagens estratégicas

  1. Seguimento de tendências: através da combinação de vários indicadores, a estratégia é capaz de capturar de forma eficaz tendências de médio e longo prazo e reduzir os falsos sinais.

  2. Controle de risco: mecanismos de gestão de risco embutidos, incluindo stop-loss fixos e objetivos de lucro baseados no risco-recompensa, ajudam a controlar o risco de cada transação.

  3. Flexibilidade: A estratégia permite que os usuários ajustem os parâmetros, como o ciclo CCI, os múltiplos ATR e o ciclo da média móvel, para se adaptar a diferentes condições do mercado e preferências individuais.

  4. Visualização: A estratégia traça indicadores de tendência mágica e médias móveis em gráficos, facilitando aos traders a análise intuitiva das tendências do mercado.

Risco estratégico

  1. Retardo: A estratégia pode perder algumas oportunidades no início da tendência devido ao uso de médias móveis e outros indicadores de retardo.

  2. Mercado turbulento: em mercados de crossover ou turbulentos, a estratégia pode gerar falsos sinais frequentes, levando a um excesso de negociação.

  3. Stop-loss fixo: o uso de um SMA 90 fixo como stop-loss pode, em alguns casos, ser muito frouxo, aumentando os perdas potenciais.

  4. Sensibilidade a parâmetros: o desempenho da estratégia pode ser sensível a parâmetros e precisa ser cuidadosamente otimizado e re-mesurado.

Estratégias de otimização

  1. Paragem dinâmica: considerar a realização de paradas de rastreamento, ajustando os níveis de paragem com o movimento do preço para melhor proteger os lucros.

  2. Filtros de estado de mercado: introduzir filtros de intensidade de volatilidade ou tendência para ajustar o comportamento estratégico em diferentes condições de mercado.

  3. Análise do quadro de tempo: integra análise de vários quadros de tempo para melhorar a confiabilidade do sinal e reduzir os falsos sinais.

  4. Indicadores de quantificação: adicionar análises de volume de transações ou outros indicadores de quantificação para reforçar o reconhecimento de tendências e a identificação inversa.

  5. Optimização de aprendizagem de máquina: o uso de algoritmos de aprendizagem de máquina para ajustar dinamicamente os parâmetros para se adaptar a condições de mercado em constante mudança.

Resumo

Esta estratégia de negociação automática, que combina um conjunto homogêneo de indicadores perfeitos e indicadores mágicos de tendência, demonstra um potencial para o acompanhamento de tendências. Através da integração de vários indicadores técnicos, a estratégia visa capturar tendências de mercado fortes, enquanto controla o risco através de mecanismos de gestão de risco embutidos. Apesar de algumas limitações inerentes, como atraso e sensibilidade a parâmetros, a estratégia promete ser um instrumento de negociação eficaz com otimização e adaptação contínuas.


/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")


Relacionado

Mais informações