Stratégies de capture des tendances

MA SMA
Date de création: 2024-04-26 11:48:28 Dernière modification: 2024-04-26 11:48:28
Copier: 5 Nombre de clics: 753
1
Suivre
1617
Abonnés

Stratégies de capture des tendances

Aperçu

Une stratégie de capture de tendance est une stratégie qui utilise une méthode unique pour détecter la formation d’une tendance et pour ouvrir une position dans la direction de la tendance. Elle obtient un pourcentage appelé “limite” en calculant le rapport entre la différence entre le prix le plus élevé et le prix le plus bas dans une certaine fourchette et la somme de toutes les longueurs de la ligne K dans cette fourchette.

Principe de stratégie

  1. Calculer la différence entre le prix le plus élevé et le prix le plus bas d’une plage et la somme de toutes les longueurs de ligne K de cette plage.
  2. La somme de la différence par la longueur de la ligne K et multipliée par 100 donne une valeur en pourcentage appelée “limite”.
  3. Lorsque la limite est supérieure à la valeur définie et que la moyenne mobile est en hausse, il y a plus d’options; lorsque la limite est supérieure à la valeur définie et que la moyenne mobile est en baisse, il y a des options vides.
  4. Une fois la position ouverte, une partie de la position est effacée lorsque le prix atteint le point d’arrêt et le reste de la position est déplacé vers le point d’arrêt.
  5. Lorsque la moyenne mobile traverse vers le bas, il est nécessaire d’égaliser les billets blancs; lorsque la moyenne mobile traverse vers le haut, il est nécessaire d’égaliser les billets vides.

Avantages stratégiques

  1. La stratégie utilise une méthode unique pour détecter la formation d’une tendance et pour juger de la force d’une tendance en calculant des valeurs limites, ce qui permet d’ouvrir des positions au début d’une tendance.
  2. La stratégie consiste à maîtriser le risque après l’ouverture d’une position en liquidant une partie de la position et en déplaçant le stop loss de la position restante.
  3. La stratégie utilise les moyennes mobiles à la hausse et à la baisse pour juger de la fin d’une tendance et aider à la liquidation en temps opportun.

Risque stratégique

  1. La stratégie consiste à ouvrir une position au début d’une tendance, ce qui peut entraîner des pertes si la tendance ne se maintient pas.
  2. La stratégie utilise des stop-loss et des stop-loss fixes, qui peuvent ne pas être assez flexibles dans certains cas.
  3. La stratégie utilise uniquement des moyennes mobiles pour juger de la tendance et peut manquer certaines opportunités de tendance.

Orientation de l’optimisation de la stratégie

  1. Vous pouvez envisager d’utiliser d’autres indicateurs pour aider à juger des tendances, tels que le MACD, le RSI, etc., afin d’améliorer l’exactitude de la position.
  2. Il est possible d’ajuster dynamiquement les points d’arrêt et de perte en fonction de la volatilité du marché afin de mieux contrôler les risques.
  3. On peut envisager d’ouvrir une position après la confirmation de la tendance pour réduire le risque au début de la tendance.

Résumer

La stratégie de capture de tendance utilise une méthode unique pour détecter la formation d’une tendance et ouvrir une position dans la direction de la tendance. Elle juge l’intensité d’une tendance en calculant des valeurs limites et en utilisant une traversée de la moyenne mobile pour juger de la fin de la tendance. La stratégie maîtrise le risque en nivelant une partie de la position et en déplaçant le stop loss après l’ouverture de la position.

Code source de la stratégie
/*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))