Stratégie de suivi bidirectionnel Momentum Breakout


Date de création: 2023-12-18 10:47:46 Dernière modification: 2023-12-18 10:47:46
Copier: 0 Nombre de clics: 625
1
Suivre
1621
Abonnés

Stratégie de suivi bidirectionnel Momentum Breakout

Aperçu

Cette stratégie, combinée à l’utilisation d’indicateurs de dynamique et d’indicateurs de suivi bidirectionnel, capture les signaux de rupture dans les tendances fortes et permet le suivi de la tendance. Faire plus lorsque le prix se déplace vers le haut et faire moins lorsque le prix se déplace vers le bas appartient à la catégorie des stratégies de suivi de la tendance.

Principe de stratégie

  1. L’indicateur utilise l’indicateur d’activateur HiLo pour calculer le prix intermédiaire, qui prend le milieu entre le prix le plus élevé et le prix le plus bas comme prix intermédiaire. Il génère un signal d’achat lorsque la hausse du prix franchit le prix intermédiaire et un signal de vente lorsque la baisse du prix franchit le prix intermédiaire.

  2. L’indice de tendance moyenne (ADX) est utilisé pour déterminer la force d’une tendance. Plus la valeur de l’ADX est grande, plus la tendance est forte. Cette stratégie est associée à l’utilisation d’un ADX à une certaine valeur de seuil pour filtrer le signal et ne générer un signal que si la tendance est suffisamment forte.

  3. Les indicateurs DI+ et DI- indiquent respectivement la puissance de plusieurs têtes et la puissance de tête vide. Cette stratégie s’accompagne d’un certain seuil de DI+ et de DI- pour confirmer la puissance de plusieurs têtes et de tête vide, afin d’éviter de faux signaux.

  4. Un signal d’achat est généré lorsque le prix franchit le cours moyen à la hausse, l’ADX est supérieur à la dépréciation et le DI+ est supérieur à la dépréciation; un signal de vente est généré lorsque le prix franchit le cours moyen à la baisse, l’ADX est supérieur à la dépréciation et le DI- est supérieur à la dépréciation.

Analyse des avantages

Cette stratégie, combinant les avantages des indicateurs de dynamique et des indicateurs de tendance, permet de capturer les ruptures de prix au début du développement d’une tendance, afin de suivre la tendance de près. En outre, les conditions de filtrage de tendance sont strictes, ce qui permet d’éviter les faux signaux des marchés de consolidation et des marchés de choc.

Comparativement à l’utilisation d’un seul indicateur de dynamique, cette stratégie ajoute un jugement sur la force de la tendance lors de la génération du signal, ce qui réduit les signaux erronés et augmente la probabilité de gagner. Comparativement à l’utilisation d’un seul indicateur de suivi de tendance, cette stratégie génère un signal de rupture, ce qui permet d’entrer plus tôt dans la tendance.

Dans l’ensemble, les stratégies permettent de suivre la tendance, d’entrer et de sortir en temps opportun, d’éviter les dérapages et de réduire les pertes en cas de revers de tendance.

Analyse des risques

Il existe un certain risque de whipsaw dans cette stratégie, à savoir qu’un certain degré de rétroaction des prix peut se produire et générer un signal inversé. En outre, l’utilisation des conditions de filtrage ADX et DI peut manquer une partie des premiers jours de fonctionnement.

Pour réduire le risque de whipsaw, il est possible d’ajuster les paramètres de l’activateur HiLo de manière appropriée, augmentant ainsi l’amplitude de percée. Pour obtenir plus d’opportunités, il est possible de réduire les exigences de seuil d’ADX et de DI, mais la qualité du signal doit être mise en balance.

En outre, les utilisateurs doivent prêter attention aux différences dans les paramètres de configuration entre les variétés et les environnements de marché. En général, les marchandises en vrac nécessitent des seuils plus élevés; les actions et les devises peuvent utiliser des seuils plus bas.

Direction d’optimisation

Cette stratégie peut être optimisée en ajustant les paramètres, les principaux axes d’optimisation incluent:

  1. Ajustez la fréquence et la fréquence d’activation de l’activateur HiLo pour équilibrer le risque de whipsaw et le temps d’entrée.

  2. Ajustez les exigences de cycle et de seuil ADX pour équilibrer la qualité du signal et la fréquence d’entrée.

  3. Ajustez les seuils pour les DI à tête multiple et à tête vide, respectivement, pour distinguer les différences environnementales entre les deux.

  4. Ajouter des stratégies de stop loss et définir des points de stop loss pour contrôler les pertes individuelles.

  5. Optimisation de la stabilité globale de la stratégie en combinaison avec d’autres indicateurs auxiliaires.

Résumer

Cette stratégie prend en compte les indicateurs de dynamique et les indicateurs de tendance, générant des signaux d’achat et de vente dans des tendances fortes. Elle a les caractéristiques d’une tendance tendancielle et serrée, adaptée à la capture d’opportunités de tendance précoce.

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