Stratégie de rupture suivant la tendance


Date de création: 2023-12-08 17:16:34 Dernière modification: 2023-12-08 17:16:34
Copier: 1 Nombre de clics: 573
1
Suivre
1621
Abonnés

Stratégie de rupture suivant la tendance

Aperçu

Cette stratégie permet de suivre la tendance des prix de la crypto-monnaie en fixant les hauts et les bas de la rupture des prix. Faire plus lorsque le prix atteint le plus haut et faire moins lorsque le prix atteint le plus bas pour capturer la tendance.

Principe de stratégie

Cette stratégie consiste principalement à déterminer si une tendance haussière ou baissière est apparente à l’aide de la méthode de pondération des moyennes mobiles lisses. Plus précisément, elle prend en compte les prix les plus élevés et les plus bas d’une période donnée. Elle prend en compte une tendance haussière lorsque le prix de transaction réel dépasse le prix le plus élevé de la statistique et une tendance baissière lorsque le prix de transaction réel est inférieur au prix le plus bas de la statistique.

Le prix d’ouverture de la position de plus en plus vide est défini par la colonne de paramètres ENTRY de la colonne d’entrée, et le prix d’ouverture de la colonne de paramètres EXIT de la colonne de paramètres. La période de retracement peut également être définie par les paramètres. Ainsi, la recherche de la meilleure combinaison de combos peut être effectuée en ajustant les paramètres.

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

  1. Le prix le plus élevé et le prix le plus bas au cours d’une période donnée de la statistique
  2. Déterminer si le prix de la transaction réelle est supérieur au prix maximum
    1. Si la valeur est supérieure, il y a une opportunité d’ouvrir une position plus élevée, en fonction du niveau de prix défini par le paramètre de la colonne ENTRY
    2. Si le prix de la transaction réelle est inférieur au prix le plus bas, il existe une opportunité de prise de position en cours de négociation, en ouvrant une position en cours de négociation au niveau du prix fixé par le paramètre de la couche EXIT
  3. Après avoir ouvert une position sur le marché, la position de placement est réduite lorsque le prix est inférieur au prix fixé par le paramètre de la barre EXIT
  4. Après avoir ouvert une position vide, la position est fermée lorsque le prix est supérieur au prix défini par le paramètre de la colonne ENTRY

Grâce à ce cycle logique, il est possible de capturer les tendances à la hausse et à la baisse des prix et de suivre les tendances.

Avantages stratégiques

Le plus grand avantage de cette stratégie est qu’elle permet de capturer automatiquement les tendances des prix par ajustement des paramètres, sans avoir à juger manuellement de la direction des tendances. Si les paramètres sont bien définis, il est possible de suivre automatiquement les fluctuations des prix des crypto-monnaies.

En outre, la stratégie est parfaitement adaptée aux transactions quantitatives et permet de réaliser facilement des commandes automatisées. Il n’y a pas besoin d’opérations manuelles, ce qui réduit le risque de transactions émotionnelles et peut considérablement améliorer l’efficacité des transactions.

Enfin, la stratégie peut également être utilisée pour maximiser les gains en ajustant les paramètres. En testant différents paramètres ENTRY et EXIT, on peut trouver les paramètres optimaux pour maximiser les gains.

Risque stratégique

Le plus grand risque de cette stratégie réside dans le fait qu’une mauvaise configuration des paramètres peut entraîner des transactions trop fréquentes, augmenter les frais de transaction et la perte de points de glissement. Si l’ENTRY est trop bas et l’EXIT trop élevé, il est facile de générer un signal de transaction erroné.

En outre, si les paramètres ne sont pas correctement ajustés, cela peut entraîner une incapacité à saisir les tendances des prix à temps et à manquer des opportunités de négociation. Cela nécessite de trouver les paramètres optimaux en effectuant de nombreuses rétroactions.

Enfin, la stratégie est trop sensible au bruit du marché à court terme, ce qui peut générer de faux signaux de négociation. Cela doit être évité en réglant correctement les paramètres du cycle de temps de négociation.

Orientation de l’optimisation de la stratégie

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Augmentation de la logique de stop-loss. Ainsi, vous pouvez arrêter la perte de sortie lorsque la perte s’étend à un certain pourcentage, pour éviter une perte plus importante.

  2. Ajout de filtres sur les indicateurs techniques tels que les moyennes mobiles. Utilisez des indicateurs tels que MA, KDJ pour déterminer les grandes tendances et évitez les bruits à court terme qui entraînent trop de transactions.

  3. Logique de configuration des paramètres optimisés. Il est possible de définir un mécanisme de changement adaptatif des paramètres ENTRY, EXIT, plutôt que des paramètres statiques, ce qui permet d’ajuster les paramètres en fonction de l’environnement du marché.

  4. Utilisez les paramètres optimaux de la formation à l’apprentissage automatique. Entraînez-vous avec de grandes quantités de données historiques pour obtenir les paramètres d’entrée et de sortie optimaux pour l’environnement de marché actuel.

Résumer

La stratégie permet d’automatiser les transactions en capturant les tendances des prix. Son principal avantage est de réduire l’influence des émotions humaines sur les transactions, de réduire les risques et d’améliorer l’efficacité.

Les principaux risques de la stratégie résident dans la mauvaise configuration des paramètres et dans une sensibilité excessive au bruit du marché. Cela nécessite des améliorations par des moyens tels que l’arrêt des pertes, le filtrage des indicateurs et l’optimisation de l’adaptation des paramètres.

Dans l’ensemble, la stratégie est une stratégie de suivi de tendance simple et efficace, adaptée à la quantification et à l’automatisation des transactions. La stabilité de la stratégie peut être encore améliorée par une optimisation continue.

Code source de la stratégie
/*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())