
La stratégie de stop-loss et de stop-move est une stratégie de trading quantitative basée sur des indicateurs de dépassement. La stratégie permet de réaliser des stops et des stops mobiles en construisant des conditions d’entrée et de sortie pour les positions longues et courtes. L’avantage de la stratégie est qu’il est possible d’obtenir des profits plus élevés dans une tendance continue, tout en bloquant la plupart des profits grâce à un stop-move.
Cette stratégie est basée sur une stratégie de suivi de tendance basée sur le dépassement de l’indicateur. Le dépassement de l’indicateur permet de déterminer la direction de la tendance des prix. Lorsque le dépassement de l’indicateur modifie la direction, il génère des signaux d’achat et de vente. Plus précisément, si le dépassement de l’indicateur traverse l’axe 0 sur l’indicateur, il génère un signal d’achat.
Le plus grand avantage de cette stratégie est qu’elle combine le jugement de la tendance et le stop mobile. La direction de la tendance est jugée en franchissant l’axe 0 au-dessus de l’indicateur, ce qui permet de capturer la tendance avec plus de précision. Le stop mobile permet de verrouiller la plupart des bénéfices pendant la tendance. Le paramètre de stop loss est également utile pour contrôler les risques.
Le risque le plus important de cette stratégie est qu’elle est sensible à l’échec de la rupture. Dans les zones de comptage, le dépassement des indicateurs peut entraîner une fausse rupture et ainsi créer une position erronée. Il est alors facile d’être piégé.
Cette stratégie peut être optimisée de la manière suivante: 1) déterminer raisonnablement les paramètres de l’indicateur dépassé pour éviter de produire de faux signaux; 2) ajouter des mécanismes pour juger de la fiabilité de la percée, comme l’augmentation des signaux de volume de transaction; 3) optimiser les paramètres des arrêts mobiles, tout en garantissant des gains et en réduisant le plus possible le risque d’effet de levier; 4) utiliser des arrêts dynamiques basés sur la volatilité au lieu des arrêts statiques; 5) ajouter d’autres indicateurs à la combinaison pour améliorer la stabilité de la stratégie.
Le dépassement de la stratégie de stop loss profit mobile est une meilleure stratégie de suivi de la tendance dans son ensemble. Elle permet de juger rationnellement de la direction de la tendance et dispose d’un mécanisme de stop mobile. Cependant, la stratégie est également plus sensible aux pannes de rupture et présente un certain risque.
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ST Michael Moving TP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)
// Stop loss and profit amount
stop_loss = input(1500, title="Stop Loss Amount")
profit = input (15000, title="Profit Amount")
LongTrailProfit = input (0.91, title = "Long Trailing Profit Taking")
ShortTrailProfit = input (1.01, title = "Short Trailing Profit Taking")
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
long_condition = ta.change(direction) <0
short_condition = ta.change(direction) >0
stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0)
profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0)
stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0)
profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0)
atr=ta.atr(10)
intrade_long = strategy.position_size > 0
intrade_short = strategy.position_size < 0
exitConditionLong = (close < (close[1]*LongTrailProfit))
exitConditionShort = (close > (close[1]*ShortTrailProfit))
if (long_condition)
strategy.entry("Long3", strategy.long)
if (intrade_long and exitConditionLong)
strategy.close("Long3")
if (short_condition)
strategy.entry("Short3", strategy.short)
if (intrade_short and exitConditionShort)
strategy.close ("Short3")
if (strategy.position_size>0)
strategy.exit("exit_long",from_entry="Long3",limit=profit_price_long,stop=stop_price_long)
if (strategy.position_size<0)
strategy.exit("exit_short",from_entry="Short3",limit=profit_price_short,stop=stop_price_short)