Tendance à la rupture suivant la stratégie

Auteur:ChaoZhang est là., Date: le 12 août 2023 17:16:34
Les étiquettes:

img

Résumé

Cette stratégie suit la tendance des prix des crypto-monnaies en fixant des prix élevés et bas de rupture.

Principe de stratégie

Cette stratégie utilise principalement la méthode de la moyenne mobile pondérée pour déterminer s'il y a une tendance à la hausse ou à la baisse évidente. Plus précisément, elle enregistrera les prix les plus élevés et les plus bas sur une certaine période. Lorsque le prix de négociation réel dépasse le prix le plus élevé enregistré, on juge qu'une tendance à la hausse s'est produite et qu'elle sera longue. Lorsque le prix de négociation réel est inférieur au prix le plus bas enregistré, on juge qu'une tendance à la baisse s'est produite et qu'il sera court.

Les prix d'ouverture pour long et court sont définis par le paramètre d'entrée ENTRY, et les prix de clôture sont définis par le paramètre EXIT.

Plus précisément, la logique principale de la stratégie est la suivante:

  1. Enregistrement des prix les plus élevés et les plus bas au cours d'une certaine période (réglable)
  2. Jugez si le prix de négociation réel est supérieur au prix le plus élevé
    1. En cas d'augmentation, il existe une opportunité longue, ouvrez une position longue en fonction du niveau de prix défini par le paramètre ENTRY
    2. Si le prix de négociation réel est inférieur au prix le plus bas, il y a une opportunité courte, ouvrez une position courte en fonction du niveau de prix défini par le paramètre EXIT
  3. Après avoir ouvert une position longue, la fermer lorsque le prix tombe en dessous du niveau défini par le paramètre EXIT
  4. Après avoir ouvert une position courte, la fermer lorsque le prix dépasse le niveau défini par le paramètre ENTRY

Grâce à cette boucle logique, il peut capturer les tendances à la hausse et à la baisse du prix et atteindre la tendance suivante.

Les avantages

Le plus grand avantage de cette stratégie est qu'en ajustant les paramètres, elle peut capturer automatiquement les tendances des prix sans avoir besoin d'un jugement manuel de la direction de la tendance.

En outre, cette stratégie est très adaptée au trading quantitatif et peut facilement réaliser un placement d'ordres automatisé.

Enfin, cette stratégie peut également maximiser les rendements en ajustant les paramètres.

Les risques

Le plus grand risque de cette stratégie est que des paramètres mal réglés puissent entraîner des transactions trop fréquentes, des frais de négociation plus élevés et des pertes par glissement.

En outre, un ajustement inapproprié des paramètres peut également entraîner l'échec de la capture des tendances des prix dans le temps, manquant des opportunités de trading.

Enfin, cette stratégie est trop sensible au bruit de marché à court terme, qui peut générer des signaux de négociation erronés.

Directions d'optimisation

Les aspects suivants peuvent être encore optimisés pour cette stratégie:

  1. Ajoutez une logique de stop-loss. Cela permet d'arrêter la perte lorsque les pertes dépassent un certain pourcentage pour éviter des pertes plus importantes.

  2. Ajoutez des filtres d'indicateurs techniques tels que la moyenne mobile, KDJ pour juger de la tendance globale afin d'éviter trop de trading en raison du bruit à court terme.

  3. Optimiser la logique de réglage des paramètres. Le mécanisme de changement adaptatif peut être réglé pour les paramètres ENTRY et EXIT plutôt que pour le réglage statique afin qu'ils puissent s'ajuster en fonction des conditions du marché.

  4. Utilisez l'apprentissage automatique pour former des paramètres optimaux. Obtenez les paramètres d'entrée et de sortie optimaux pour l'environnement actuel du marché grâce à une formation massive de données historiques.

Conclusion

Le plus grand avantage de cette stratégie est qu'en capturant les tendances des prix, elle permet de réaliser un trading automatisé, ce qui peut réduire l'impact des émotions humaines sur le trading, réduire les risques et améliorer l'efficacité.

Les principaux risques de la stratégie sont les paramètres mal réglés et la sursensibilité au bruit du marché, qui doivent être améliorés par des filtres d'indicateurs, une optimisation adaptative des paramètres, etc.

Dans l'ensemble, il s'agit d'une tendance simple et efficace suivant une stratégie adaptée au trading quantitatif et automatisé.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © JstMtlQC

//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")

/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")

/////////////// Backtest Setting
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false 

/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)

/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)

/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)

/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// SHORT 

entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)

/////////////// LONG 

exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// LONG 

if (entrylong)
    strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
    strategy.close("LongEntry", when=window())

/////////////// SHORT 

if (entryshort)
    strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
    strategy.close("short", when=window())



Plus de