Stratégie de négociation de rupture des canaux de moyenne mobile

Auteur:ChaoZhang est là., Date: 2024-01-29 14h31 et 25h
Les étiquettes:

img

Résumé

Cette stratégie est basée sur les principes de la croix d'or et de la croix de la mort des moyennes mobiles simples, prenant des décisions d'achat et de vente basées sur le croisement des moyennes mobiles de 7 jours et de 14 jours. Elle génère un signal d'achat lorsque le MA de 7 jours dépasse le MA de 14 jours depuis le bas, et un signal de vente lorsque le MA de 7 jours dépasse le MA de 14 jours depuis le haut.

La logique de la stratégie

La logique de trading de base de cette stratégie est basée sur les principes de croisement des moyennes mobiles de 7 jours et 14 jours. Le MA de 7 jours reflète les tendances à court terme des prix, tandis que le MA de 14 jours reflète les tendances à moyen terme. Lorsque le MA à court terme franchit le dessus du MA à moyen terme depuis le bas, cela indique que la tendance à court terme se renforce, ce qui en fait un bon moment pour aller long. Inversement, lorsque le MA à court terme franchit le bas du MA à moyen terme depuis le haut, cela indique que la tendance à court terme s'affaiblit, il faut donc fermer des positions ou faire du short.

Plus précisément, cette stratégie calcule les moyennes mobiles simples de 7 jours et de 14 jours en utilisant l'indicateur SMA. Après chaque forme de chandelier, elle compare les valeurs actuelles de la ligne de 7 jours et de la ligne de 14 jours. Si la ligne de 7 jours traverse au-dessus de la ligne de 14 jours, un signal long est généré pour aller long. Si la ligne de 7 jours traverse au-dessous de la ligne de 14 jours, un signal court est généré pour aller court.

En outre, la stratégie définit également les fonctions stop loss, take profit et trailing stop pour verrouiller les bénéfices et contrôler les risques.

Les avantages

Cette stratégie présente les avantages suivants:

  1. Des règles simples et claires, faciles à comprendre et à mettre en œuvre, adaptées aux débutants.
  2. Les principes de croisement des moyennes mobiles sont éprouvés et efficaces, avec des taux de réussite relativement élevés.
  3. Équipé d'un stop loss, d'un stop profit et d'un stop trailing pour contrôler efficacement les risques.
  4. Peu de paramètres, pratique pour les tests et l'optimisation.

Risques et contre-mesures

Cette stratégie comporte également certains risques:

  1. Les moyennes mobiles peuvent retarder la réflexion sur les changements de tendance, ce qui peut entraîner des pertes importantes lorsque les tendances s'inversent.
  2. Les signaux croisés fréquents sur des marchés différents génèrent davantage de faux signaux, ce qui nuit à l'efficacité de la stratégie.

Pour faire face à ces risques, les contre-mesures suivantes peuvent être envisagées:

  1. Ajoutez d'autres indicateurs comme le MACD et le KDJ pour filtrer les signaux croisés et éviter les mauvais signaux aux points tournants de la tendance.
  2. Élargir la plage de stop-loss, raccourcir la période d'attente pour réduire l'impact de la perte unique.
  3. Optimiser les paramètres de la moyenne mobile en fonction des différentes conditions du marché, en utilisant des périodes plus longues pour des marchés variés.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Testez différentes combinaisons et paramètres de MA pour trouver la configuration optimale.
  2. Ajouter d'autres indicateurs de filtrage des signaux pour améliorer l'efficacité de la stratégie.
  3. Optimiser le stop loss, prendre les paramètres de profit pour réduire le drawdown et augmenter le ratio de profit.
  4. Paramètres de réglage précis basés sur différents produits et sessions de négociation.

Conclusion

En conclusion, cette stratégie est très adaptée aux débutants. La logique est simple et facile à comprendre et à mettre en œuvre. Elle a également une adaptation relativement bonne au marché, avec une large marge d'ajustement et d'optimisation des paramètres pour réaliser des profits stables. Il est utile pour les débutants du trading quantitatif de l'utiliser pour commencer et apprendre.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bensonsuntw

strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

backtest_year = input(2019, type=input.integer, title='backtest_year')
backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12)
backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31)
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)
stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true)
trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true)
buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss')
sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss')
buy_tp = input(0.4, type=input.float, title='buy_tp')
sell_tp =input(0.2, type=input.float, title='sell_tp')
trail_stop_long = input(1.1, type=input.float, title='trail_stop_long')
trail_stop_short = input(0.9, type=input.float, title='trail_stop_short')
trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset')
trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset')


// you can set your own logic here
shortCondition = crossunder(sma(close,7),sma(close,14))
longCondition = crossover(sma(close,7),sma(close,14))

strategy.entry("Buy", strategy.long, when=longCondition  )
strategy.close("Buy", when=shortCondition)
strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na)

strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na)


net_profit = strategy.netprofit + strategy.openprofit

plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)






Plus de