Cette stratégie utilise des ruptures dynamiques de temps élevé-faible pour générer des signaux de trading. Elle détermine s'il faut acheter ou vendre en comparant les prix les plus élevés et les plus bas de la période en cours avec le prix de clôture de la période précédente plus ou moins un certain nombre de points. Cette approche peut s'adapter à différentes tendances et volatilités du marché, améliorant ainsi l'adaptabilité et la flexibilité de la stratégie.
Le noyau de cette stratégie est d'utiliser les points hauts et bas de différents délais pour déterminer les tendances des prix. Tout d'abord, il obtient les données sur le prix le plus élevé, le prix le plus bas et le prix de clôture correspondant à la période sélectionnée par l'utilisateur. Ensuite, il détermine le signal d'achat en comparant si le prix le plus élevé de la période actuelle est supérieur au prix de clôture de la période précédente plus un certain nombre de points. De même, il détermine le signal de vente en comparant si le prix le plus bas de la période actuelle est inférieur au prix de clôture de la période précédente moins un certain nombre de points. Une fois qu'un signal d'achat ou de vente apparaît, la stratégie ouvrira ou fermera des positions en conséquence. En outre, la stratégie marquera les signaux d'achat et de vente sur le graphique et tracera la courbe de rentabilité de la stratégie pour une évaluation intuitive de la performance de la stratégie.
La stratégie dynamique de rupture à temps élevé génère des signaux de trading basés sur les ruptures de prix des points hauts et bas dans différents temps. La logique de la stratégie est claire, adaptable et facile à mettre en œuvre et à optimiser. Cependant, elle présente également des problèmes tels que la sensibilité des paramètres, le sur-ajustement et le risque de marché, qui doivent être continuellement optimisés et améliorés dans l'application réelle. En ajustant dynamiquement les paramètres, en introduisant la gestion des risques, en les combinant avec d'autres indicateurs et en optimisant l'efficacité du code, la robustesse et la rentabilité de la stratégie peuvent être encore améliorées, fournissant des outils et des idées efficaces pour le trading quantitatif.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(" NIFTY 65-15 ", overlay=true) // Define input options for point settings and timeframe points = input.int(60, title="Point Threshold", minval=1, step=1) timeframe = input.timeframe("60", title="Timeframe", options=["1", "3", "5", "15", "30", "60", "240", "D", "W", "M"]) // Calculate high and low of the selected timeframe high_timeframe = request.security(syminfo.tickerid, timeframe, high) low_timeframe = request.security(syminfo.tickerid, timeframe, low) close_timeframe = request.security(syminfo.tickerid, timeframe, close) // Define conditions for Buy and Sell buyCondition = high_timeframe > (close_timeframe[1] + points) sellCondition = low_timeframe < (close_timeframe[1] - points) // Entry and exit rules if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Close the positions based on the conditions if (sellCondition) strategy.close("Buy") if (buyCondition) strategy.close("Sell") // Plot Buy and Sell signals on the chart plotshape(series=buyCondition, title="Buy Entry", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Entry", color=color.red, style=shape.triangledown, location=location.abovebar) // Plot the equity curve of the strategy plot(strategy.equity, title="Equity", color=color.blue, linewidth=2)