
Cette stratégie combine trois indicateurs: l’indice de force relative (TSI), l’indice de trajectoire des marchandises (CCI) et la moyenne mobile de Hull (MA) pour former une stratégie de trading de type suivi de la tendance. Elle permet de suivre les transactions en longues lignes sur n’importe quelle variété de transactions dans un délai d’une heure ou plus.
La stratégie est basée sur deux indicateurs principaux, le TSI et le CCI, qui déterminent la tendance du marché et les situations de surachat et de surachète, et le Hull MA, qui détermine la tendance des prix à moyen terme.
Plus précisément, lorsque la ligne rapide du TSI traverse la ligne lente, l’indicateur CCI traverse +20&&n1 et augmente, faites plus; lorsque la ligne rapide du TSI traverse la ligne lente, l’indicateur CCI traverse -20&n1 et diminue, faites moins. La Hull MA est utilisée pour filtrer les tendances intermédiaires, ne faisant plus que lorsque le prix est inférieur à la Hull MA et vide lorsque le prix est supérieur à la Hull MA.
Ainsi, la confirmation de différents indicateurs cycliques permet de filtrer efficacement les fausses ruptures et de suivre les tendances de la ligne moyenne longue.
Il s’agit d’une stratégie de suivi de tendances relativement stable et efficace, avec les principaux avantages suivants:
L’utilisation du TSI pour déterminer la direction des tendances à long terme est plus fiable et évite d’être perturbée par le bruit des marchés à court terme;
L’ajout de l’indicateur CCI permet de détecter les sur-achats et les sur-vente et de filtrer certains faux signaux.
Les jugements de Hull MA ont permis d’obtenir des points d’entrée plus précis, ce qui a considérablement amélioré les chances de gagner.
L’intégration de différents paramètres permet d’améliorer la fiabilité du signal et de réduire la probabilité d’interférence.
Les paramètres de la stratégie sont flexibles et peuvent être optimisés en fonction des cycles de marché.
Malgré la stabilité de cette stratégie, il y a des risques à prendre en compte:
La situation risque de se retourner et de ne pas s’arrêter rapidement, ce qui entraînerait de lourdes pertes.
Les indicateurs TSIDiff et CCI peuvent présenter de faux signaux et des retardations, et manquer certains points d’entrée;
Une mauvaise configuration des paramètres peut également entraîner une fréquence de transaction trop élevée ou une baisse de la qualité du signal.
La réponse:
Ajuster les points d’arrêt de manière appropriée pour contrôler les pertes individuelles;
d’améliorer l’exactitude des signaux en les confirmant, le cas échéant, en combinaison avec d’autres indicateurs;
La stabilité de la stratégie est assurée en fonction des paramètres d’ajustement du marché.
La stratégie peut également être optimisée dans les domaines suivants:
L’objectif est d’essayer de trouver la meilleure combinaison de paramètres pour trouver la meilleure correspondance.
L’intégration d’algorithmes d’apprentissage automatique permettant une optimisation adaptative des paramètres;
L’ajout d’un module de gestion de fonds pour une plus grande stabilité des bénéfices;
Le filtrage de l’image est un outil qui permet d’augmenter le taux de réussite des stratégies.
C’est ce qui sera le point de départ de l’optimisation.
Cette stratégie utilise les trois indicateurs TSI, CCI et Hull MA pour former une stratégie de suivi de tendance plus stable et plus efficace. Elle a réussi à appliquer les avantages des indicateurs de plusieurs périodes de temps, améliorant la qualité du signal. La prochaine étape consiste à améliorer encore la stabilité et la rentabilité de la stratégie par des moyens tels que l’optimisation des paramètres et l’amélioration des filtres.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="TSI CCI Hull", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=25)
price=input(title="Source",type=input.source,defval=open)
Period=input(25, minval=1)
lineupper = input(title="Upper Line", type=input.integer, defval=100)
linelower = input(title="Lower Line", type=input.integer, defval=-100)
p=price
length= Period
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)
keh = tsi_value*5 > linelower ? color.red : color.lime
teh = ema(tsi_value*5, signal*5) > lineupper ? color.red : color.lime
meh = ema(tsi_value*5, signal*5) > tsi_value*5 ? color.red : color.lime
i1=plot(tsi_value*5, title="TSI Value", color=color.black, linewidth=1,transp=100)
i2=plot(ema(tsi_value*5, signal*5), title="TSI Signal", color=color.black, linewidth=1,transp=100)
fill(i1,i2,color=meh,transp=85)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.black, linewidth=10)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.white, linewidth=8,transp=0)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=meh, linewidth=5)
n2ma = 2 * wma(p, round(length / 2))
nma = wma(p, length)
diff = n2ma - nma
sqn = round(sqrt(length))
n1 = wma(diff, sqn)
cci = (p - n1) / (0.015 * dev(p, length))
c = cci > 0 ? color.lime : color.red
c1 = cci > 20 ? color.lime : color.silver
c2 = cci < -20 ? color.red : color.silver
cc=plot(cci, color=c, title="CCI Line", linewidth=2)
cc2=plot(cci[1], color=color.gray, linewidth=1,transp=100)
fill(cc,cc2,color=c,transp=85)
plot(cross(20, cci) ? 20 : na, style=plot.style_cross,title="CCI cross UP", color=c1, linewidth=2,transp=100,offset=-2)
plot(cross(-20, cci) ? -20 : na, style=plot.style_cross,title="CCI cross down", color=c2, linewidth=2,transp=100,offset=-2)
TSI1=ema(tsi_value*5, signal*5)
TSI2=ema(tsi_value*5, signal*5)[2]
hullma_smoothed = wma(2*wma(n1, Period/2)-wma(n1, Period), round(sqrt(Period)))
//plot(hullma_smoothed*200)
longCondition = TSI1>TSI2 and hullma_smoothed<price and cci>0
if (longCondition and cci>cci[1] and cci > 0 and n1>n1[1])
strategy.entry("Buy Here", strategy.long)
shortCondition = TSI1<TSI2 and hullma_smoothed>price and cci<0
if (shortCondition and cci<cci[1] and cci < 0 and n1<n1[1])
strategy.entry("Sell Here", strategy.short)