Bonjour,
J’aimerai votre aide car je sèche complètement sur un sujet basique pourtant…
J’ai crée un indicateur perso (toto) très simple, et j’aimerai dans une condition de mon BackTest faire en sorte qu’une condition soit valide si la valeur de toto est un maximum depuis les 10 dernières séances.
Je ne sais pas si c’est clair, mais en gros je veux que l’achat ou la vente se fasse uniquement si la valeur de toto est un max depuis les 10 dernières séances.
Et petite question bonus si possible ; comment écrire en condition, lors d’une perte en cas de long ou short, que le solde doit se faire après 10 unités.
En gros j’ai un stop si perte de 7%, mais je veux également que l’on stoppe avant 10 unités de temps.
Un grand merci 🙂
Salut à tous,
Je reviens vers vous car finalement ma question va être plus pointue, en espérant trouver une réponse ici.
Je cherche à mettre en place mon scénario de clôture de position avec 4 conditions :
Gain
- Si le cours croise la MM20
- Si le gain en cours est supérieur à 10%
Perte
- Si la perte en cours est inférieur à 0% et 9 barres ont été réalisées
- Si la perte en cours est supérieur à 7%
Voici le code que j’ai créé :
// Condition pour clôturer une position de vente
cv1 = (close <= mm20)
cv2 = (PositionPerf(0) > 10)
cv3 = (PositionPerf(0) < 0)
cv4 = ((BarIndex - TradeIndex) > 8)
cv5 = (PositionPerf(0) < -7)
// Rachat Gain si cours croise MM20
IF ONMARKET AND cv1 THEN
EXITSHORT AT MARKET
// Rachat Gain si bénéfice supérieur à 10%
ELSIF ONMARKET AND cv2 THEN
EXITSHORT AT MARKET
// Rachat Perte si bénéfice inférieur à 0% et X barres réalisées
ELSIF ONMARKET AND cv3 AND cv4 THEN
EXITSHORT AT MARKET
// Rachat Perte si perte supérieure à 7%
ELSIF ONMARKET AND cv5 THEN
EXITSHORT AT MARKET
ENDIF
J’ai comme l’impression que j’ai écrit pas mal d’anneries…
Merci si vous pouviez m’aider 🙂
Les gains et pertes exprimés en pourcentage sont calculés sur le capital initial ou sur ton équité en temps réel ? (gain réalisé+capital+ordre en cours).
PositionPerf que tu as utilisé exprime un gain en pourcentage du prix. Donc on parle de quelle unité de mesure au final ? Merci.
Bonjour Nicolas,
Tout d’abord merci à toi pour ton aide.
J’aimerai en définitive pour utiliser une variable qui me donne en temps la performance en % du seul ordre que j’ai en cours. Comme cela, tous mes tests auraient un sens comme celui là :
- Si la perte en cours est supérieure à 0% et 9 barres ont été réalisées
Du coup PositionPerf ne serait pas la bonne variable ?
Pour faire simple, je pense que pour mes tests il me faut juste savoir qu’elle est la variable qui me permet de savoir la performance en cours d’un ordre.
Grace à cela je pourrai faire mes propres conditions de stop.
savoir la performance en cours d’un ordre
Oui j’aimerai bien aussi savoir 🙂 Mais en pourcentage de variation du prix de l’action ou en pourcentage de gain sur capital ?
Oupsss
Le même calcule que le %LOSS.
Ce dernier est calculé sur la performance d’un ordre en cours ? Du coup sur le capital investi de l’ordre en question si je ne me trompe pas ?
Avec (IF (close – TRADEPRICE) > 0) je pense que l’on peut avoir une condition qui nous indique si nous sommes en pertes dans le cas d’une vente.
%LOSS est calculé sur l’écart en pourcentage du prix vis à vis du point d’entrée. On obtient la même chose avec POSITIONPERF, donc oui on peut savoir si on est en perte ou non, mais 7% de perte ça peut être de l’argent du capital ou un écart sur le prix de l’action, j’espère que c’est clair 🙂
Donc d’après ce que je peux comprendre désormais, on utilise l’écart en prix ? et non en argent du capital.
Gain
- Si le cours croise la MM20
- Si le gain en cours est supérieur à 10%
Perte
- Si la perte en cours est inférieur à 0% et 9 barres ont été réalisées
- Si la perte en cours est supérieur à 7%
if close crosses under average[20) or positionperf>10 or (positionperf<0 barindex-tradeindex>=9) or positionperf<7 then
exitshort at market
endif