Triangle Breakout tendance suivant la stratégie

Auteur:ChaoZhang est là., Date: 2023-09-20 14h24 et 16h
Les étiquettes:

Résumé

Il s'agit d'une stratégie de suivi de tendance. Il va long lorsque le prix sort d'une formation de triangle ascendant et ferme la position lorsque l'EMA rapide traverse en dessous de l'EMA moyenne.

La logique de la stratégie

  1. Utilisez une EMA rapide et une EMA moyenne pour déterminer la direction de la tendance.

  2. Utilisez les prix les plus élevés et les plus bas des dernières N barres pour déterminer si un triangle ascendant est formé.

  3. Après l'entrée, lorsque l'EMA rapide traverse l'EMA moyenne, il indique un renversement de tendance et donne un signal de sortie.

  4. Pour la sortie du stop loss, définir un certain pourcentage en dessous du prix d'entrée.

  5. Fixer un objectif de prise de profit à un certain pourcentage au-dessus du prix d'entrée pour une prise partielle de profit.

  6. Utilisez l'EMA de 200 jours pour déterminer la direction générale de la tendance, ne négociez que lorsque la tendance est à la hausse.

Analyse des avantages

  1. La formation triangulaire filtre la fausse fuite et améliore la précision d'entrée.

  2. L'EMA rapide par rapport à l'EMA moyenne divise raisonnablement la tendance et la consolidation pour éviter les sauts de marée.

  3. Les paramètres de stop loss et de prise de profit raisonnables contrôlent les pertes d'une seule transaction.

  4. Seule la négociation à tendance haussière évite les périodes agitées.

Analyse des risques

  1. Une fourchette trop étroite de triangles peut manquer les tendances, tandis qu'une fourchette trop large peut augmenter les transactions inutiles.

  2. L'arrêt de perte trop proche tend à s'arrêter prématurément, tandis que trop large échoue à contrôler la perte.

  3. Un mauvais réglage partiel des bénéfices peut entraîner un dépassement des bénéfices.

  4. Des paramètres d'indicateur de tendance incorrects peuvent conduire à une mauvaise direction de position.

Directions d'amélioration

  1. Optimiser le paramètre N pour la détermination du triangle afin de trouver la valeur optimale.

  2. Testez différentes combinaisons de périodes EMA pour améliorer la précision de la tendance.

  3. Optimiser les paramètres de stop-loss et de prise de profit en fonction des caractéristiques du produit.

  4. Ajoutez d'autres indicateurs tels que le modèle MACD, la rupture de Bollinger, etc. pour améliorer la qualité du signal.

  5. Ajoutez un mécanisme de réouverture pour augmenter les bénéfices lorsque la tendance se maintient.

Résumé

La stratégie est globalement robuste avec la formation de triangles améliorant la précision du signal. Un grand espace d'optimisation des paramètres existe pour une amélioration ultérieure. Essayez également d'ajouter plus d'indicateurs auxiliaires ou d'améliorer le stop loss / take profit pour une plus grande efficacité. Dans l'ensemble, cette stratégie a le potentiel de devenir une tendance de qualité suivant 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)

Plus de