La stratégie de l'heure d'or détermine automatiquement les meilleures heures pour acheter et vendre chaque jour en testant les données historiques.
Utilisez l'heure actuelle pour obtenir l'heure actuelle now_hour.
Utilisez l'indicateur ROC pour calculer le pourcentage horaire de hausse et de baisse de l'indicateur des chandeliers.
Calculer le produit cumulé de l'indicateur et de now_hour comme buy_hourXindicator_cum.
Calculer la somme cumulée de l'indicateur comme buy_indicator_cum.
La meilleure heure d'achat buy_hour = buy_hourXindicator_cum / buy_indicator_cum.
Calculer de la même manière la meilleure heure de vente sale_hour.
Comparez now_hour avec buy_hour et sell_hour pour déterminer si l'heure actuelle est l'heure d'achat ou de vente optimale.
Envoyer des signaux correspondants pendant les heures d'achat et de vente optimales.
Utilisez différentes couleurs d'arrière-plan pour afficher les heures d'achat et de vente optimales en temps réel.
Le plus grand avantage de cette stratégie est la capacité de déterminer automatiquement les meilleures heures de trading de la journée. Elle permet d'économiser beaucoup de temps et d'efforts en observant manuellement les données historiques pour juger des heures de trading optimales.
En outre, la stratégie utilise bien l'indicateur ROC. En calculant le pourcentage horaire de hausse et de chute des chandeliers, elle peut juger plus précisément les performances de négociation de différentes périodes.
Le plus grand risque de cette stratégie réside dans les limites de l'indicateur ROC lui-même. ROC ne prend en compte que les changements de prix et est insensible aux changements de volume des transactions. En outre, ROC ne fonctionne pas bien sur les marchés à fourchette avec des bandes étroites. Si vous rencontrez des marchés à fourchette latéralement, l'efficacité de l'indicateur ROC sera réduite.
En outre, la stratégie utilise le backtesting des données historiques pour déterminer les heures de négociation optimales. Mais les modèles historiques peuvent ne pas s'appliquer au marché actuel. Des changements structurels peuvent survenir sur le marché et les règles de négociation originales peuvent ne plus s'appliquer. Cela nécessite d'ajuster les paramètres en fonction des conditions actuelles du marché plutôt que de se fier uniquement aux résultats du backtesting.
Pour y remédier, nous pouvons envisager de combiner d'autres indicateurs tels que le volume des transactions afin d'obtenir un jugement plus complet des conditions du marché.
La stratégie peut être optimisée dans les aspects suivants:
Essayez d'autres indicateurs pour remplacer l'indicateur ROC, tels que le volume des transactions, afin de trouver des indicateurs plus appropriés pour calculer la force et la faiblesse horaires.
Ajouter d'autres conditions de filtrage en utilisant des moyennes mobiles, des oscillateurs, etc. pour juger des tendances locales et éviter des transactions déraisonnables.
Optimiser les paramètres des périodes et tester l'impact des différentes périodes sur les résultats.
Ajouter des mécanismes de stop loss et fixer des points de stop loss raisonnables pour contrôler les risques de négociation.
Combiner des méthodes d'apprentissage automatique et des ensembles de données plus importants pour résoudre les heures de négociation optimales.
En résumé, la stratégie de l'heure d'or est une approche réalisable et efficace. Elle utilise l'indicateur ROC pour déterminer automatiquement les heures optimales d'achat et de vente intraday, ce qui permet d'économiser beaucoup de temps et d'efforts. Mais nous devons également noter les limites de l'indicateur ROC et du backtesting historique, et ajuster les paramètres en fonction des conditions actuelles du marché. En outre, il y a encore beaucoup de marge d'amélioration en optimisant cette stratégie à bien des égards pour générer des signaux plus précis et fiables. Si elle est utilisée pour le trading en direct, il est recommandé de suivre strictement les règles de stop loss pour contrôler les risques de trading.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 2h basePeriod: 15m 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/ // © mablue (Masoud Azizi) //@version=5 strategy("Trade Hour V3",overlay=false) timezone = input.string("Europe/London",options=["America/New_York","America/Los_Angeles","America/Chicago","America/Phoenix","America/Toronto","America/Vancouver","America/Argentina" ,"America/El_Salvador","America/Sao_Paulo","America/Bogota","Europe/Moscow","Europe/Athens","Europe/Berlin","Europe/London","Europe/Madrid","Europe/Paris","Europe/Warsaw","Australia/Sydney","Australia/Brisbane","Australia/Adelaide","Australia/ACT","Asia/Almaty","Asia/Ashkhabad","Asia/Tokyo","Asia/Taipei","Asia/Singapore","Asia/Shanghai","Asia/Seoul","Asia/Tehran","Asia/Dubai","Asia/Kolkata","Asia/Hong_Kong","Asia/Bangkok","Pacific/Auckland","Pacific/Chatham","Pacific/Fakaofo","Pacific/Honolulu"] ) source = input.source(close) tp = input.int(1,"ROC Timeperiod") now_hour = hour(time,timezone) indicator = ta.roc(source,tp) buy_hourXindicator_cum = ta.cum(indicator* now_hour) buy_indicator_cum = ta.cum(indicator) buy_hour = buy_hourXindicator_cum/buy_indicator_cum sell_hourXindicator_cum = ta.cum( (1/indicator ) * now_hour) sell_indicator_cum = ta.cum(1/indicator) sell_hour = sell_hourXindicator_cum/sell_indicator_cum plot(buy_hour,color=color.green) plot(sell_hour,color=color.red) plot(now_hour,color=color.gray,display=display.none) bool isLongBestHour = now_hour==math.round(buy_hour) bool isShortBestHour = now_hour==math.round(sell_hour) bgcolor(isLongBestHour ? color.new(color.green,80) : na) bgcolor(isShortBestHour ? color.new(color.red,80) : na) strategy.order("buy", strategy.long, when =isLongBestHour) strategy.order("sell", strategy.short, when = isShortBestHour)