Stratégie de trading quantitative basée sur ADX, BB %B, AO et EMA


Date de création: 2023-12-11 16:24:11 Dernière modification: 2023-12-11 16:24:11
Copier: 0 Nombre de clics: 782
1
Suivre
1621
Abonnés

Stratégie de trading quantitative basée sur ADX, BB %B, AO et EMA

Aperçu

Cette stratégie est connue sous le nom de stratégie de suivi de la dynamique des quatre facteurs de la courbe. Cette stratégie utilise l’indicateur de mouvement de la direction moyenne ((ADX) pour déterminer la direction de la tendance, le pourcentage de la bande de Bryn pour déterminer la relative faiblesse des actions, l’équilibre magique ((AO) pour déterminer la dynamique et les moyennes mobiles des indices de différentes périodes, pour déterminer la marge de manœuvre, pour suivre la dynamique des prix des actions, pour suivre les actions fortes et éviter les actions faibles.

Principe de stratégie

La stratégie utilise quatre indicateurs techniques différents pour déterminer le moment de l’achat et de la vente. La logique de jugement spécifique est la suivante:

Conditions d’entrée multiples: EMA de 21 jours sur une EMA de 5 jours, EMA de 200 jours sur une EMA de 50 jours, BB % B supérieur à la ligne de survente définie, AO supérieur à la valeur positive définie, ADX supérieur à la valeur définie.

Conditions d’entrée à vide: 21 jours sous l’EMA, 50 jours sous l’EMA, 200 jours sous l’EMA, BB % B inférieur à la ligne de dépassement définie, AO inférieur à la valeur négative définie, ADX supérieur à la valeur définie.

Analyse des forces stratégiques

Cette stratégie combine plusieurs indicateurs pour déterminer la direction de la tendance et la force relative des stocks, ce qui permet de filtrer efficacement les fausses percées. Les avantages spécifiques sont les suivants:

  1. L’indicateur ADX permet d’évaluer efficacement l’existence d’une tendance et son intensité, et évite de prendre des positions fréquemment dans des marchés instables.

  2. L’indicateur BB %B permet de déterminer si une action se trouve dans une zone de creux ou de creux, ce qui permet d’éviter efficacement la poursuite des hauts et des bas.

  3. L’indicateur AO détermine s’il existe un soutien dynamique fort lors de l’achat, garantissant l’efficacité de la percée;

  4. La combinaison de la fourche dorée et de la fourche morte de l’indicateur EMA permet de juger de la direction du marché et d’éviter les positions négatives.

Dans l’ensemble, cette stratégie permet de contrôler efficacement les risques de transaction et de suivre les acteurs les plus forts du marché.

Analyse des risques

Malgré l’utilisation intégrée de plusieurs indicateurs pour maîtriser les risques, la stratégie présente certains risques:

  1. Les combinaisons d’indicateurs à plusieurs indices sont sensibles à l’ajustement des paramètres, et les combinaisons de paramètres inappropriées peuvent ne pas être efficaces.

  2. Il est possible de manquer le véritable point de basculement du marché en cherchant trop à la dynamique. Le cycle de détention doit être correctement contrôlé et les arrêts de perte doivent être effectués à temps.

  3. Les indicateurs tels que l’EMA sont retardés et peuvent ne pas refléter l’impact d’un événement soudain en temps opportun. Ils doivent être combinés avec d’autres indicateurs ou réduire le cycle de l’EMA de manière appropriée.

  4. Les événements majeurs soudains peuvent entraîner une dispersion de l’indicateur et doivent être combinés avec une analyse fondamentale, qui peut être utilisée pour arrêter la stratégie si nécessaire.

Direction d’optimisation

La stratégie peut également être optimisée dans les domaines suivants:

  1. L’utilisation de l’apprentissage automatique et d’autres méthodes pour trouver la meilleure combinaison de paramètres.

  2. L’ajout d’autres indicateurs de tendance de jugement, tels que le CCI, le MACD, etc., forme un ensemble d’indicateurs d’acier, ce qui améliore l’exactitude du jugement.

  3. Adhérer à une stratégie de stop loss pour contrôler les pertes individuelles.

  4. Il est important de fixer des délais de tenue pour éviter une avidité excessive.

Résumer

Cette stratégie est appelée la stratégie de suivi de la dynamique des quatre facteurs de la courbe, qui utilise quatre indicateurs ADX, BB % B, AO et EMA pour déterminer le moment d’achat et de vente, permettant de suivre la dynamique des actions fortes. Cette stratégie permet de déterminer efficacement la direction de la tendance et la force relative des actions, de contrôler le risque de négociation. La prochaine étape peut être améliorée par l’optimisation des paramètres, l’ajout d’autres indicateurs et la définition de la durée de la position.

Code source de la stratégie
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//ADX + BB %B + AO + EMA

strategy("ADX + BB %B + AO + EMA", overlay=true, initial_capital=10000)
take_profit_perc = input(title="Take Profit %", type=input.integer, defval=10, minval=1, maxval=100)
stop_loss_perc = input(title="Stop Loss %", type=input.integer, defval=5, minval=1, maxval=100)
bb_overbought = input(title="BB %B Overbought", type=input.integer, defval=75, minval=1, maxval=100)
bb_oversold = input(title="BB %B Oversold", type=input.integer, defval=25, minval=1, maxval=100)
ao_value = input(title="Awesome Oscillator", type=input.integer, defval=2)
adx_value = input(title="ADX", type=input.integer, defval=15)

startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2018, minval=2008, maxval=2200)

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))

ema5 = ema(close, 5)
ema21 = ema(close, 21)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

//BB %B
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)

//Awesome Oscillator
ao = sma(hl2,5) - sma(hl2,34)

// ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

long_strategy = ema5>ema21 and ema50>ema200 and bbr>(bb_overbought/100) and ao>ao_value and sig>adx_value
short_strategy = ema5<ema21 and ema50<ema200 and bbr<(bb_oversold/100) and ao<-ao_value and sig>adx_value

plot(ema5, color=color.blue)
plot(ema21, color=color.aqua)
plot(ema50, color=color.purple)
plot(ema200, color=color.red)
bgcolor(color=long_strategy ? color.green : na, transp=80)
bgcolor(color=short_strategy ? color.purple : na, transp=80)
    
if inDateRange and long_strategy
    strategy.entry("long", strategy.long)
    strategy.exit("exit", "long", stop=close*(100-stop_loss_perc)/100, limit=close*(100+take_profit_perc)/100)
if inDateRange and short_strategy
    strategy.entry("short", strategy.short)
    strategy.exit("exit", "short", stop=close*(100+stop_loss_perc)/100, limit=close*(100-take_profit_perc)/100)