
La stratégie est une stratégie de trading quantitatif composite basée sur les indicateurs MACD. Elle utilise de manière synthétique plusieurs indicateurs tels que MACD, KDJ, etc. pour générer des signaux de trading via une combinaison entre les indicateurs.
Le MACD représente l’indice des moyennes mobiles, un indicateur de suivi des tendances. Il est composé d’une moyenne mobile rapide (EMA) et d’une moyenne mobile lente (EMA). Le paramètre par défaut de la ligne rapide est de 12 et le paramètre par défaut de la ligne lente est de 26. La stratégie calcule la différence entre les deux lignes EMA, soit DIF.
La stratégie a également introduit l’indicateur KDJ. Les indicateurs KDJ comprennent les valeurs K, D et J. Les valeurs K sont des valeurs aléatoires, les valeurs D sont des moyennes mobiles des valeurs K et les valeurs J sont des valeurs de certitude. L’indicateur KDJ reflète l’état de survente du marché.
La stratégie utilise de multiples indicateurs, tels que MACD et KDJ, pour filtrer efficacement le bruit du marché et identifier la direction de la tendance. L’indicateur MACD peut capturer en temps opportun les variations de prix à court terme et l’indicateur KDJ peut confirmer les tendances à moyen et long terme. La combinaison des deux peut équilibrer la relation entre la recherche d’agilité et la stabilité.
En outre, la stratégie a ajouté un sélecteur de temps, qui permet de choisir la période de temps de la réévaluation. Cela offre une plus grande flexibilité pour évaluer la performance de la stratégie.
Lorsque le marché est en mouvement pendant une période prolongée, le MACD peut faire de nombreux faux signaux. Il est alors possible d’ajuster les paramètres de la ligne EMA de manière appropriée pour filtrer une partie du bruit.
Une mauvaise configuration des paramètres de l’indicateur KDJ peut également affecter les résultats. Vous pouvez tester plusieurs ensembles de paramètres et choisir une combinaison de paramètres plus stable.
Le mauvais choix du temps de rétroaction peut surestimer ou sous-estimer les gains de la stratégie. Un intervalle de temps représentatif doit être choisi pour le test.
Cette stratégie peut être optimisée dans les domaines suivants:
Augmentation du mécanisme de stop-loss. Forcer un stop-loss à la clôture de la position lorsque le prix atteint la limite de stop-loss.
Ajout de filtres pour les indicateurs. En combinaison avec d’autres indicateurs tels que le RSI, les bandes de Brin, etc., il est possible d’améliorer la précision du signal.
Optimiser les paramètres de l’indicateur. Modifier la combinaison des paramètres EMA et KDJ pour trouver le paramètre optimal.
Optimisation automatique par l’utilisation de la technologie d’apprentissage automatique.
Cette stratégie est une stratégie quantifiée typique basée sur le suivi des tendances, complétée par le contrôle des surachats et des surventeurs. Elle intègre les avantages de plusieurs indicateurs, ce qui permet d’équilibrer efficacement la stabilité et la sensibilité.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="New Renaissance", shorttitle="New Renaissance", overlay=true,initial_capital=10000)
source = close
fastlength=input(12, minval=1)
slowlength=input(26,minval=1)
signallength=input(9,minval=1)
// === Defining the MACD oscillator
fastMA=ema(source,fastlength)
slowMA=ema(source,slowlength)
MACD=fastMA-slowMA
signal=sma(MACD,signallength)
delta=MACD-signal
// === Buy and Sell Signals ===
buy=crossover(MACD, signal)
sell=crossunder(MACD, signal)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2018, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 12, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 31, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2020, title = "Thru Year", type = input.integer, minval = 1970)
// === INPUT SHOW PLOT ===
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell) // exit long when "within window of time" AND crossunder