Tendance à suivre la stratégie de croisement de moyenne mobile maximisée

Auteur:ChaoZhang est là., Date: 2023-10-17 13:05:29 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise le croisement de deux moyennes mobiles avec des périodes différentes pour générer des signaux de trading.

La logique de la stratégie

La stratégie utilise un MA à court terme de 9 périodes (SMA) et un MA à long terme de 50 périodes (LMA). Lorsque le SMA traverse au-dessus du LMA, un signal d'achat est généré.

La stratégie intègre également l'indicateur RSI pour mesurer la force de la tendance. Les signaux de trading ne sont générés que lorsque le RSI est au-dessus d'un seuil (défaut 55).

La stratégie négocie 30% du capital total à chaque fois, avec une seule position ouverte à la fois.

Analyse des avantages

  • Capture efficacement les opportunités de tendance en utilisant les signaux de tendance croisés de MA.
  • L'incorporation du RSI évite les signaux incorrects lorsque la tendance s'arrête.
  • Les paramètres par défaut sont optimisés et produisent des rendements stables sur divers marchés.
  • Une gestion raisonnable du capital évite une taille excessive des positions.

Analyse des risques

  • Prédisposé à des sauts de marée et à des signaux incorrects sur les marchés à fourchette sans tendance.
  • Aucun bénéfice sans une tendance significative comme stratégie de suivi de tendance.
  • Des transactions excessives et des commissions si les paramètres ne sont pas réglés correctement.
  • L'absence de stop loss expose la stratégie au risque d'événements.

Les risques peuvent être réduits par l'optimisation des paramètres, l'utilisation d'autres indicateurs, une gestion stricte du capital et un stop loss.

Des possibilités d'amélioration

  • Testez différentes combinaisons de MA pour trouver les paramètres optimaux.
  • Incorporer d'autres indicateurs comme le MACD pour confirmer la tendance.
  • Mettre en œuvre un stop loss dynamique pour contrôler les pertes par transaction.
  • Ajustez la taille des positions en fonction des différents marchés.
  • Utilisez des indicateurs de volume pour mesurer la force de la tendance.

Conclusion

La stratégie capture les opportunités de tendance en utilisant un système de croisement MA simple. Les paramètres par défaut sont optimisés avec des rendements réguliers, adaptés au trading algorithmique. Des améliorations supplémentaires peuvent être apportées en ajoutant d'autres indicateurs, en optimisant les paramètres et en mettant en œuvre un stop loss. Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance efficace pour les marchés en utilisant des signaux de croisement.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © relevantLeader16058

//@version=4
strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
inlong=input(50, title='MA long period')
inshort=input(9, title='MA short period')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = (14)

RSI = rsi(close, lengthRSI)
RSI_Signal = input(55, title = 'RSI Trigger', minval=1)

//Entry and Exit
bullish = crossover(MAshort, MAlong)
bearish = crossunder(MAshort, MAlong)

strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window())
strategy.close(id="long", when = bearish and window())

 
plot(MAshort, color=color.purple, linewidth=2)
plot(MAlong, color=color.red, linewidth=2)

Plus de