Stratégie de stop loss et de take profit basée sur des indicateurs


Date de création: 2023-11-10 11:28:06 Dernière modification: 2023-11-10 11:28:06
Copier: 1 Nombre de clics: 728
1
Suivre
1617
Abonnés

Stratégie de stop loss et de take profit basée sur des indicateurs

Aperçu

Cette stratégie utilise la moyenne mobile comme signal de négociation et, combinée à un taux de stop-loss personnalisé par l’utilisateur, permet de réaliser une stratégie de stop-loss entièrement guidée par les indicateurs. La stratégie peut être automatiquement activée, arrêtée et arrêtée, sans intervention humaine, et convient aux transactions automatiques.

Principe de stratégie

La logique de cette stratégie est la suivante:

  1. Utilisez le SMA de 3 cycles comme signal de transaction, en faisant plus lorsque le SMA dépasse 0, et en faisant moins lorsque le SMA dépasse 0;

  2. Une fois connecté, l’utilisateur peut personnaliser le Stop Loss Ratio et le Stop Stop Ratio.

  3. la mise en place d’une ligne de stop-loss automatique en fonction du prix d’entrée et du ratio de stop-loss défini par l’utilisateur;

    • régler automatiquement le fil de freinage en fonction du prix d’entrée et de la proportion de freinage définie par l’utilisateur;
  4. Il s’arrête automatiquement lorsque le prix touche la ligne de stop-loss; il s’arrête automatiquement lorsque le prix touche la ligne de stop-loss;

  5. Les ordres de stop-loss sont automatiquement annulés après la liquidation.

Plus précisément, la stratégie utilise la fonction sma pour calculer la moyenne mobile de 3 cycles et assigner sa valeur à la variable ma ≠ .

On calcule ensuite la longueur de la ligne d’entrée à plusieurs têtes, qui est égale à ma plus le pourcentage de ma en lo. Lo est un paramètre réglable par l’utilisateur, qui représente le déplacement de la ligne d’entrée à plusieurs heures.

Lorsque ma est porté sur 0, cela signifie que le début de la plus, l’entrée de la plus par la fonction de stratégie. entrée, le prix d’entrée est long。

En même temps, définissez les prix d’arrêt et d’arrêt. Le prix d’arrêt est le prix d’entrée moins le sl% du prix d’entrée.

La fonction strategy.entry permet de définir des ordres stop-loss et des ordres stop-loss. Lorsque le prix touche la ligne stop-loss, il s’arrête automatiquement; lorsqu’il touche la ligne stop-loss, il s’arrête automatiquement.

Une fois la position nettoyée, le stop-loss est automatiquement annulé via la fonction strategy.cancel.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. Le niveau d’automatisation est élevé, il ne nécessite pas d’intervention humaine et est adapté aux transactions automatisées.

  2. Un ratio de stop-loss personnalisable pour contrôler le risque;

  3. Les signaux de trading proviennent des indicateurs, afin d’éviter les fausses ruptures.

  4. Le problème est qu’il n’y a pas de système d’alarme, mais il y a un système d’alarme.

  5. La logique de la stratégie est claire, simple et facile à comprendre.

Les risques et les solutions

Cette stratégie présente aussi des risques:

  1. Risque de faux signaux dans l’indicateur. La solution est d’optimiser les paramètres pour assurer la stabilité et la fiabilité de l’indicateur.

  2. Le paramètre de stop loss est déraisonnable et peut être trop relâché ou trop radical. La solution consiste à adapter le paramètre de stop loss aux différents marchés.

  3. Les entrées de rupture sont faciles à piéger. La solution est de combiner les signaux d’entrée de filtrage avec les tendances et les indicateurs de prix.

  4. Les retraits peuvent être plus importants. La solution est de réduire le critère de position ou de suivre le stop loss.

Orientation de l’optimisation de la stratégie

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

  1. Optimiser les paramètres des moyennes mobiles pour les rendre plus fiables;

  2. Optimiser les conditions d’entrée, éviter les faux-bénéfices et ajouter la confirmation de prix;

  3. Optimiser les stratégies de stop loss, en utilisant le stop loss dynamique, le stop loss tracking, etc.

  4. Optimiser la gestion des fonds, modifier les critères de position et réduire les risques individuels;

  5. Optimiser le filtrage de l’entrée en jeu en combinant des indicateurs tels que la tendance, le niveau de résistance et le support.

  6. Rejoignez Pyramiding pour une stratégie d’acquisition afin d’améliorer votre rentabilité.

  7. Optimisation des paramètres pour des variétés spécifiques.

Résumer

Cette stratégie est conçue comme une stratégie de stop loss et de stop loss à base d’indicateurs, avec les avantages de l’automatisation des transactions et de la maîtrise des risques, adaptée au trading quantitatif. Cependant, il existe des directions qui nécessitent une optimisation, telles que l’optimisation des paramètres d’indicateurs, le filtrage d’entrée, la stratégie de stop loss et la gestion des fonds.

Code source de la stratégie
/*backtest
start: 2023-01-01 00:00:00
end: 2023-11-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("example for panel signals", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//https://www.tradingview.com/script/m2a04xmb-noro-s-shiftma-tp-sl-strategy/
//Settings
lo = input(-5.0, title = "Long-line, %")
tp = input(5.0, title = "Take-profit")
sl = input(2.0, title = "Stop-loss")

//SMA
ma = sma(ohlc4, 3)
long = ma + ((ma / 100) * lo)

//Orders
avg = strategy.position_avg_price
if ma > 0
    strategy.entry("Long", strategy.long, limit = long)
    strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp))
    strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl))
    
//Cancel order
if strategy.position_size == 0
    strategy.cancel("Take")
    strategy.cancel("Stop")

//Lines
plot(long, offset = 1, color = color.black, transp = 0)
take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp)
stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl)
takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na
stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na
plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0)
plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0)
//
disp_panels = input(true, title="Display info panels?")
h=high
info_label_off = input(20, title="Info panel offset")
info_label_size = input(size.large, options=[size.tiny, size.small, size.normal, size.large, size.huge], title="Info panel label size")
info_panel_x = timenow + round(change(time)*info_label_off)
info_panel_y = h

info_title= "-=-=-=-=- Info Panel -=-=-=-=-"
info_div = "\n\n------------------------------"
a = "\n\ Long : " + tostring(long)
b = "\n\ Stop loss : " + tostring(stop)
c = "\n\ TP : " + tostring(take)
// info_text = a+c+b
// info_panel = disp_panels ? label.new(x=info_panel_x, y=info_panel_y, text=info_text, xloc=xloc.bar_time, yloc=yloc.price, color=color.yellow, style=label.style_labelup, textcolor=color.black, size=info_label_size) : na
// label.delete(info_panel[1])