Question sur StrategyProfit
Forums › ProRealTime forum Français › Support ProOrder › Question sur StrategyProfit
- This topic has 6 replies, 2 voices, and was last updated 8 years ago by Nicolas.
-
-
06/30/2016 at 8:26 PM #10054
Bonjour,
En trading intraday, j’utilise la fonction StrategyProfit pour stopper le programme, en perte ou en gain.
J’essaye de faire évoluer mon STOP à la hausse avec le résultat.
( exemple :
once STOP = -200
…..
if StrategyProfit > 400 then STOP = 400
if StrategyProfit > 500 then STOP = 500
etc …
if StrategyProfit < STOP then quit)
Cela fonctionne lorsque le premier niveau est atteint (fin de barre, dernière position clôturée, 400 < StrategyProfit < 500 : STOP = 400
Cependant le STOP n’évolue plus même si le résultat dépasse 500 (fin de barre, dernière position clôturée) et reste donc coincé à 400 au lieu de passer à 500.
Une idée pour résoudre ce problème ? Faut-il réinitialiser STOP ? Si oui, comment ?
Merci d’avance
Raygeek
06/30/2016 at 8:55 PM #1006006/30/2016 at 9:11 PM #10062Non, ce n’est pas le problème : dans le cas évoqué, l’instruction quit n’est pas enclenchée avant que StrategyProfit ne repasse sous 400.
Avant cela, StrategyProfit est passé au dessus de 500 mais n’a pas modifié le STOP de 400 à 500.
J’ai également essayé
if StrategyProfit > 400 and StrategyProfit < 500 then
STOP = 400
if StrategyProfit > 500 and StrategyProfit < 600 then
STOP = 500
mais le résultat est le même.
07/01/2016 at 9:22 AM #10070Strategyprofit ne considère que les trades déjà clôturés, est-ce que cela est bien intégré dans ton raisonnement ?
Avec la fonction GRAPH, tu peux débugger visuellement, sans cela difficile de comprendre où se situe le problème:
12GRAPH strategyprofit coloured(100,100,100)GRAPH stopstrategy coloured(200,0,0)J’ai remplacé “STOP” par stopstrategy car le mot STOP est réservé au langage, on ne peut l’utiliser en variable.
07/01/2016 at 10:22 AM #10079Merci Nicolas, c’est bien intégré.
J’ai une routine qui clôture toute position restante lorsque la condition sur StrategyProfit est déclenchée.
L’instruction QUIT ne s’exécutera ensuite que lorsqu’il n’y a plus de position.
(Pour info, lorsque l’instruction QUIT est exécutée alors qu’il y a encore une position ouverte, elle arrête le programme mais laisse cette dernière position ouverte)
J’ai utilisé STOP pour l’exemple mais je l’ai nommé PLSTOP dans ma routine.
J’utilise la courbe gains&pertes en ProBacktest pour suivre le StrategyProfit, c’est kif.Suite à ton conseil, j’ai graphé le PLSTOP : Surprise ! Le programme l’a bien fixé plus haut mais l’a ramené plus bas au StrategyProfit suivant AVANT de le tester et aurait sans doute continué à fixer plus bas si il y avait eu une valeur inférieure programmée. (300 par exemple)
Je dois donc trouver un moyen de “locker” le niveau le plus haut atteint.
Si tu as une idée pour le faire, elle sera bienvenue !!
Merci pour ton aide.
Raygeek
07/01/2016 at 10:30 AM #10081J’ai ajouté une condition comme suit et ça a l’air d’être bon :
if StrategyProfit > 400 and StrategyProfit > StrategyProfit[1] then
PLSTOP = 400
f StrategyProfit > 500 and StrategyProfit > StrategyProfit[1] then
PLSTOP = 500
Tu valides ?
Merci et bonne journée.
07/01/2016 at 2:02 PM #10086Tous les chemins mènent à Rome (et au rhum.. 🙂 ) . Si ça fonctionne désormais comme tu le souhaitais au départ, c’est super 🙂
En effet, les informations de strategyprofit sont bien stockés dans un tableau de données et on peut faire appel aux données du passé avec un offset comme tu le fais. Well done.
-
AuthorPosts