
La stratégie consiste à déterminer la tendance des prix en calculant les croisements des deux courbes de convergence et en émettant des signaux d’achat et de vente en combinaison avec certaines limites de paramètres. Elle se compose principalement de trois parties: la première, en calculant les croisements des courbes de convergence rapide et lente pour déterminer la tendance des prix; la deuxième, en combinant certaines limites de paramètres pour éviter les mauvaises transactions; et la troisième, en utilisant le stop loss pour contrôler le risque.
Le cœur de la stratégie est de calculer les courbes de moyenne rapide et moyenne lente. La courbe de moyenne rapide est la moitié de la courbe moyenne, ce qui rend la réaction au prix plus sensible. La courbe de moyenne lente est la courbe moyenne, ce qui rend la réaction au prix plus stable.
En outre, la stratégie définit certains paramètres pour éviter les erreurs de négociation. Par exemple, le seuil de décision est défini. Le signal de négociation n’est émis que lorsque l’écart de la moyenne rapide dépasse une certaine amplitude.
Enfin, la stratégie utilise le stop loss pour contrôler le risque. Si le profit ouvert est inférieur au stop loss, la position est abandonnée. Si le stop loss est supérieur au stop profit, la position est abandonnée.
Le plus grand avantage de cette stratégie réside dans la combinaison de l’indicateur linéaire pour déterminer la tendance des prix et les caractéristiques de la volatilité. La tendance des prix de l’indicateur linéaire croisé est une méthode d’indicateur technique classique et efficace, qui permet de saisir avec précision la tendance après optimisation des paramètres. L’indicateur de confiance sur la volatilité permet de filtrer efficacement les fluctuations du marché et d’éviter de fréquentes transactions erronées.
En outre, la définition de paramètres tels que la valeur de décision, le stop loss et le stop loss peut réduire considérablement le risque de transaction et éviter de suivre les hauts et les bas.
Le principal risque de cette stratégie est la possibilité que les indicateurs bi-médianes émettent des signaux erronés. Les moyennes rapides et les moyennes lentes sont des moyennes mobiles pondérées, qui réagissent plus lentement aux événements soudains et peuvent manquer une inversion de prix à court terme.
En outre, un mauvais réglage des points d’arrêt et de perte augmente le risque. Des points d’arrêt trop élevés ou trop bas peuvent entraîner des pertes supérieures à celles attendues. Cela nécessite de définir des paramètres raisonnables en fonction des caractéristiques et des fluctuations de différentes variétés.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser les cycles de la moyenne en définissant une moyenne adaptative pour mieux modéliser les fluctuations des prix au cours des différents cycles;
la mise en place d’un mécanisme de suivi dynamique des stop-loss permettant de modifier dynamiquement les points de stop-loss en calculant les fluctuations en temps réel;
L’ajout de modèles d’apprentissage automatique pour déterminer la direction de la tendance des prix, l’utilisation de plus de données historiques pour déterminer l’orientation actuelle des prix et la réduction des signaux erronés.
Cette stratégie est une stratégie de trading de tendances classique, simple et efficace. Elle utilise des tendances de détermination de la croix de deux équivalents, des paramètres pour contrôler le risque, est configurable et s’applique à de multiples types de transactions.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Trade Signal", shorttitle="Trade Alert", overlay=true )
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001)
SL = input(defval=-10.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],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
d=n1>n2?red:green
confidence=(request.security(syminfo.tickerid, '5', close[1])-request.security(syminfo.tickerid, '60', close[1]))/request.security(syminfo.tickerid, '60', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
strategy.entry("Short",strategy.short)
//alerts
alertcondition(closelong, title='Close Buy Position', message='Close Buy Position')
alertcondition(closeshort, title='Close Short Position', message='Close Short Position')
alertcondition(longCondition, title='Buy Signal', message='Buy Signal Alert')
alertcondition(shortCondition, title='Sell Signal', message='Sell Signal Alert')
//a1=plot(n1,color=c)
//a2=plot(n2,color=c)plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
//plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green, title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart