Système de trading croisé intelligent avec indicateur Double EMA et stratégie dynamique de stop-profit et de stop-loss

EMA MACD SMA RSI CCI ATR
Date de création: 2024-11-29 16:33:21 Dernière modification: 2024-11-29 16:33:21
Copier: 0 Nombre de clics: 441
1
Suivre
1617
Abonnés

Système de trading croisé intelligent avec indicateur Double EMA et stratégie dynamique de stop-profit et de stop-loss

Aperçu

La stratégie est un système de trading intelligent basé sur une croisée de deux équilibre, avec une moyenne mobile indicielle de 9 cycles et 21 cycles (EMA) comme indicateur central. La stratégie intègre un mécanisme d’arrêt de perte dynamique, qui exécute automatiquement les ordres de négociation en temps réel grâce à la surveillance des signaux de croisement de l’indicateur EMA. Le système utilise un système d’arrêt de suivi en pourcentage et un système d’arrêt à taux fixe, garantissant à la fois la sécurité des transactions et la possibilité de réaliser des gains.

Principe de stratégie

La logique de base de la stratégie est basée sur la relation croisée entre l’EMA rapide (cycle 9) et l’EMA lente (cycle 21). Lorsque la ligne rapide monte au-dessus de la ligne lente, le système reconnaît le signal de prise, annule automatiquement la position et ouvre une position; lorsque la ligne rapide descend au-dessus de la ligne lente, le système reconnaît le signal de prise, annule automatiquement la position et ouvre une position.

Avantages stratégiques

  1. La science du choix des indicateurs est rationnelle: l’EMA est plus sensible aux changements du marché et capte les tendances en temps opportun
  2. Mechanisme d’arrêt de perte perfectionné: utilisation de la méthode de réglage en pourcentage, qui peut être ajustée de manière flexible en fonction des différentes conditions du marché
  3. Automatisation élevée: automatisation du processus de reconnaissance des signaux à l’exécution des transactions, avec une intervention humaine réduite
  4. Le risque est maîtrisé: chaque transaction a une limite de stop loss et d’arrêt définie
  5. Structure claire du code: spécification de la dénomination des variables, délimitation des niveaux logiques pour faciliter la maintenance et l’optimisation ultérieures

Risque stratégique

  1. Risque de marché oscillant: des signaux croisés peuvent se produire fréquemment dans les marchés oscillants horizontaux, entraînant des transactions fréquentes
  2. Risque de glissement: éventuelle divergence entre le prix de transaction réel et le prix théorique en cas de forte volatilité du marché
  3. Risques de gestion des fonds: la gestion des positions à taux fixe peut ne pas être suffisamment flexible dans certaines conditions de marché
  4. Risque systémique: les ordres stop ou stop-loss peuvent ne pas être exécutés en temps opportun en cas d’extrême situation du marché

Orientation de l’optimisation de la stratégie

  1. Introduction de filtres de tendance: vous pouvez ajouter des indicateurs ADX ou ATR pour juger de l’intensité de la tendance et éviter de négocier fréquemment sur des marchés en crise
  2. Optimisation du mécanisme d’arrêt de perte: l’utilisation de l’ATR peut être envisagée pour ajuster dynamiquement la distance d’arrêt de perte afin de la rendre plus adaptée aux fluctuations du marché
  3. Ajout de filtres de temps de transaction: vous pouvez ajouter des limites de temps de transaction spécifiques pour éviter les périodes plus volatiles
  4. Amélioration de la gestion des positions: le nombre de positions ouvertes peut être ajusté en fonction de la dynamique des fluctuations du marché
  5. Ajout d’indicateurs de l’humeur du marché: confirmation de la transaction peut être combinée avec des indicateurs tels que le RSI ou le MACD

Résumer

La stratégie est un système de trading automatisé avec une structure complète et une logique claire. Les décisions de négociation sont prises via des signaux croisés EMA, avec un mécanisme de stop-loss dynamique, ce qui permet de mieux performer sur un marché en tendance. Cependant, il est nécessaire de surveiller les changements de l’environnement du marché, d’ajuster les paramètres au bon moment et de bien contrôler les risques.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// 添加策略参数设置
var showLabels = input.bool(true, "显示标签")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1)
var takeProfitPercent = input.float(10.0, "止盈百分比", minval=0.1, maxval=50.0, step=0.1)

// 计算EMA
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)

// 绘制EMA线
plot(ema9, "EMA9", color=color.blue, linewidth=2)
plot(ema21, "EMA21", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema9, ema21)  
crossUnder = ta.crossunder(ema9, ema21)

// 格式化时间显示 (UTC+8)
utc8Time = time + 8 * 60 * 60 * 1000
timeStr = str.format("{0,date,MM-dd HH:mm}", utc8Time)

// 计算止损止盈价格
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)

// 交易逻辑
if crossOver
    if strategy.position_size < 0  // 如果持有空仓
        strategy.close("做空")     // 先平掉空仓
    strategy.entry("做多", strategy.long)  // 开多仓
    if showLabels
        label.new(bar_index, high, text="做多入场\n" + timeStr, color=color.green, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)

if crossUnder
    if strategy.position_size > 0  // 如果持有多仓
        strategy.close("做多")     // 先平掉多仓
    strategy.entry("做空", strategy.short)  // 开空仓
    if showLabels
        label.new(bar_index, low, text="做空入场\n" + timeStr, color=color.red, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)

// 设置止损止盈
if strategy.position_size > 0  // 多仓止损止盈
    strategy.exit("多仓止损止盈", "做多", stop=longStopLoss, limit=longTakeProfit)
    
if strategy.position_size < 0  // 空仓止损止盈
    strategy.exit("空仓止损止盈", "做空", stop=shortStopLoss, limit=shortTakeProfit)