Stratégie de capture des tendances

Auteur:ChaoZhang est là., Date: 2024-04-26 11:48:28 Je vous en prie.
Les étiquettes:- Je vous en prie.SMA

img

Résumé

La stratégie Trend Catcher est une stratégie qui détecte les formations de tendance en utilisant sa propre méthode unique et ouvre des positions dans la direction de la tendance. Elle calcule une valeur en pourcentage appelée limit en divisant la différence entre les prix les plus élevés et les plus bas dans une certaine plage par la somme des longueurs des bougies dans cette plage. Plus cette valeur est proche de 100, plus la tendance est forte. Lorsque cette valeur dépasse une limite définie et que la moyenne mobile est en hausse, la stratégie ouvre une position longue; lorsque cette valeur dépasse une limite définie et que la moyenne mobile est en baisse, la stratégie ouvre une position courte. Après avoir ouvert une position, la stratégie ferme une partie de la position lorsque le prix atteint un certain niveau et déplace la position restante à un point où elle croit que la tendance est terminée.

Principe de stratégie

  1. Calculez la différence entre le prix le plus élevé et le prix le plus bas dans une certaine plage, ainsi que la somme des longueurs de toutes les bougies dans cette plage.
  2. Divisez la différence par la somme des longueurs des bougies et multipliez par 100 pour obtenir une valeur en pourcentage appelée limit.
  3. Lorsque la limite dépasse une valeur définie et que la moyenne mobile augmente, ouvrir une position longue; lorsque la limite dépasse une valeur définie et que la moyenne mobile diminue, ouvrir une position courte.
  4. Après avoir ouvert une position, fermer une partie de la position lorsque le prix atteint le niveau de prise de profit et déplacer la position restante au niveau de stop loss.
  5. Lorsque la moyenne mobile passe à la baisse, fermer la position longue; lorsque la moyenne mobile passe à la hausse, fermer la position courte.

Les avantages de la stratégie

  1. La stratégie utilise une méthode unique pour détecter les formations de tendance. En calculant la valeur limite pour déterminer la force de la tendance, elle aide à ouvrir des positions au début de la tendance.
  2. Après ouverture d'une position, la stratégie contrôle le risque en clôturant une partie de la position et en déplaçant le niveau de stop loss de la position restante.
  3. La stratégie utilise les croisements à la hausse et à la baisse de la moyenne mobile pour déterminer la fin de la tendance, ce qui permet de fermer les positions en temps opportun.

Risques stratégiques

  1. La stratégie ouvre des positions au début de la tendance, qui peut entraîner des pertes si elle ne peut être maintenue.
  2. La stratégie utilise des niveaux fixes de prise de profit et de stop loss, qui peuvent ne pas être suffisamment souples dans certains cas.
  3. La stratégie utilise uniquement la moyenne mobile pour déterminer les tendances, qui peuvent manquer certaines opportunités de tendance.

Direction de l'optimisation de la stratégie

  1. Considérez l'utilisation d'autres indicateurs tels que le MACD et le RSI pour aider à déterminer les tendances et à améliorer la précision des positions d'ouverture.
  2. Ajustez dynamiquement les niveaux de prise de bénéfices et de stop-loss en fonction de la volatilité du marché afin de mieux contrôler le risque.
  3. Considérer l'ouverture de positions seulement après la confirmation de la tendance afin de réduire les risques au début de la tendance.

Résumé

La stratégie de capteur de tendance utilise une méthode unique pour détecter les formations de tendance et ouvre des positions dans la direction de la tendance. Elle calcule la valeur limite pour déterminer la force de la tendance et utilise le croisement de la moyenne mobile pour déterminer la fin de la tendance. La stratégie contrôle le risque en fermant une partie de la position et en déplaçant le niveau de stop-loss après avoir ouvert une position. Cependant, la stratégie peut faire face à certains risques lors de l'ouverture de positions au début de la tendance, l'utilisation de niveaux fixes de profit et de stop-loss peut ne pas être suffisamment flexible, et l'utilisation de la moyenne mobile uniquement pour déterminer les tendances peut manquer certaines opportunités.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro

//@version=5
strategy("Trend Catcher Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input.int(10)
tp = input.float(2.5, step = 0.1)
sl = input.float(2.5, step = 0.1)
malen = input.int(5)
limit = input.int(50)
ma = ta.sma(close,malen)
sum = 0.0
for i = 0 to len-1
    sum := sum + high[i]-low[i]
frs = 100*(ta.highest(high,len)-ta.lowest(low,len))/sum
//hline(50)
//plot(frs, color = color.white)
l = ta.crossover(frs,limit) and ma>ma[1]
s = ta.crossover(frs,limit) and ma<ma[1]
cl = ma<ma[1]
cs = ma>ma[1]
qty_balance=input.int(50, maxval = 100)
if (l)
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("exit long", "My Long Entry Id", qty_percent = qty_balance, limit = close*(100+tp)/100, stop = close*(100-sl)/100)

if (s)
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("exit short", "My Short Entry Id", qty_percent = qty_balance, limit = close*(100-tp)/100, stop = close*(100+sl)/100)

if (cl)
    strategy.close("My Long Entry Id")
if (cs)
    strategy.close("My Short Entry Id")

l:= l and strategy.opentrades<1
s:= s and strategy.opentrades<1
transp = strategy.opentrades>0? 0 : 100
pma=plot(ma, color = ma<ma[1]? color.rgb(255, 82, 82, transp) : color.rgb(76, 175, 79, transp))
price = open/2+close/2
pprice = plot(price, display = display.none)
fill(pma,pprice, color = ma<ma[1]? color.rgb(255, 82, 82, transp+90) : color.rgb(76, 175, 79, transp+90))

spm=plot(ta.valuewhen(s,close,0), color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
lpm=plot(ta.valuewhen(l,close,0), color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.white : color.rgb(1,1,1,100), offset=1)

ltp=plot(ta.valuewhen(l,close,0)*(100+ta.valuewhen(l,tp,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
lsl=plot(ta.valuewhen(l,close,0)*(100-ta.valuewhen(l,sl,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.red : color.rgb(1,1,1,100), offset=1)

stp=plot(ta.valuewhen(s,close,0)*(100-ta.valuewhen(s,tp,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
ssl=plot(ta.valuewhen(s,close,0)*(100+ta.valuewhen(s,sl,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
fill(stp,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(ssl,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))
fill(ltp,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(lsl,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))

Relationnée

Plus de