Estratégia de negociação quantitativa inteligente de crossover de média móvel dupla TRAMA

SMA TRAMA
Data de criação: 2024-11-29 15:25:13 última modificação: 2024-11-29 15:25:13
cópia: 0 Cliques: 663
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa inteligente de crossover de média móvel dupla TRAMA

Visão geral

Trata-se de uma estratégia de negociação de energização inteligente baseada na TRAMA (Triangular Moving Average) e na SMA (Simple Moving Average). A estratégia combina a geração de sinais de negociação de dois sistemas lineares e configura um mecanismo de stop-loss para controlar o risco. A estratégia usa um cruzamento de SMA de 4 e 28 ciclos e o indicador TRAMA para confirmar os sinais de negociação, aumentando a precisão da negociação por meio de confirmação de múltiplos sinais.

Princípio da estratégia

A estratégia usa dois componentes centrais para gerar sinais de negociação. O primeiro é um sistema de cruzamento baseado em 4 e 28 ciclos SMA, que gera um sinal de multiplicação quando a média curta atravessa a média longa para cima e um sinal de travagem quando atravessa a média longa para baixo. Em seguida, a estratégia introduz o indicador TRAMA como um sistema de confirmação auxiliar.

Vantagens estratégicas

  1. Mecanismo de confirmação de duplo sinal aumenta significativamente a confiabilidade das transações
  2. Indicadores TRAMA captam mudanças nas tendências do mercado mais rapidamente
  3. Dispõe de um mecanismo de controlo de risco definido para proteger os fundos através de um stop loss
  4. A lógica da estratégia é clara, fácil de entender e manter
  5. A possibilidade de negociar simultaneamente em dois sentidos, aumentando as oportunidades de lucro

Risco estratégico

  1. Os sinais de negociação podem ser excessivos em mercados em turbulência
  2. A proporção fixa de stop loss pode não ser adequada para todos os cenários de mercado
  3. A linha média de curto prazo pode ser mais sensível ao ruído de preços
  4. Risco de deslizamento em mercados altamente voláteis
  5. Necessidade de considerar o impacto dos custos de transação na performance da estratégia

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

  1. Introdução de um mecanismo de stop loss adaptável à volatilidade
  2. Adição de filtros de cenário de mercado para ajustar parâmetros de estratégia em diferentes condições de mercado
  3. Método de escolha para otimizar o parâmetro TRAMA, considerando o uso de ciclos de adaptação
  4. Adição de indicadores de confirmação de volume de transação para aumentar a confiabilidade do sinal
  5. Considere aumentar o filtro de intensidade da tendência e evite negociar em uma tendência fraca

Resumir

Esta é uma estratégia que combina a análise técnica tradicional e a filosofia de negociação quantitativa moderna. A estratégia mostra uma boa praticidade através da confirmação de múltiplos sinais e do controle rigoroso do risco. Embora existam algumas áreas que precisam de otimização, o design geral do quadro é razoável e tem boas perspectivas de aplicação.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ivanvallejoc

//@version=5
strategy("MANCOS2.0", overlay=true, margin_long=80, margin_short=80)

longCondition = ta.crossover(ta.sma(close, 4), ta.sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 4), ta.sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

// Parámetros de la TRAMA
length = input(1.5, title="TRAMA Length")
src = close
filt = 2 / (length + 1)
trama = 0.0
var tramaPrev = na(trama[1]) ? close : trama[1]
trama := (src - tramaPrev) * filt + tramaPrev

// Plot de la TRAMA
plot(trama, color=color.blue, linewidth=2, title="TRAMA")

// Señales de compra y venta basadas en TRAMA
buySignal = ta.crossover(close, trama)
sellSignal = ta.crossunder(close, trama)

// Configuración de Take Profit y Stop Loss
takeProfitPerc = input(2, title="Take Profit (%)") / 100
stopLossPerc = input(1, title="Stop Loss (%)") / 100

// Precios de TP y SL
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc)

// Condiciones de entrada en largo
if (buySignal)
    strategy.entry("Long", strategy.long)

// Condiciones de salida para posición larga (TP/SL)
if (strategy.position_size > 0)
    strategy.exit("TP/SL", "Long", limit=takeProfitPrice, stop=stopLossPrice)

// Entrada en corto basada en TRAMA
if (sellSignal)
    strategy.entry("Short", strategy.short)

// Precios de TP y SL para posiciones cortas
takeProfitPriceShort = strategy.position_avg_price * (1 - takeProfitPerc)
stopLossPriceShort = strategy.position_avg_price * (1 + stopLossPerc)

if (strategy.position_size < 0)
    strategy.exit("TP/SL", "Short", limit=takeProfitPriceShort, stop=stopLossPriceShort)