Cette stratégie fait partie de la stratégie de suivi de la tendance. Faire plus lorsque le prix franchit le triangle ascendant, faire moins lorsque l’EMA rapide franchit l’EMA intermédiaire.
Les EMA rapides et les EMA intermédiaires sont utilisées pour déterminer la direction de la tendance. Les EMA rapides et les EMA intermédiaires sont des signaux de bullish.
Utilisez les plus hauts et les plus bas de la ligne N à la racine K pour déterminer si un triangle est formé vers le haut.
Après l’entrée en bourse, le signe de reprise de la tendance est considéré comme une reprise de la tendance lorsque l’EMA rapide est inférieure à l’EMA intermédiaire.
Le stop loss doit être placé au-dessous d’un certain pourcentage du prix d’entrée et le stop loss doit être placé au-dessous du prix de sortie.
Les points d’arrêt sont définis comme un certain pourcentage au-dessus du prix d’entrée et une partie de l’arrêt de sortie.
L’EMA à 200 jours est utilisée pour déterminer la direction de la tendance globale, mais seulement si la tendance est à la hausse.
Le filtrage triangulaire permet une fausse percée et une meilleure précision d’entrée.
L’EMA rapide et l’EMA intermédiaire séparent raisonnablement les tendances et les oscillations, afin d’éviter d’être coincées.
Les paramètres de stop-loss et de stop-stop sont raisonnables et permettent de contrôler les pertes individuelles.
Il est possible d’éviter la phase d’ajustement en opérant uniquement à la hausse.
La portée du triangle est trop petite pour ne pas suivre la tendance et trop grande pour ajouter des transactions inutiles. Paramètres à optimiser N.
Il est facile d’être touché trop près du point de rupture, mais il est difficile de contrôler les pertes trop loin. Il faut évaluer le rôle des paramètres et les optimiser.
Une mauvaise configuration de certains paramètres peut entraîner un débordement des bénéfices. Il faut évaluer la proportion raisonnable.
Une mauvaise évaluation des paramètres de l’indicateur de tendance peut entraîner une mauvaise orientation de la position.
Optimiser les paramètres N déterminés par le triangle pour trouver la valeur optimale.
Test de différentes combinaisons de cycles EMA afin d’améliorer l’exactitude des jugements de tendance.
Optimiser les paramètres de stop-loss en fonction des caractéristiques de chaque variété.
L’ajout d’autres indicateurs de jugement, tels que la forme du MACD, la rupture de la bande de Brin, etc., améliore la qualité du signal.
Ajout d’un mécanisme de réouverture pour prolonger la période de bénéfice si la tendance se poursuit.
L’ensemble de la stratégie est robuste et permet de filtrer efficacement les fausses percées grâce au triangle de détermination. Il y a plus de place pour l’optimisation des paramètres et de meilleurs résultats sont attendus. En outre, il est possible d’essayer d’ajouter plus d’indicateurs de jugement auxiliaires ou d’améliorer la stratégie d’arrêt de perte pour améliorer encore l’efficacité de la stratégie.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 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/
// © mohanee
//@version=4
strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)
// variables BEGIN
numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint = low > LL and high < HH
fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)
//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)
longCondition=fastEMAval>two100EMAval and tringlePoint
//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true, when= longCondition and strategy.position_size<1)
//Add
strategy.entry(id="TBT LE", comment="Add" , long=true, when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)
//barcolor(strategy.position_size>=1 ? color.blue : na)
//Take profit
takeProfitVal= strategy.position_size>=1 ? (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit", qty=strategy.position_size/2, when=close>=takeProfitVal and close<open and close<fastEMAval) //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1 ? (close>takeProfitVal? color.purple : color.blue): na)
//Exit
strategy.close(id="TBT LE", comment="TBT Exit", when=crossunder(fastEMAval,slowEMAval))
//stoploss
stopLossVal= strategy.position_size>=1 ? (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00
//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))
strategy.close(id="TBT LE", comment="SL Exit", when= close < stopLossVal)