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

Système de négociation de Martingale à dynamique adaptative

Auteur:ChaoZhang est là., Date: 2025-01-06 11:01:12 Je suis désolé
Les étiquettes:SMALa CNNGAN

img

Vue d'ensemble de la stratégie

Cette stratégie est un système de trading entièrement automatisé qui combine la dynamique adaptative et la gestion des positions Martingale. Il utilise plusieurs indicateurs techniques pour l'analyse du marché, y compris l'aplatissement de l'autoencodeur, l'extraction de la fonctionnalité de dynamique simulée par CNN et le filtrage des signaux de trading basé sur la volatilité. Le système ajuste dynamiquement les tailles de position en utilisant la méthode Martingale tout en maintenant un équilibre entre risque et récompense grâce à des niveaux fixes de prise de profit et de stop-loss.

Principes de stratégie

La stratégie s'appuie sur trois modules de base:

  1. Module de pré-traitement des données - Utilise SMA pour obtenir un assouplissement des prix similaire à un autoencodeur et filtrer le bruit du marché.
  2. Module de génération de signaux - Simule l'extraction de fonctionnalités CNN en calculant les différences de prix avec des moyennes mobiles à long terme, combinées à des seuils de volatilité pour détecter les opportunités de trading à forte probabilité.
  3. Module de gestion de position - met en œuvre un ajustement de position de type Martingale, augmentant proportionnellement la taille de la position après des pertes consécutives et revenant à la ligne de base après les bénéfices.

Les avantages de la stratégie

  1. La fiabilité de la génération de signaux - améliore la qualité des signaux de négociation grâce à de multiples indicateurs techniques et au filtrage de la volatilité.
  2. La gestion complète des risques comporte de multiples mécanismes de protection, y compris les limites de prise de profit, de stop-loss et de position maximale.
  3. Forte adaptabilité - Ajuste dynamiquement la stratégie de trading en fonction des conditions du marché.
  4. Logique opérationnelle claire - Des conditions d'entrée et de sortie bien définies facilitent le backtesting et l'optimisation.

Risques stratégiques

  1. Risque de Martingale - Les pertes consécutives peuvent entraîner une croissance rapide de la position, ce qui nécessite un contrôle strict de la position.
  2. Risque d'inversion de tendance - Les signaux de dynamique peuvent échouer en cas de volatilité extrême du marché.
  3. Sensibilité des paramètres - Plusieurs paramètres clés ont une incidence significative sur les performances de la stratégie.

Directions d'optimisation de la stratégie

  1. Amélioration du signal - Incorporer des modèles d'apprentissage automatique pour améliorer la précision du signal.
  2. L'exposition au risque est un risque lié à l'exposition au risque.
  3. Paramètres d'adaptation - Développer des mécanismes d'adaptation des paramètres pour améliorer la stabilité de la stratégie.
  4. Adaptation multi-actifs - Élargir l'applicabilité de la stratégie pour le trading multi-actifs.

Résumé

Cette stratégie combine des techniques de trading quantitatives modernes avec la méthode classique de Martingale pour créer un système de trading à la fois théorique et pratique.


/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Adaptive Crypto Trading Strategy with Martingale", shorttitle = "ACTS_w_MG_V1",overlay=true)

// Inputs
smoothing_length = input.int(14, title="Smoothing Length (Autoencoder)")
momentum_window = input.int(21, title="Momentum Window (CNN)")
volatility_threshold = input.float(0.02, title="Volatility Threshold (GAN Simulation)")
take_profit = input.float(0.05, title="Take Profit (%)")
stop_loss = input.float(0.02, title="Stop Loss (%)")

// Martingale Inputs
base_lot_size = input.float(1, title="Base Lot Size")  // Initial trade size
multiplier = input.float(2, title="Martingale Multiplier")  // Lot size multiplier after a loss
max_lot_size = input.float(2, title="Maximum Lot Size")  // Cap on lot size
var float lot_size = base_lot_size  // Initialize the lot size

// Step 1: Data Smoothing (Autoencoder)
smoothed_price = ta.sma(close, smoothing_length)

// Step 2: Feature Extraction (Momentum - CNN Simulation)
momentum = ta.sma(close, momentum_window) - close
volatility = ta.stdev(close, momentum_window)

// Step 3: Entry Conditions (GAN-Inspired Pattern Detection)
long_condition = (momentum > 0 and volatility > volatility_threshold)
short_condition = (momentum < 0 and volatility > volatility_threshold)

// Martingale Logic
if (strategy.closedtrades > 0)
    if (strategy.closedtrades.profit(strategy.closedtrades - 1) < 0)
        lot_size := math.min(lot_size * multiplier, max_lot_size)  // Increase lot size after a loss, but cap it
    else
        lot_size := base_lot_size  // Reset lot size after a win or on the first trade

// Step 4: Take Profit and Stop Loss Management
long_take_profit = close * (1 + take_profit)
long_stop_loss = close * (1 - stop_loss)
short_take_profit = close * (1 - take_profit)
short_stop_loss = close * (1 + stop_loss)

// Execute Trades
if (long_condition)
    strategy.entry("Long", strategy.long, qty=lot_size, stop=long_stop_loss, limit=long_take_profit)

if (short_condition)
    strategy.entry("Short", strategy.short, qty=lot_size, stop=short_stop_loss, limit=short_take_profit)



Relationnée

Plus de