Stratégie de trading quantitative Double MACD


Date de création: 2023-11-13 18:04:07 Dernière modification: 2023-11-13 18:04:07
Copier: 0 Nombre de clics: 1057
1
Suivre
1617
Abonnés

Stratégie de trading quantitative Double MACD

Aperçu

La stratégie utilise une combinaison de deux systèmes de courbe moyenne EMA et d’indicateurs RSI pour aider à déterminer les tendances du marché tout en émettant des signaux de négociation. Elle fait partie de la stratégie de suivi des tendances. La stratégie est simple et facile à utiliser et s’applique à une variété d’indices à capitaux importants et de monnaies numériques.

Principe de stratégie

La stratégie utilise deux MACD de paramètres différents comme indicateurs de négociation principaux. Le premier MACD utilise une moyenne courte de 10 cycles et une moyenne longue de 22 cycles, avec une moyenne secondaire de 9 cycles. Le second MACD utilise une moyenne courte de 21 cycles et une moyenne longue de 45 cycles, avec une moyenne secondaire de 20 cycles.

Un signal d’achat est émis lorsque la première ligne DIFF du MACD traverse l’axe zéro et un signal de vente lorsque la ligne DIFF du deuxième MACD traverse l’axe zéro. Le signal émis par la deuxième ligne DIFF du MACD sert à confirmer le premier signal MACD.

En même temps, la stratégie utilise la formule de calcul de la dynamique des prix pour calculer le prix de clôture + le prix le plus élevé de la dernière ligne K divisé par le prix de clôture + le prix le plus élevé d’une ligne K précédente. Un résultat supérieur à 1 indique qu’il est actuellement en tendance à la hausse, générant un signal d’achat, et vice versa, générant un signal de vente.

Enfin, le K-ligne de Stoch RSI supérieur à 20 confirme également le signal de vente.

Analyse des avantages

La stratégie utilise une combinaison de deux EMA pour juger de la tendance et filtrer efficacement les fausses ruptures. La formule de dynamique d’assistance évite également de produire de faux signaux en raison de la secousse. L’utilisation de l’indicateur RSI de Stoch permet d’émettre des signaux de vente dans les zones de survente des surventeurs et d’éviter de faire un pic.

La stratégie utilise seulement une combinaison simple de quelques indicateurs communs, sans relations logiques trop complexes, très facile à comprendre et à modifier. La configuration des paramètres est également très universelle, sans avoir besoin d’être optimisée pour différentes variétés, très adaptable.

Selon les résultats de la retrospective, la stratégie a obtenu de bons rendements cumulés sur plusieurs variétés telles que les indices boursiers, les monnaies numériques, etc., et le contrôle de retrait maximal est idéal. Elle peut être utilisée comme une stratégie de suivi de tendance très générale.

Analyse des risques

Le principal risque de cette stratégie réside dans l’utilisation d’une courbe de jugement, susceptible d’une whipsaw lors d’une forte fluctuation des prix, entraînant une perte. De plus, aucun arrêt de perte n’a été mis en place pour contrôler les pertes individuelles.

L’effet du Stoch RSI sur les jugements de survente n’est pas très souhaitable et il est facile de manquer un signal de reprise.

Si le prix chute fortement mais que l’indicateur MACD n’a pas encore formé de fourchette morte, la stratégie permet de maintenir la perte de position.

Direction d’optimisation

Vous pouvez envisager de mettre en place des arrêts de perte pour contrôler les pertes individuelles. Par exemple, mettre en place des arrêts ATR ou des arrêts de perte sur la moyenne du prix de clôture le plus bas.

D’autres indicateurs peuvent être ajoutés pour aider, par exemple en combinant l’indicateur KD ou l’indicateur de la ceinture de Brin avec le RSI de Stoch, pour un jugement plus fiable sur les surachats et les surventeurs.

L’analyse du volume de transactions peut être augmentée, par exemple en augmentant le stop-loss lors d’une réduction importante du stock ou en évitant la construction d’un stock en cas de capacité insuffisante.

Il est possible de tester différentes combinaisons de paramètres pour optimiser les paramètres de cycle du MACD. Il est également possible de tester l’ajout de MACD de différents cycles pour constituer une confirmation multiple.

Résumer

L’idée générale de la stratégie de négociation quantifiée du double MACD est simple et claire. Elle utilise une combinaison de deux EMA pour juger de la tendance, accompagnée d’un indicateur de dynamique pour éviter les signaux erronés et sélectionner les meilleurs moments de négociation. Les paramètres de la stratégie sont généraux et la stabilité de la performance réelle peut être ajustée de manière optimale en tant que stratégie de base.

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

//@version=2
strategy("Multiple MACD RSI simple strategy", overlay=true, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)

fastLength = input(10)
slowlength = input(22)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = sma(MACD, MACDLength)
delta = MACD - aMACD

fastLength2 = input(21)
slowlength2 = input(45)
MACDLength2 = input(20)

MACD2 = ema(open, fastLength2) - ema(open, slowlength2)
aMACD2 = sma(MACD2, MACDLength2)
delta2 = MACD2 - aMACD2


uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])

smoothK = input(2, minval=1, title="K smoothing Stoch RSI")
smoothD = input(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = input(7, minval=1, title="RSI Length")
lengthStoch = input(8, minval=1, title="Stochastic Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
h0 = hline(80)
h1 = hline(20)

yearin = input(2018, title="Year to start backtesting from")

if (delta > 0) and (year>=yearin) and (delta2 > 0) and (uptrend > 1)
    strategy.entry("buy", strategy.long, comment="buy")

if (delta < 0) and (year>=yearin) and (delta2 < 0) and (downtrend < 1) and (d > 20)
    strategy.entry("sell", strategy.short, comment="sell")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)