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

Indicador multi-técnico Tendência de impulso-MA Seguindo a estratégia

Autora:ChaoZhang, Data: 2025-01-06 16:56:14
Tags:MACDRSIMA50MA200

img

Resumo

Esta estratégia é um sistema de negociação de tendência baseado em múltiplos indicadores técnicos, combinando MACD, RSI e médias móveis (MA) para confirmação de sinais comerciais.

Princípio da estratégia

A lógica central baseia-se na confirmação de três indicadores técnicos:

  1. MACD para identificação de momento - gera sinal de compra inicial quando a linha MACD cruza acima da linha de sinal
  2. RSI para confirmação de força - requer valor de RSI acima do limiar definido (padrão 50) para confirmar o ímpeto ascendente
  3. Sistema de média móvel para confirmação de tendência - MA50 acima de MA200 confirma tendência ascendente global Além disso, a estratégia implementa uma gestão global do dinheiro:
  • Exposição ao risco baseada no capital total da conta
  • Percentagem fixa de stop-loss para o controlo individual do risco de negociação
  • Objetivos de duplo lucro (TP1 e TP2) para rendimentos otimizados

Vantagens da estratégia

  1. A validação cruzada de vários indicadores técnicos aumenta a fiabilidade do sinal
  2. Sistema abrangente de gestão de fundos para um controlo eficaz dos riscos
  3. Parâmetros de estratégia ajustáveis para uma elevada adaptabilidade
  4. Os objetivos de duplo lucro protegem os lucros ao mesmo tempo em que captam tendências mais amplas
  5. Estrutura de código clara para fácil manutenção e otimização

Riscos estratégicos

  1. Possíveis sinais falsos em mercados em consolidação
  2. A confirmação de múltiplos indicadores pode levar a entradas ligeiramente atrasadas
  3. A abordagem de curto prazo não tem cobertura em mercados em declínio
  4. Riscos de sobreajuste da otimização de parâmetros

Orientações de otimização

  1. Incorporar indicadores de volume para confirmação adicional
  2. Adicionar um mecanismo de filtragem da volatilidade do mercado
  3. Melhorar o mecanismo de saída com paradas traseiras
  4. Implementar um sistema de parâmetros adaptáveis baseado nas condições do mercado
  5. Adicionar o mecanismo de controlo de extracção

Resumo

Esta estratégia constrói um robusto sistema de tendência através da sinergia de múltiplos indicadores técnicos. Seu mecanismo abrangente de gerenciamento de dinheiro e design de parâmetros ajustáveis fornecem boa praticidade e adaptabilidade. Melhorias futuras podem se concentrar na identificação do estado do mercado e otimização do mecanismo de saída para melhorar ainda mais a estabilidade e lucratividade da estratégia.


/*backtest
start: 2024-12-29 00:00:00
end: 2025-01-05 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Saudi Market Buy-Only Strategy (Customizable)", overlay=true)

// مدخلات المستخدم لتخصيص القيم
// رأس المال وإدارة المخاطر
capital = input.float(10000, title="رأس المال (ريال)", minval=1000)    // رأس المال الافتراضي
riskPercent = input.float(2, title="نسبة المخاطرة (%)", minval=0.1, maxval=10) / 100  // نسبة المخاطرة
buySLPercent = input.float(1, title="وقف الخسارة (%)", minval=0.1, maxval=10) / 100  // وقف الخسارة
tp1Percent = input.float(2, title="الهدف الأول (%)", minval=0.1, maxval=20) / 100   // الهدف الأول
tp2Percent = input.float(3, title="الهدف الثاني (%)", minval=0.1, maxval=30) / 100 // الهدف الثاني

// إعدادات المؤشرات الفنية
macdFastLength = input.int(12, title="MACD - فترة المتوسط السريع", minval=1)
macdSlowLength = input.int(26, title="MACD - فترة المتوسط البطيء", minval=1)
macdSignalLength = input.int(9, title="MACD - فترة الإشارة", minval=1)

rsiLength = input.int(14, title="RSI - فترة المؤشر", minval=1)
rsiThreshold = input.int(50, title="RSI - مستوى الدخول", minval=1, maxval=100)

ma50Length = input.int(50, title="MA50 - فترة المتوسط المتحرك", minval=1)
ma200Length = input.int(200, title="MA200 - فترة المتوسط المتحرك", minval=1)

// حساب إدارة المخاطر
riskAmount = capital * riskPercent  // قيمة المخاطرة

// حساب المؤشرات الفنية
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
rsiValue = ta.rsi(close, rsiLength)
ma50 = ta.sma(close, ma50Length)
ma200 = ta.sma(close, ma200Length)

// تعريف الاتجاه العام للسوق باستخدام المتوسطات
isBullishTrend = ma50 > ma200

// شروط الدخول شراء فقط
if ta.crossover(macdLine, signalLine) and rsiValue > rsiThreshold and isBullishTrend
    entryPrice = close
    stopLoss = entryPrice * (1 - buySLPercent)   // وقف الخسارة أسفل نقطة الدخول
    takeProfit1 = entryPrice * (1 + tp1Percent) // الهدف الأول
    takeProfit2 = entryPrice * (1 + tp2Percent) // الهدف الثاني
    strategy.entry("Buy", strategy.long)        // فتح صفقة شراء
    strategy.exit("TP1", "Buy", limit=takeProfit1, stop=stopLoss)
    strategy.exit("TP2", "Buy", limit=takeProfit2)

// رسم خطوط المتوسطات
plot(ma50, color=color.blue, title="MA50")
plot(ma200, color=color.orange, title="MA200")


Relacionados

Mais.