Cette stratégie combine des indicateurs de dynamique et des indicateurs de suivi bidirectionnels pour capturer les signaux de rupture dans des tendances fortes pour le suivi des tendances.
L'indicateur HiLo Activator calcule le prix du point médian en utilisant le point médian du plus haut et du plus bas. Lorsque les prix dépassent le point médian, un signal d'achat est généré. Lorsque les prix dépassent le point médian, un signal de vente est généré.
L'indice directionnel moyen (ADX) est utilisé pour mesurer la force de la tendance. Plus la valeur ADX est élevée, plus la tendance est forte.
Les indicateurs directionnels DI+ et DI- représentent respectivement la force de la tendance haussière et de la tendance baissière.
Les signaux d'achat sont générés lorsque les prix dépassent le point médian, ADX est supérieur au seuil et DI+ est supérieur au seuil. Les signaux de vente sont générés lorsque les prix dépassent le point médian, ADX est supérieur au seuil et DI- est supérieur au seuil.
Cette stratégie combine les avantages des indicateurs de dynamique et de suivi des tendances pour capturer les ruptures précoces et suivre de près les tendances.
Comparée à l'utilisation d'indicateurs de dynamique seuls, cette stratégie ajoute une évaluation de la force de la tendance pour filtrer les signaux et améliorer la rentabilité.
Dans l'ensemble, la stratégie permet de suivre les tendances en douceur, d'entrer et de sortir en temps opportun et d'éviter de rester coincé dans des consolidations tout en réduisant les pertes liées aux renversements de tendance.
Cette stratégie comporte certains risques liés à des renversements temporaires des prix générant des signaux erronés.
Pour réduire les risques, modifiez les paramètres de l'activateur HiLo pour augmenter la portée de rupture. Pour capturer plus d'opportunités, abaissez les seuils ADX et DI aux dépens de la qualité du signal.
Les utilisateurs doivent également noter les différences entre les produits et les environnements de marché.
Les principaux moyens d'optimiser cette stratégie sont les suivants:
Ajustez la période de l'activateur HiLo et les niveaux de déclenchement pour équilibrer les risques et le timing.
Modifier la période et le seuil ADX pour équilibrer la qualité et la fréquence du signal.
Définir des seuils distincts pour DI+ et DI- pour tenir compte des différences entre les tendances haussières et les tendances baissières.
Ajouter des stratégies de stop loss avec des niveaux de stop loss pour contrôler les pertes d'une seule transaction.
Combiner avec d'autres indicateurs auxiliaires pour améliorer la stabilité globale.
Cette stratégie prend en compte à la fois l'élan et les indicateurs de suivi de tendance pour générer des signaux pendant les fortes tendances. Elle a l'avantage de suivre les tendances en douceur et de près, adaptée à la capture des opportunités de tendance précoces. Elle a également des capacités raisonnables de contrôle des risques pour réduire les pertes dues à de mauvais signaux et à des coups de fouet. Avec le réglage des paramètres et les ajouts de stop loss, elle peut obtenir une performance stable. En tant que stratégie de suivi de tendance polyvalente adaptée à différents produits et marchés, elle mérite une bonne attention et une bonne application des traders quant.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("HiLo Activator with ADX", shorttitle="HASB_ADX", overlay=true) // Parameters for the HiLo Activator length_ha = input(14, title="HiLo Activator Period") offset_ha = input(0, title="Offset") trigger_ha = input(1, title="Trigger for Buy/Sell") // Parameters for ADX adx_length = input(14, title="ADX Period", minval=1) adx_threshold = input(25, title="ADX Threshold") di_threshold = input(50, title="DI Threshold") // Parameter for choosing the number of candles for backtest backtest_candles = input(1000, title="Number of Candles for Backtest", minval=1) // Function to get backtest data getBacktestData() => var float data = na if bar_index >= backtest_candles data := security(syminfo.tickerid, "D", close[backtest_candles]) data // HiLo Activator calculations ha = (highest(high, length_ha) + lowest(low, length_ha)) / 2 // ADX calculations trh = high - high[1] trl = low[1] - low tr = max(trh, trl) atr = sma(tr, adx_length) plus_dm = high - high[1] > low[1] - low ? max(high - high[1], 0) : 0 minus_dm = low[1] - low > high - high[1] ? max(low[1] - low, 0) : 0 smoothed_plus_dm = sma(plus_dm, adx_length) smoothed_minus_dm = sma(minus_dm, adx_length) di_plus = 100 * (smoothed_plus_dm / atr) di_minus = 100 * (smoothed_minus_dm / atr) dx = 100 * abs(di_plus - di_minus) / (di_plus + di_minus) adx = sma(dx, adx_length) // Buy and Sell signals based on HiLo Activator and ADX signalLong = crossover(close, ha) and adx > adx_threshold and di_plus > di_threshold signalShort = crossunder(close, ha) and adx > adx_threshold and di_minus > di_threshold // Plot HiLo Activator and ADX plot(ha, color=color.blue, title="HiLo Activator") plot(offset_ha, color=color.red, style=plot.style_histogram, title="Offset") plot(adx, color=color.purple, title="ADX") // Backtest strategy strategy.entry("Buy", strategy.long, when = signalLong) strategy.entry("Sell", strategy.short, when = signalShort) strategy.close("Buy", when = signalShort) strategy.close("Sell", when = signalLong) // Accuracy percentage var accuracy = 0.0 var totalTrades = 0 var winningTrades = 0 if (signalLong or signalShort) totalTrades := totalTrades + 1 if (signalLong and (not na(signalLong[1]) and (not signalLong[1]))) winningTrades := winningTrades + 1 if (signalShort and (not na(signalShort[1]) and (not signalShort[1]))) winningTrades := winningTrades + 1 accuracy := totalTrades > 0 ? (winningTrades / totalTrades) * 100 : 0 // Plot accuracy percentage on the chart plot(accuracy, title="Accuracy Percentage", color=color.purple, style=plot.style_histogram)