Stratégie de prise de bénéfices de Supertrend

Auteur:ChaoZhang est là., Date: 2024-01-08 16h24:03
Les étiquettes:

img

Résumé

La stratégie Supertrend Moving Stop Loss Take Profit est une stratégie de trading quantitative basée sur l'indicateur Supertrend. La stratégie construit des conditions d'entrée et de sortie longues et courtes pour implémenter le stop loss et le move take profit.

La logique de la stratégie

Cette stratégie est une stratégie de suivi de tendance basée sur l'indicateur Supertrend. L'indicateur Supertrend peut déterminer la direction de la tendance des prix. Il génère des signaux d'achat et de vente lorsque la ligne Supertrend traverse la ligne 0. Plus précisément, un signal d'achat est généré lorsque la ligne Supertrend traverse au-dessus de la ligne 0, un signal de vente est généré lorsque la ligne traverse en dessous de la ligne 0. Le rapport entre le prix de clôture et le prix de clôture de la journée précédente détermine le point de prise de profit en mouvement.

Analyse des avantages

Le plus grand avantage de cette stratégie est la combinaison de l'identification de tendance et de la prise de profit en mouvement. L'indicateur Supertrend peut capturer les tendances assez précisément grâce à des croisements de ligne 0.

Analyse des risques

Le plus grand risque de cette stratégie est sa sensibilité aux échecs de rupture. Dans les périodes de plage, l'indicateur Supertrend peut générer de fausses ruptures entraînant des positions mal établies. Cela peut facilement conduire à être pris dans des pièges.

Directions d'optimisation

La stratégie peut être optimisée à partir des aspects suivants: 1) Déterminer raisonnablement les paramètres de Supertrend pour éviter les faux signaux; 2) Ajouter des mécanismes pour juger de la fiabilité de la rupture, tels que les signaux de volume; 3) Optimiser les paramètres de prise de profit en mouvement pour réduire la possibilité de frappe tout en assurant la rentabilité; 4) Utiliser des arrêts dynamiques basés sur la volatilité au lieu des arrêts statiques; 5) Ajouter d'autres indicateurs pour les stratégies d'ensemble pour améliorer la robustesse.

Conclusion

Dans l'ensemble, la stratégie Supertrend Moving Stop Loss Take Profit est une stratégie de suivi de tendance décente. Elle peut raisonnablement déterminer la direction de la tendance et a un mécanisme de prise de profit en mouvement. Mais elle est également sensible aux ruptures invalides et présente certains risques. L'optimisation ultérieure des paramètres, des règles de jugement, des mécanismes d'arrêt, etc. peut améliorer la stratégie et en faire une stratégie de trading stable et efficace.


/*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)    

Plus de