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

TRAMA Dual Moving Average Crossover Inteligente Estratégia de Negociação Quantitativa

Autora:ChaoZhang, Data: 2024-11-29 15:25:13
Tags:SMATRAMA

img

Resumo

Trata-se de uma estratégia de negociação quantitativa inteligente baseada em TRAMA (Triangular Moving Average) e Simple Moving Average (SMA). A estratégia combina dois sistemas de média móvel para gerar sinais de negociação e implementa um mecanismo de stop-loss / take-profit para controle de riscos.

Princípios de estratégia

A estratégia emprega dois componentes principais para gerar sinais de negociação. Primeiro é o sistema de crossover baseado em SMAs de 4 períodos e 28 períodos, gerando sinais longos quando o MA de curto prazo cruza acima do MA de longo prazo e sinais curtos quando cruza abaixo. Segundo, a estratégia incorpora o indicador TRAMA como um sistema de confirmação auxiliar.

Vantagens da estratégia

  1. Mecanismo de confirmação de sinal duplo melhora significativamente a fiabilidade das negociações
  2. O indicador TRAMA permite uma captura mais rápida das alterações da tendência do mercado
  3. Mecanismo claro de controlo do risco através de níveis de stop loss e take profit
  4. Lógica estratégica clara e fácil de manter
  5. Permite tanto a negociação longa como curta, aumentando as oportunidades de lucro

Riscos estratégicos

  1. Pode gerar sinais de negociação excessivos em mercados variados
  2. As percentagens fixas de stop-loss e take-profit podem não corresponder a todas as condições de mercado
  3. A média móvel de curto prazo pode ser sensível ao ruído dos preços
  4. Riscos potenciais de deslizamento em mercados voláteis
  5. Necessidade de considerar o impacto dos custos de negociação no desempenho da estratégia

Orientações para a otimização da estratégia

  1. Introduzir mecanismos de stop-loss e take-profit adaptados à volatilidade
  2. Adicionar filtros de ambiente de mercado para ajustar parâmetros de estratégia em diferentes condições
  3. Otimizar o método de selecção de parâmetros TRAMA, considerar o uso de períodos adaptativos
  4. Adicionar indicadores de confirmação de volume para melhorar a confiabilidade do sinal
  5. Considere a adição de filtros de força de tendência para evitar a negociação em tendências fracas

Resumo

Esta é uma estratégia que combina análise técnica tradicional com conceitos de negociação quantitativa moderna. Através da confirmação de sinais múltiplos e controle de risco rigoroso, a estratégia demonstra boa praticidade. Embora existam áreas para otimização, o projeto geral do quadro é razoável com boas perspectivas de aplicação.


/*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)


Relacionados

Mais.