Cette stratégie combine les avantages de la moyenne mobile de Hull et de la moyenne mobile T3 pour concevoir une stratégie de négociation trans-mercantile. Elle peut être utilisée à la fois pour les transactions courtes et pour suivre les tendances sur les longues lignes.
La stratégie est basée principalement sur le calcul des moyennes mobiles Hull et T3.
L'Hull Moving Average (HMA) permet de filtrer efficacement le bruit du marché et de montrer une courbe lisse de tendance des prix grâce à un calcul itératif des moyennes mobiles pondérées. Il est plus sensible aux variations des prix que les moyennes mobiles simples et les moyennes mobiles indicielles, tout en supprimant efficacement les fausses percées.
La T3 permet de rapprocher la moyenne mobile du prix grâce à un certain ajustement hyperparamétrique, tout en réduisant les retards. Elle est capable de répondre plus rapidement aux variations de prix grâce à plusieurs calculs de fluidité indicielle.
Cette stratégie calcule la moyenne des deux comme indicateur principal de négociation. Selon la direction de cette moyenne, le moment d'entrée est déterminé: si la moyenne du cycle actuel est supérieure à celle du cycle précédent, c'est un signal d'entrée à plusieurs têtes; si la moyenne du cycle actuel est inférieure à celle du cycle précédent, c'est un signal d'entrée à vide.
Pour la règle de sortie, si le prix dépasse le point de rupture ou atteint le point de rupture, un mouvement de sortie est effectué; si la direction de la ligne moyenne change, un mouvement de sortie est également effectué.
La stratégie combine les avantages de la moyenne mobile de Hull et de la moyenne mobile T3 en ce qu'elle permet de supprimer le bruit en douceur et de répondre rapidement aux variations de prix pour produire un indicateur global. Elle est ensuite applicable à la fois aux transactions à court et à long terme, permettant d'ajuster de manière flexible les cycles de négociation applicables en ajustant les paramètres du cycle de calcul.
Cette stratégie repose principalement sur des indicateurs homogènes, qui peuvent générer plusieurs faux signaux dans une tendance volatile. En outre, les homogènes ont une certaine latence et peuvent manquer le meilleur moment d'entrée des variations de prix. Il est nécessaire de prendre des précautions pour définir les points de stop-loss et éviter d'être trop lâches ou trop pressés. Enfin, différents devises et cycles de négociation nécessitent des tests de paramètres d'optimisation, qui ne peuvent pas être directement réutilisés.
Vous pouvez envisager d'ajouter d'autres indicateurs auxiliaires, tels que les indicateurs de force et de faiblesse, les indicateurs de volatilité, etc., pour vérifier les signaux de la ligne moyenne, filtrer les faux signaux. Vous pouvez tester différentes combinaisons de lignes moyennes et algorithmes de pondération pour optimiser l'effet de la génération de signaux de la ligne moyenne. Vous pouvez ajouter des stops de perte et des tails de retard adaptés pour gérer dynamiquement le risque. Vous pouvez réévaluer l'optimisation pour différentes devises et cycles de négociation pour trouver la meilleure combinaison de paramètres.
Cette stratégie intègre les avantages de la moyenne mobile Hull et de la moyenne mobile T3 pour former un indicateur global pour déterminer la direction de la tendance. Grâce à l'optimisation des paramètres, la stratégie peut être appliquée de manière flexible à différents cycles de négociation. La stratégie présente certains avantages, mais elle présente également des problèmes tels que le retard de suivi et la production de faux signaux.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title="Swing HULL + T3 avg", shorttitle="Swing HULL T3 AVG", overlay=true) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true ////////////////////////////GENERAL INPUTS////////////////////////////////////// length_Ma= input(defval=50, title="Length MAs", minval=1) //==========HMA getHULLMA(src, len) => hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len))) hullma //==========T3 getT3(src, len, vFactor) => ema1 = ema(src, len) ema2 = ema(ema1,len) ema3 = ema(ema2,len) ema4 = ema(ema3,len) ema5 = ema(ema4,len) ema6 = ema(ema5,len) c1 = -1 * pow(vFactor,3) c2 = 3*pow(vFactor,2) + 3*pow(vFactor,3) c3 = -6*pow(vFactor,2) - 3*vFactor - 3*pow(vFactor,3) c4 = 1 + 3*vFactor + pow(vFactor,3) + 3*pow(vFactor,2) T3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3 T3 hullma = getHULLMA(close,length_Ma) t3 = getT3(close,length_Ma,0.7) avg = (hullma+t3) /2 ////////////////////////////PLOTTING//////////////////////////////////////////// colorado = avg > avg[1]? color.green : color.red plot(avg , title="avg", color=colorado, linewidth = 4) long=avg>avg[1] short=avg<avg[1] tplong=input(0.08, title="TP Long", step=0.01) sllong=input(1.0, title="SL Long", step=0.01) tpshort=input(0.03, title="TP Short", step=0.01) slshort=input(0.06, title="SL Short", step=0.01) if(time_cond) strategy.entry("long",1,when=long) strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong") strategy.entry("short",0,when=short) strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")