
Cette stratégie permet de juger avec précision les tendances en combinant l’utilisation d’une double moyenne mobile de Hull, d’une moyenne mobile pondérée en capacité, d’une MACD et d’une indice de force réelle. Elle est capable de s’adapter automatiquement aux changements de l’environnement du marché et a une forte adaptabilité.
L’indicateur central de cette stratégie est la moyenne mobile double Hull, qui est calculée par le contrôle de deux paramètres, keh et teh. Ces deux paramètres déterminent respectivement la périodicité des lignes rapides et lentes. Les lignes rapides et lentes constituent des fourches dorées pour juger de la tendance actuelle.
L’indicateur de jugement auxiliaire a une moyenne mobile pondérée en capacité meh1 . Quand le prix est supérieur à meh1, c’est un bullish; quand le prix est inférieur à meh1, c’est un bearish .
Un autre indicateur de jugement auxiliaire est le MACD. Il est obtenu en réduisant la moyenne mobile rapide pour obtenir le MACD, puis en utilisant la moyenne mobile du MACD pour obtenir la ligne de signal.
Le dernier indicateur de jugement auxiliaire est le TSI, qui est obtenu par un double calcul lisse du taux de variation des prix. La taille de sa valeur absolue représente l’élan de variation des prix.
La synthèse de ces indicateurs permet de déterminer avec précision les tendances et d’ajuster automatiquement les paramètres pour être en phase avec le marché.
L’utilisation de la moyenne mobile double Hull comme indicateur principal de jugement, complétée par une combinaison de plusieurs autres indicateurs, peut améliorer l’exactitude du jugement et réduire les faux signaux.
L’application de l’indicateur TSI permet de déterminer le moment de la mise en marché et de la sortie de marché et de contrôler les risques.
Les paramètres peuvent être ajustés de manière autonome, ils sont adaptatifs et peuvent s’adapter automatiquement aux changements du marché.
L’utilisation d’une combinaison d’indicateurs et de paramètres qui s’adaptent à vous rend la stratégie stable et rentable.
Bien que l’indicateur TSI ait été ajouté pour juger du moment, l’indicateur utilisé par l’algorithme est le type de tendance qui augmente les fluctuations des gains et des pertes en cas de choc sur le marché des robinets.
Une mauvaise configuration des paramètres peut entraîner l’échec de la stratégie. Il est nécessaire de définir les paramètres de manière raisonnable en fonction de son expérience.
Les portefeuilles multi-indicateurs augmentent le volume de calcul, les stocks et les périodes de temps avec un volume de données élevé sont plus susceptibles de faire des erreurs, et il est nécessaire de contrôler la portée des données.
Il est nécessaire de surveiller l’efficacité du calcul des indicateurs pour éviter la perturbation des données anormales.
Il est possible d’ajouter d’autres indicateurs auxiliaires, tels que l’indicateur BOLL, afin de rendre le signal plus précis et plus fiable.
Optimiser la logique d’entrée et de sortie, définir des conditions de stop-loss et contrôler les pertes individuelles.
La formation et l’optimisation des paramètres des variétés commerciales afin de les adapter mieux aux différentes variétés.
Ajout d’un module d’adaptation des paramètres permettant aux paramètres de stratégie de s’ajuster automatiquement en fonction des résultats des transactions récentes.
Cette stratégie intègre les avantages de plusieurs indicateurs, utilise une combinaison d’indicateurs pour juger de la direction de la tendance, tout en contrôlant les risques, ce qui améliore l’exactitude du jugement. Grâce à l’optimisation des paramètres et à l’optimisation de la logique, la stratégie peut être mieux adaptée aux changements du marché et obtenir plus de rendement en réduisant les pertes continues.
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Quad-HullMA-cross & VWMA & MacD & TSI combination <<<<< by SeaSide420 >>>>>>
strategy("MultiCross420", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
keh=input(title="Double HullMA 1",defval=7, minval=1)
teh=input(title="Double HullMA 2",defval=14, minval=1)
meh=input(title="VWMA",defval=1, minval=1)
meh1=vwma(close,round(meh))
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
n2ma3=2*wma(close,round(teh/2))
nma2=wma(close,teh)
diff2=n2ma3-nma2,sqn2=round(sqrt(teh))
n2ma4=2*wma(close[2],round(teh/2))
nma3=wma(close[2],teh)
diff3=n2ma4-nma3,sqn3=round(sqrt(teh))
n3=wma(diff2,sqn2)
n4=wma(diff3,sqn3)
fastLength = input(title="MacD fastLength", defval=7)
slowlength = input(title="MacD slowlength", defval=14)
MACDLength = input(title="MacD Length", defval=3)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
a1=plot(n1,color=c),a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = cross, color=b, linewidth = 3)
a3=plot(n3,color=c),a4=plot(n4,color=c)
plot(cross(n3, n4) ? n1 : na, style = cross, color=b, linewidth = 3)
//a5=plot(meh1,color=c)
long = input(title="TSI Long Length", defval=5)
short = input(title="TSI Short Length", defval=3)
signal = input(title="TSI Signal Length", defval=2)
linebuy = input(title="TSI Upper Line", defval=4)
linesell = input(title="TSI Lower Line", defval=-4)
price = close
double_smooth(src, long, short) =>
fist_smooth = ema(src, long)
ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
closelong = n1<n2 and n3<n4 and n1>meh1
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and n3>n4 and n1<meh1
if (closeshort)
strategy.close("Short")
longCondition = strategy.opentrades<1 and n1>n2 and MACD>aMACD and n1<meh1 and n3>n4 and ema(tsi_value, signal)>linesell
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = strategy.opentrades<1 and n1<n2 and MACD<aMACD and n1>meh1 and n3<n4 and ema(tsi_value, signal)<linebuy
if (shortCondition)
strategy.entry("Short",strategy.short)