Les ressources ont été chargées... Je charge...

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

Auteur:ChaoZhang est là., Date: 2024-11-29 15h25 et 13h
Les étiquettes:SMALe groupe TRAMA

img

Résumé

Il s'agit d'une stratégie de trading quantitative intelligente basée sur TRAMA (Triangular Moving Average) et Simple Moving Average (SMA). La stratégie combine deux systèmes de moyenne mobile pour générer des signaux de trading et implémente un mécanisme stop-loss/take-profit pour le contrôle des risques.

Principes de stratégie

La stratégie utilise deux composants principaux pour générer des signaux de trading. Premièrement, le système de croisement basé sur les SMA à 4 périodes et à 28 périodes, génère des signaux longs lorsque l'EM à court terme dépasse l'EM à long terme et des signaux courts lorsqu'il dépasse celui-ci. Deuxièmement, la stratégie intègre l'indicateur TRAMA comme système de confirmation auxiliaire.

Les avantages de la stratégie

  1. Le mécanisme de confirmation à double signal améliore considérablement la fiabilité des transactions
  2. L'indicateur TRAMA permet une capture plus rapide des changements de tendance du marché
  3. Mécanisme de contrôle du risque clair par des niveaux de stop-loss et de take-profit
  4. Logique stratégique claire et facile à maintenir
  5. Permet de négocier à la fois à long et à court terme, augmentant les possibilités de profit

Risques stratégiques

  1. Peut générer des signaux de négociation excessifs sur différents marchés
  2. Les pourcentages fixes de stop-loss et de take-profit peuvent ne pas convenir à toutes les conditions du marché
  3. La moyenne mobile à court terme peut être sensible au bruit des prix
  4. Risques potentiels de glissement sur les marchés volatils
  5. Besoin de considérer l'impact des coûts de négociation sur la performance de la stratégie

Directions d'optimisation de la stratégie

  1. Mettre en place des mécanismes de stop-loss et de prise de bénéfices adaptés à la volatilité
  2. Ajouter des filtres d'environnement de marché pour ajuster les paramètres de stratégie dans différentes conditions
  3. Optimiser la méthode de sélection des paramètres TRAMA, envisager l'utilisation de périodes d'adaptation
  4. Ajouter des indicateurs de confirmation du volume pour améliorer la fiabilité du signal
  5. Considérez l'ajout de filtres de force de tendance pour éviter de négocier dans des tendances faibles

Résumé

Il s'agit d'une stratégie qui combine l'analyse technique traditionnelle avec des concepts de trading quantitatifs modernes. Grâce à la confirmation de signaux multiples et un contrôle strict des risques, la stratégie démontre une bonne praticité. Bien qu'il existe des domaines d'optimisation, la conception globale du cadre est raisonnable avec de bonnes perspectives d'application.


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


Relationnée

Plus de