
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.
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:
Grâce à ce cycle logique, il est possible de capturer les tendances à la hausse et à la baisse des prix et de suivre les tendances.
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.
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.
Cette stratégie peut être optimisée dans les directions suivantes:
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.
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.
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é.
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.
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.
/*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())