Stratégie de trading quantitative intelligente TRAMA à double moyenne mobile croisée

SMA TRAMA
Date de création: 2024-11-29 15:25:13 Dernière modification: 2024-11-29 15:25:13
Copier: 0 Nombre de clics: 663
1
Suivre
1617
Abonnés

Stratégie de trading quantitative intelligente TRAMA à double moyenne mobile croisée

Aperçu

Il s’agit d’une stratégie de trading intelligemment dynamisée basée sur le TRAMA (Triangular Moving Average) et le SMA (Simple Moving Average). La stratégie combine la génération de signaux de trading avec deux systèmes linéaires et un mécanisme de stop-loss pour contrôler les risques. La stratégie utilise un croisement SMA de 4 cycles et 28 cycles ainsi que l’indicateur TRAMA pour confirmer les signaux de trading, ce qui améliore la précision des transactions grâce à la confirmation de plusieurs signaux.

Principe de stratégie

La stratégie utilise deux composants principaux pour générer des signaux de négociation. Le premier est un système croisé basé sur les SMA à 4 cycles et 28 cycles, qui génère des signaux de multiplication lorsque la moyenne à court terme traverse la moyenne à long terme vers le haut et des signaux de rupture lorsqu’elle traverse vers le bas. Ensuite, la stratégie introduit l’indicateur TRAMA comme système de confirmation auxiliaire.

Avantages stratégiques

  1. Le mécanisme de confirmation du double signal améliore considérablement la fiabilité des transactions
  2. L’indicateur TRAMA capte plus rapidement les changements de tendance du marché
  3. Avoir un mécanisme de contrôle des risques bien défini pour protéger les fonds par le biais d’un stop-loss
  4. La logique de la stratégie est claire, facile à comprendre et à maintenir
  5. La possibilité d’effectuer simultanément plusieurs transactions bidirectionnelles, ce qui augmente les opportunités de profit

Risque stratégique

  1. Un excès de signaux de négociation peut se produire dans un marché en crise
  2. Un stop loss fixe peut ne pas être adapté à tous les environnements de marché.
  3. La moyenne à court terme peut être plus sensible au bruit des prix
  4. Risque de glissement dans un marché très volatil
  5. La nécessité de prendre en compte l’impact des coûts de transaction sur la performance de la stratégie

Orientation de l’optimisation de la stratégie

  1. Introduction d’un mécanisme de stop-loss qui s’adapte à la volatilité
  2. Ajout d’un filtre d’environnement de marché pour ajuster les paramètres de stratégie en fonction des différentes conditions du marché
  3. Les méthodes de sélection pour optimiser les paramètres TRAMA peuvent être envisagées à l’aide de cycles d’adaptation
  4. Ajout d’indicateurs de confirmation de transaction pour améliorer la fiabilité du signal
  5. Envisagez d’ajouter des filtres de force de tendance et évitez de négocier dans une tendance faible

Résumer

Il s’agit d’une stratégie qui combine l’analyse technique traditionnelle et la philosophie de la négociation quantitative moderne. Grâce à la reconnaissance de signaux multiples et à un contrôle strict des risques, la stratégie présente une bonne utilité. Bien qu’il existe des endroits qui nécessitent une optimisation, la conception globale du cadre est raisonnable et offre de bonnes perspectives d’application.

Code source de la stratégie
/*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)