
Aperçu
La stratégie utilise un ensemble d’indicateurs techniques, notamment les moyennes mobiles (EMA), les moyennes mobiles convergentes et divergentes (MACD), les SuperTrend, l’indice de direction moyenne (ADX) et l’amplitude réelle moyenne (ATR), pour déterminer la tendance du marché, la volatilité et les signaux de négociation grâce à une combinaison de ces indicateurs, dans l’espoir d’obtenir de bons rendements dans les transactions de crypto-monnaie. La stratégie utilise les avantages des différents indicateurs pour trouver un équilibre entre la détermination de la tendance, la détermination des oscillations et la maîtrise du risque, afin de fournir aux traders des signaux de négociation fiables.
Principe de stratégie
- L’utilisation d’un croisement entre les EMA du 12e et du 26e jour comme base de jugement de la tendance indique une tendance à la hausse lorsque l’EMA du 12e jour traverse l’EMA du 26e jour et, à l’inverse, une tendance à la baisse.
- Utilisez l’indicateur MACD comme jugement auxiliaire, ouvrez une position en combinaison avec un signal EMA à plusieurs têtes lorsque le graphique MACD est supérieur à 0; ouvrez une position en combinaison avec un signal EMA à tête nue lorsque le graphique MACD est inférieur à 0.
- Pour déterminer si le marché est en tendance, on utilise l’indicateur ADX, qui est considéré comme étant en tendance lorsque l’ADX est supérieur à 15.
- Pour juger de la volatilité du marché, on utilise l’indicateur ATR. On considère que le marché est dans un état de forte volatilité lorsque l’ATR est supérieur à 0,5 fois l’ATR du 20e jour.
- L’introduction de l’indicateur SuperTrend comme condition de stop-loss, qui élimine les positions de plus en plus élevées lorsque les prix sont inférieurs à la SuperTrend, et les positions de plus en plus basses lorsque les prix sont supérieurs à la SuperTrend.
- Il est possible d’ouvrir une position en fonction d’un signal de plus ou de moins lorsque les conditions EMA, MACD, ADX et ATR sont remplies. Il est possible de fermer une position en cas de déclenchement des conditions de stop loss du SuperTrend.
Avantages stratégiques
- Portfolio multi-indicateurs: La stratégie utilise un ensemble d’indicateurs techniques pour analyser le marché à partir de plusieurs dimensions, telles que la tendance, la volatilité et le contrôle du risque, ce qui améliore la fiabilité des signaux de négociation.
- Détermination des tendances: grâce à la combinaison des EMA et MACD, la stratégie peut mieux déterminer la direction des tendances du marché et fournir une base pour les décisions de négociation.
- Contrôle des risques: l’introduction des indicateurs ADX et ATR permet de juger de la force et de la volatilité des tendances du marché et de contrôler dans une certaine mesure le risque de négociation.
- Le mécanisme d’arrêt de la perte: l’utilisation de l’indicateur SuperTrend comme condition d’arrêt permet de limiter efficacement la perte maximale d’une seule transaction et de protéger les fonds de transaction.
- Flexibilité des paramètres: les paramètres des indicateurs de la stratégie peuvent être ajustés de manière flexible en fonction des différentes conditions du marché et des variétés de transactions, afin de s’adapter à l’évolution des conditions du marché.
Risque stratégique
- Optimisation des paramètres: la stratégie implique plusieurs indicateurs et paramètres, tels que les cycles EMA, les paramètres MACD, les seuils ADX, etc. Le choix de ces paramètres a une influence importante sur l’efficacité de la stratégie et nécessite une optimisation et un débogage répétés des paramètres.
- Adaptabilité au marché: la stratégie peut être défectueuse dans certaines conditions du marché, comme un marché en tremblement ou un tournant de tendance, au cours duquel la stratégie peut envoyer de faux signaux de négociation.
- Points de glissement et coûts de transaction: la stratégie peut générer des signaux de transaction plus fréquents dans des marchés très volatils, entraînant des points de glissement et des coûts de transaction plus élevés, affectant les gains de la stratégie.
- Limitation de la rétroaction: les résultats de la rétroaction de la stratégie peuvent être limités, la situation du marché dans les transactions réelles peut être différente des données historiques et la performance de la stratégie dans les opérations en direct peut ne pas être entièrement conforme aux résultats de la rétroaction.
Orientation de l’optimisation de la stratégie
- Optimisation des paramètres dynamiques: optimisation dynamique des paramètres clés de la stratégie pour différentes conditions de marché et types de transactions, afin d’améliorer l’adaptabilité et la stabilité de la stratégie.
- Introduction d’indicateurs de l’humeur du marché: sur la base d’indicateurs existants, l’introduction d’indicateurs qui reflètent l’humeur du marché, tels que l’indice de panique (VIX), etc., permettent une analyse quantitative de l’humeur du marché et aident les décisions de négociation.
- Amélioration des mécanismes de stop loss: sur la base des stop loss de SuperTrend, l’introduction d’autres méthodes de stop loss, telles que le stop loss mobile, le stop loss en pourcentage, etc., améliore la flexibilité et l’efficacité du stop loss.
- Optimisation de la gestion des positions: en fonction de la force et de la volatilité des tendances du marché, ajustez dynamiquement la taille des positions, augmentez les positions lorsque les tendances sont claires, réduisez les positions dans les marchés instables et améliorez l’efficacité de l’utilisation des fonds.
- Analyse de plusieurs fuseaux horaires: combinaison de signaux de différentes fuseaux horaires, tels que le jour, le quart d’heure, etc., pour une confirmation multiple des signaux de transaction, améliorant ainsi la fiabilité du signal.
Résumer
La stratégie EMA-MACD-SuperTrend-ADX-ATR est une stratégie de négociation quantitative qui utilise de multiples indicateurs techniques. Grâce à une combinaison d’indicateurs tels que EMA, MACD, ADX et ATR, la stratégie est capable d’analyser le marché à partir de plusieurs dimensions telles que la tendance, les chocs et le contrôle du risque, afin de fournir aux traders des signaux de négociation fiables. L’avantage de la stratégie réside dans la combinaison de plusieurs indicateurs, le jugement de la tendance, le contrôle du risque et les mécanismes d’arrêt des pertes.
Code source de la stratégie
/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-MACD-SuperTrend-ADX-ATR Strategy",
overlay = true,
initial_capital = 1000,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 70)
//MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)
//Plot Candlesticks
candlestickscolor = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252))
plotcandle(open, high, low, close,
color = candlestickscolor,
bordercolor = candlestickscolor)
//EMA
ema12 = ta.ema(close, 12)
ema26 = ta.ema(close, 26)
//Plot EMA
plot(ema26, color= #EE6969, linewidth = 2)
plot(ema12, color= #B4CBF0, linewidth = 2)
//Average Directional Index (ADX) Calculation
trueRange = ta.rma(ta.tr, 14)
plusDM = ta.rma(math.max(high - high[1], 0), 14)
minusDM = ta.rma(math.max(low[1] - low, 0), 14)
plusDI = 100 * ta.rma(plusDM / trueRange, 14)
minusDI = 100 * ta.rma(minusDM / trueRange, 14)
adxValue = 100 *ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI), 14)
//Trend Confirmation (ADX)
trending = adxValue > 15
//Volatility Filter (ATR)
atrValue = ta.atr(14)
volatility = atrValue > 0.5 * ta.atr(20)
//SuperTrend
atrlength = input.int(10, "ATR Length", step = 1)
factor = input.float(3, "Factor", step = 0.1)
[supertrend, direction] = ta.supertrend(factor, atrlength)
supertrend := barstate.isfirst ? na : supertrend
//Plot SuperTrend
uptrend = plot(direction < 0 ? supertrend : na,
"Up Trend", color = color.green, style = plot.style_linebr, linewidth = 1)
downtrend = plot(direction > 0 ? supertrend : na,
"Down Trend", color = color.red, style = plot.style_linebr, linewidth = 1)
bodymiddle = plot(barstate.isfirst ? na : (open + close)/2, "Body Middle", display = display.none)
fill(bodymiddle, uptrend, color.new(color.green, 90), fillgaps = false)
fill(bodymiddle, downtrend, color.new(color.red, 90), fillgaps = false)
//Entry Conditions
longCondition = ta.crossover(ema12, ema26) and trending and volatility and hist > 0
shortCondition = ta.crossunder(ema12, ema26) and trending and volatility and hist < 0
long_SL_Con = ta.crossunder(close, supertrend)
short_SL_Con = ta.crossover(close, supertrend)
//Plot Signal
plotshape(longCondition,
title='Buy', text='Buy',
location= location.belowbar,
style=shape.labelup, size=size.tiny,
color=color.green, textcolor=color.new(color.white, 0))
plotshape(shortCondition,
title='Sell', text='Sell',
location= location.abovebar,
style=shape.labeldown, size=size.tiny,
color=color.red, textcolor=color.new(color.white, 0))
//Backtest
start = timestamp(2020, 1, 1, 0, 0, 0)
end = timestamp(2024, 1, 1, 0, 0, 0)
backtestperiod = time >= start and time <= end
if longCondition and backtestperiod
strategy.entry("Buy", strategy.long)
if long_SL_Con and backtestperiod
strategy.close("Buy")
if shortCondition and backtestperiod
strategy.entry("Sell", strategy.short)
if short_SL_Con and backtestperiod
strategy.close("Sell")