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

Tendance à la moyenne mobile à double canal suivant la stratégie

Auteur:ChaoZhang est là., Date: 2024-09-26 16h28 et 19h
Les étiquettes:SMALe taux d'intérêtIndice de résistanceLe MACD

img

Résumé

Cette stratégie est un système de suivi des tendances basé sur des moyennes mobiles et des canaux doubles. Elle utilise des signaux croisés des moyennes mobiles à court et à long terme, combinés avec des canaux formés par des moyennes mobiles exponentielles (EMA), pour capturer les tendances du marché et exécuter des transactions.

Principe de stratégie

La logique de base de la stratégie comprend les éléments clés suivants:

  1. Deux moyennes mobiles simples (MMS) comme indicateurs de tendance principaux: moyennes mobiles à 55 et 300 périodes.
  2. Deux moyennes mobiles exponentielles (MEI) formant un canal de négociation: des moyennes mobiles à 576 et 676 périodes.
  3. Les signaux d'entrée longue sont déclenchés lorsque la SMA à court terme dépasse la SMA ou la EMA à long terme; les signaux d'entrée courte se produisent lorsque la SMA à court terme dépasse la SMA ou la EMA à long terme.
  4. Stratégie de stop-loss et de take-profit à point fixe, avec stop-loss fixé à 1/70 du prix d'entrée et take-profit à 1/140 du prix d'entrée.
  5. Un mécanisme d'arrêt de retard est activé lorsque le profit atteint 300 points pour protéger les gains accumulés.
  6. La stratégie comprend des conditions de sortie, telles que la fermeture automatique de la position lorsque le prix atteint des niveaux de stop-loss ou de take-profit.

Les avantages de la stratégie

  1. L'intégration de plusieurs indicateurs: la combinaison de plusieurs moyennes mobiles et de canaux EMA améliore la précision de l'identification des tendances.
  2. Commerce bidirectionnel: La stratégie peut profiter à la fois sur les marchés haussiers et baissiers, améliorant l'efficacité du capital.
  3. Gestion des risques: emploie un point fixe de stop-loss et de take-profit, contrôlant efficacement le risque pour chaque transaction.
  4. Protection des bénéfices: utilise un mécanisme d'arrêt de suivi pour verrouiller des bénéfices partiels lors de tendances soutenues.
  5. Flexibilité: les paramètres de la stratégie sont réglables pour s'adapter aux différentes conditions du marché.

Risques stratégiques

  1. Risque de marché variable: sur les marchés latéraux, des signaux erronés fréquents peuvent entraîner des pertes consécutives.
  2. Risque de glissement: sur les marchés très volatils, les prix d'exécution réels peuvent s'écarter sensiblement des prix idéaux.
  3. Surtrading: les signaux de trading fréquents peuvent entraîner des coûts de transaction excessifs.
  4. Sensibilité des paramètres: les performances de la stratégie peuvent être très sensibles aux paramètres, ce qui peut nécessiter des ajustements fréquents pour différents environnements de marché.

Directions d'optimisation de la stratégie

  1. Incorporer des indicateurs de volatilité: envisager d'ajouter l'ATR (Average True Range) pour ajuster dynamiquement les niveaux de stop-loss et de take-profit, en s'adaptant à la volatilité variable du marché.
  2. Améliorer le filtrage de la force de la tendance: introduire l'ADX (indice directionnel moyen) pour filtrer les signaux de tendance faibles, réduisant les pertes dues aux fausses ruptures.
  3. Optimiser le calendrier d'entrée: envisager de combiner RSI (indice de force relative) ou MACD (divergence de convergence moyenne mobile) pour améliorer le calendrier d'entrée et augmenter le taux de gain.
  4. Améliorer la gestion de l'argent: mettre en œuvre une dimensionnement dynamique des positions, en ajustant les tailles des transactions en fonction du capital du compte et de la volatilité du marché.
  5. Prolonger la période de backtesting: effectuer des backtests à plus long terme pour vérifier la stabilité de la stratégie dans différents environnements de marché.

Conclusion

Cette stratégie de suivi des tendances de la moyenne mobile à double canal fournit un système de trading complet en combinant plusieurs indicateurs techniques. Elle capte non seulement les principales tendances, mais intègre également des mécanismes de gestion des risques et de protection des bénéfices. Bien que certains risques potentiels existent, grâce à une optimisation continue et à un ajustement des paramètres, la stratégie a le potentiel de bien fonctionner dans diverses conditions de marché.


/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RC BTC Vegas 5min free ", overlay=true )

// 定义输入参数
short_ma_length = input.int(55, title="Short MA Length")
long_ma_length = input.int(300, title="Long MA Length")

ema1_length = input.int(576, title="EMA 1 Length")
ema2_length = input.int(676, title="EMA 2 Length")
// 计算移动平均线 
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
ema1 = ta.ema(close, ema1_length)
ema2 = ta.ema(close, ema2_length)
// 确定买入和卖出信号 
enter_long = ta.crossover(short_ma +5 , ema1)
enter_long2 = ta.crossover(short_ma +5 , long_ma)
enter_long3 =ta.crossover(long_ma+5  , ema1)

exit_long = ta.crossunder(short_ma -5, ema1) 
exit_long2 = ta.crossunder(short_ma -5, long_ma) 
exit_long3 = ta.crossunder(long_ma-5 , ema1)

// 记录进场价格
var float long_stop_loss = na
var float long_take_profit = na

if (enter_long or exit_long  )
    long_stop_loss := close

if (enter_long or exit_long)
    long_take_profit := close

// 根据进场价格计算止损和止盈点数 
stop_loss_points = long_stop_loss /70
take_profit_points  = long_take_profit /140
// 设置固定点数的止损和止
Along_stop_loss = close - stop_loss_points
Along_take_profit = close + take_profit_points
short_stop_loss = close + stop_loss_points
short_take_profit = close - take_profit_points

// 检查持仓利润是否达到300点
long_profit_target_reached = (strategy.position_size > 0 and (close - strategy.position_avg_price) >= take_profit_points)
short_profit_target_reached = (strategy.position_size < 0 and (strategy.position_avg_price - close) >= take_profit_points)

// 即时止损和止盈检查
long_stop_loss_hit = (strategy.position_size > 0 and close <= strategy.position_avg_price - stop_loss_points)
long_take_profit_hit = (strategy.position_size > 0 and close >= strategy.position_avg_price + take_profit_points)
short_stop_loss_hit = (strategy.position_size < 0 and close >= strategy.position_avg_price + stop_loss_points)
short_take_profit_hit = (strategy.position_size < 0 and close <= strategy.position_avg_price - take_profit_points)
// 上一根K棒的止盈止损检查
long_stop_loss_hit_prev = (strategy.position_size > 0 and low[1] <= strategy.position_avg_price - stop_loss_points)
long_take_profit_hit_prev = (strategy.position_size > 0 and high[1]>= strategy.position_avg_price + take_profit_points)
short_stop_loss_hit_prev = (strategy.position_size < 0 and high[1] >= strategy.position_avg_price + stop_loss_points)
short_take_profit_hit_prev = (strategy.position_size < 0 and low[1] <= strategy.position_avg_price - take_profit_points)

// 创建警报条件
alertcondition(long_stop_loss_hit, title="Long Stop Loss Hit", message="Long position stop loss hit")
alertcondition(long_take_profit_hit, title="Long Take Profit Hit", message="Long position take profit hit")
alertcondition(short_stop_loss_hit, title="Short Stop Loss Hit", message="Short position stop loss hit")
alertcondition(short_take_profit_hit, title="Short Take Profit Hit", message="Short position take profit hit")
// 移动止损输入
initialProfitLevel = input.float(9, title="Initial Profit Level (points)")
trailingStopIncrement = input.float(3, title="Trailing Stop Increment (points)")
if (close - long_take_profit >= 150)
    strategy.exit("多單移平", from_entry="Buy", trail_price=close+5 , trail_offset=5  )
if (close - long_take_profit <= -150)
    strategy.exit("空單移平", from_entry="Sell", trail_price=close-5 , trail_offset=5)

// 执行多单交易
if (enter_long or enter_long2  )
    strategy.entry("Buy", strategy.long, qty=1 , comment = "做多")

if (long_stop_loss_hit or long_take_profit_hit  ) 
    strategy.close("Buy",comment = "多單平倉")
//死亡交叉才跟著做空就打開
if (exit_long  or exit_long2  )
    strategy.entry("Sell" ,strategy.short, qty=1 , comment = "做空")

// 执行空单交易
if ( short_take_profit_hit or short_stop_loss_hit ) 
    strategy.close("Sell",comment = "空單平倉")

// 绘制移动平均线
plot(short_ma, title="Short MA", color=color.blue)
plot(long_ma, title="Long MA", color=color.red)

// 绘制进场和出场点
plotshape(series=enter_long, location=location.belowbar, color=color.green, style=shape.labelup, text="做多")
plotshape(series=exit_long , location=location.abovebar, color=color.red, style=shape.labeldown, text="做空") 
plotshape(series=long_take_profit_hit , location=location.abovebar, color=color.yellow, style=shape.labeldown, text="多單止盈")  
plotshape(series=short_take_profit_hit , location=location.abovebar, color=color.yellow, style=shape.labeldown, text="空單止盈") 
plotshape(series=short_stop_loss_hit , location=location.abovebar, color=color.black, style=shape.labeldown, text="空單止損") 
plotshape(series=long_stop_loss_hit , location=location.abovebar, color=color.black, style=shape.labeldown, text="多單止損") 
 
// 绘制止盈和止损点
plot(series=enter_long ? Along_take_profit : na, title="Take Profit", color=color.green, linewidth=2, style=plot.style_linebr)
plot(series=enter_long ? Along_stop_loss : na, title="Stop Loss", color=color.red, linewidth=2, style=plot.style_linebr)


Relationnée

Plus de