Stratégie d'achat directionnelle à faible volatilité avec stop profit et stop loss


Date de création: 2023-12-18 12:00:07 Dernière modification: 2023-12-18 12:00:07
Copier: 1 Nombre de clics: 573
1
Suivre
1621
Abonnés

Stratégie d’achat directionnelle à faible volatilité avec stop profit et stop loss

Aperçu

Cette stratégie s’appelle la stratégie d’arrêt de perte orientée vers l’achat d’un stop-loss à basse volatilité. Elle utilise le croisement d’une moyenne mobile comme signal d’achat, combiné à un stop-loss pour verrouiller les gains, et s’applique aux devises de basse volatilité.

Principe de stratégie

La stratégie utilise des moyennes mobiles de 3 périodes différentes: 50 périodes, 100 périodes et 200 périodes. La logique de l’achat est la suivante: lorsque la ligne de 50 périodes traverse la ligne de 100 périodes et que la ligne de 100 périodes traverse la ligne de 200 périodes, faites une entrée supplémentaire.

Ce signal indique que le marché est en train de franchir la zone de basse volatilité et de commencer à entrer dans un état de tendance. Une hausse rapide de 50 cycles représente une augmentation soudaine des forces internes à court terme et commence à entraîner la ligne moyenne longue vers le haut; La ligne de 100 cycles commence également à monter pour indiquer que les forces intermédiaires se joignent et se stabilisent à la hausse.

Après l’entrée, la stratégie utilise un stop-loss pour bloquer les bénéfices. Le stop-loss est fixé à 8% du prix d’entrée et la ligne de stop-loss à 4% du prix d’entrée. La mise en place d’un stop-loss plus grand que le stop-loss favorise le profit sur les pertes et assure la rentabilité globale de la stratégie.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Il s’agit d’une méthode d’analyse qui permet de saisir avec précision les opportunités de rupture de tendances dans les zones de basse volatilité.
  2. Les moyennes mobiles sont faciles à calculer et à remonter, et leur logique est simple et claire.
  3. Les paramètres de stop-loss sont raisonnables et favorisent la stabilité des gains.
  4. Les paramètres sont flexibles et faciles à optimiser.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Un signal de rupture erroné peut entraîner des pertes.
  2. Il est difficile de s’arrêter quand le marché se retourne.
  3. Les paramètres de stop loss mal réglés peuvent affecter les profits.

La réponse:

  1. En combinaison avec d’autres indicateurs, le filtrage des signaux assure une efficacité de percée.
  2. Réduire de manière appropriée le cycle de stop-loss pour réduire les pertes dues au renversement.
  3. Tester différents ratios de stop-loss pour trouver le paramètre optimal

Direction d’optimisation

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

  1. Tester différents paramètres de périodes des moyennes mobiles pour trouver la meilleure combinaison.
  2. l’ajout d’indicateurs tels que le volume des transactions pour confirmer une rupture de tendance.
  3. réglage dynamique de l’amplitude de la perte de freinage.
  4. Prédire le taux de réussite des percées en combinant des outils tels que l’apprentissage automatique.
  5. Adapter les paramètres en fonction des différentes conditions du marché et des différentes devises.

Dans l’ensemble, la stratégie fonctionne de manière logique, avec une configuration de cycles de moyenne mobile et de stop loss pour obtenir des gains à faible risque. Elle peut être appliquée de manière flexible pour les transactions quantifiées.

Code source de la stratégie
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, 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
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))



//Entry 
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)

//Exit
longStopPrice  = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())

//PLOT

plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)