Stratégie de trading de rupture de canal à moyenne mobile


Date de création: 2024-01-29 14:31:25 Dernière modification: 2024-01-29 14:31:25
Copier: 0 Nombre de clics: 631
1
Suivre
1617
Abonnés

Stratégie de trading de rupture de canal à moyenne mobile

Aperçu

La stratégie est basée sur le principe de la fourche dorée des moyennes mobiles simples et prend des décisions d’achat et de vente par le croisement de la moyenne des 7 jours et de la moyenne des 14 jours. Un signal d’achat est émis lorsque la moyenne des 7 jours franchit la moyenne des 14 jours en descendant; un signal de vente est émis lorsque la moyenne des 7 jours franchit la moyenne des 14 jours en descendant.

Principe de stratégie

La logique de négociation centrale de cette stratégie est basée sur le principe de croisement de la moyenne des 7 jours et de la moyenne des 14 jours. La tendance à court terme du prix de réaction de la moyenne des 7 jours et la tendance à moyen terme du prix de réaction de la moyenne des 14 jours.

Plus précisément, la stratégie utilise l’indicateur SMA pour calculer les moyennes mobiles simples des 7e et 14e jours. Après la formation de chaque ligne K, comparez la relation entre la taille de la ligne 7e et de la ligne 14e. Si la ligne 7e traverse la ligne 14e, émettez un signal plus et entrez dans une position longue; si la ligne 7e traverse la ligne 14e sous la ligne 7e, émettez un signal vide et entrez dans une position courte.

En outre, la stratégie met en place des arrêts de perte, des stop-loss et des stop-loss de suivi pour verrouiller les bénéfices et contrôler les risques. Les paramètres spécifiques peuvent être optimisés en fonction des résultats de la rétroanalyse.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. Les règles sont simples, claires, faciles à comprendre et adaptées aux débutants.
  2. Le principe de l’intersection de la ligne égale est efficace et le taux de victoire est élevé.
  3. Il est équipé d’un arrêt de perte, d’un arrêt d’arrêt et d’un arrêt de suivi permettant de contrôler efficacement le risque;
  4. Moins de paramètres, plus facile à tester et à optimiser.

Risques et contre-mesures

Cette stratégie comporte aussi des risques:

  1. Lorsque la tendance est inversée, les signaux de croisement sont retardés et ne peuvent pas réagir en temps opportun à la modification de la tendance, ce qui peut entraîner des pertes importantes.
  2. Les signaux de croisement sont fréquents dans les marchés à forte volatilité, ce qui génère plus de faux signaux et affecte l’efficacité de la stratégie.

Les mesures suivantes peuvent être envisagées pour contrer ces risques:

  1. En combinaison avec d’autres indicateurs de filtrage, tels que le MACD, le KDJ, etc., afin d’éviter de produire des signaux erronés au point de basculement de la tendance;
  2. d’augmenter la marge de stop-loss et de raccourcir le cycle de détention des positions afin de réduire l’impact des pertes individuelles;
  3. Optimiser les paramètres de la ligne moyenne en fonction des différentes conditions du marché, augmenter de manière appropriée le cycle de la ligne moyenne dans les marchés horizontaux et réduire la fréquence des signaux de croisement.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Test de différentes combinaisons et paramètres homogènes pour trouver le paramètre optimal;
  2. L’ajout d’autres indicateurs pour filtrer les signaux et améliorer l’efficacité de la stratégie;
  3. Optimiser les paramètres de stop-loss, réduire les retraits et augmenter les rendements;
  4. Les paramètres sont ajustés en fonction des variétés et des périodes de négociation.

Résumer

La stratégie est tout à fait adaptée aux débutants, les principes sont simples, faciles à comprendre et à mettre en œuvre. En même temps, elle a une bonne adaptabilité au marché, un grand espace d’ajustement et d’optimisation des paramètres, ce qui est susceptible de générer des gains stables.

Code source de la stratégie
/*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)