Stratégies de stop loss et de take profit basées sur les prix


Date de création: 2023-11-23 15:36:00 Dernière modification: 2023-11-23 15:36:00
Copier: 0 Nombre de clics: 672
1
Suivre
1617
Abonnés

Stratégies de stop loss et de take profit basées sur les prix

Aperçu

L’idée centrale de cette stratégie est d’utiliser les montants d’arrêt de perte entrants pour définir un nombre raisonnable de points d’arrêt de perte et gérer les risques et les gains de chaque transaction.

Principe de stratégie

La stratégie consiste d’abord à régler un signal d’entrée aléatoire, en faisant plus lorsque le SMA 14 est traversé par le SMA 28, et en faisant moins lorsque le SMA 14 est traversé par le SMA 28.

Après l’entrée, la stratégie utilise la fonction moneyToSLPoints pour calculer le nombre de points de stop correspondant au montant de stop-loss entré, ainsi que le nombre de points de stop-loss. Ainsi, un paramètre de stop-loss basé sur le montant en dollars est réalisé.

Par exemple, si l’entrée est de 100 mains supplémentaires, chaque point vaut 10 dollars, le stop loss est de 100 dollars, alors le nombre de points de stop loss est de 100/10/100 = 0,1 point.

Enfin, utilisez la stratégie.exit pour définir le point de sortie de la ligne d’arrêt. Dessinez le graphique de la ligne d’arrêt et de la ligne d’arrêt pour référence de démarrage.

Analyse des avantages

Cette stratégie est basée sur le stop loss, le plus grand avantage est que le paramètre de configuration est intuitif, vous pouvez voir intuitivement le rapport entre les risques et les gains, faire le choix des paramètres.

En outre, par rapport aux arrêts ponctuels, les arrêts en dollars permettent de mieux contrôler les marges de risque réelles. Lorsque les fluctuations du marché sont plus importantes, les arrêts en dollars protègent mieux les fonds.

Analyse des risques

Cette stratégie de stop-loss comporte aussi des risques:

  1. Si le point d’arrêt est trop large, il est facile d’être bloqué. Si le point d’arrêt est trop éloigné, la probabilité d’un renversement de la courte ligne de tendance est relativement grande et il est facile d’être bloqué et de ne pas être bloqué.

  2. Il est difficile de faire des bénéfices si le point d’arrêt est trop proche. Il est difficile de faire des bénéfices si le point d’arrêt est trop proche et que la marche unilatérale normale ne peut pas être atteinte.

  3. Il est nécessaire de choisir judicieusement les contrats. Si vous choisissez un contrat dont la valeur est trop élevée, par exemple le pétrole brut, alors le même dollar est perdu, le nombre de points correspondant sera très faible et sera facilement éliminé dans les fluctuations du marché.

Direction d’optimisation

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

  1. Les signaux d’entrée peuvent être optimisés, par exemple en combinant des options telles que la tendance, la volatilité et la saisonnalité pour un meilleur moment d’entrée.

  2. Il est possible de choisir un pourcentage de stop-loss approprié en fonction de la variété. Par exemple, un stop-loss plus souple peut être défini pour les produits de base.

  3. Il peut être combiné avec le taux d’oscillation, avec un assouplissement approprié de l’arrêt lorsque l’oscillation augmente; avec un resserrement approprié de l’arrêt lorsque l’oscillation diminue.

  4. Il est possible de choisir différentes stratégies de stop-loss en fonction des périodes de la journée. Par exemple, les heures de négociation aux États-Unis resserrent le stop-loss, réduisant la probabilité d’être couvert.

Résumer

Cette stratégie utilise le montant en dollars comme paramètre pour réaliser une fonction d’arrêt de perte intuitive. L’avantage de cette stratégie est que le choix des paramètres et le contrôle des fonds sont intuitifs, l’inconvénient est qu’elle est facile à manipuler et difficile à rentabiliser. Nous pouvons améliorer la stratégie en termes de temps d’entrée, d’optimisation des paramètres d’arrêt de perte, de choix des contrats, etc.

Code source de la stratégie
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 10m
basePeriod: 1m
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/
// © adolgov

// @description
// 

//@version=4
strategy("Stop loss and Take Profit in $$ example", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)