Problème d'exécution de code
Forums › ProRealTime forum Français › Support ProOrder › Problème d'exécution de code
- This topic has 5 replies, 3 voices, and was last updated 5 years ago by petitdudu.
-
-
11/11/2019 at 6:58 PM #112569
Bonjour,
Je cherche à coder une stratégie simple à savoir : shorter le titre si une bougie fait un gap haussier et “le referme” dans la même journée et mettre un Stop loss juste au-dessus du high de la journée durant laquelle le gap a eu lieu.
J’ai codé comme suit mais cela ne fonctionne pas (le système semble utiliser mon critère de stop-loss pour rejeter certains short – si je change le 1,005 en 1,01 par exemple, il entre dans certains short dans lesquels il n’était pas avec un SL à 1,005) :
123456789101112131415161718192021// Définition des paramètres du codeDEFPARAM CumulateOrders = True // Cumul des positions activé// Conditions pour ouvrir une position en vente à découvertc1 = (open > high[1])c2 = (close < close[1])IF c1 AND c2 THENSELLSHORT 10000 CASH AT MARKETMystop=Open*1.005ENDIF// Conditions pour fermer une position en vente à découvertc3 = High>=MystopIf c3 THENEXITSHORT AT MARKETENDIF// Stops et objectifsSET TARGET %PROFIT 7Avez-vous une idée d’où est le souci ?
Un grand merci !
11/11/2019 at 8:40 PM #112572Bonjour petitdudu,
Il y a un écart minimum pour le stop loss à respecter en fonction du marché dans lequel tu souhaites entrer et du timing d’entrée. Et cet écart est il me semble supérieur si tu appliques des stops garantis. A 0,005 de distance, l’écart minimum n’est peut-être pas respecté.
11/12/2019 at 8:55 AM #112577Edmond a raison pour l’écart au stop minimum, mais ça n’est pas le cas ici 🙂 puisqu’il n’y a aucun stoploss de posé dans la stratégie.
Le niveau du stoploss que tu calcules peut ne pas être bon dans certain cas. Comment sais tu que le prix d’entrée lui ai inférieure ?
Je te suggère d’ajouter cette ligne à la fin du code dans le backtest pour vérifier sur le graphique le niveau calculé et ainsi bien comprendre et où le poser dans le cadre de la stratégie :
1GRAPHONPRICE Mystop1 user thanked author for this post.
11/12/2019 at 9:40 PM #112634Merci de vos réponses. Je constate que quand j’utilise la valeur de 1,005, le système n’entre que dans des trades relatifs à de très petits gaps (inférieur à 0,50%) et lorsque j’augmente à 1,02 par exemple, le système entre dans beaucoup plus de trades. Le système utilise donc cette valeur de 1,005 comme un ordre de n’entrer dans un trade que si le gap (open-close(1)) est inférieur à 0,50%. Hors, cette valeur de 1,005 ne devrait pas servir à déterminer dans quels trades entrer mais devrait uniquement servir à déclencher un ordre de vente. Voilà, je suis perdu 😉
11/13/2019 at 1:07 PM #112678Il n’y a pas de condition liée à cette valeur pour rentrer en position mais uniquement pour en sortir, comme tu le stipules en effet. Puisque le cumul des positions est autorisée, si on sort moins rapidement avec un seuil de 1.02, alors plus de positions s’ouvriront dans la même journée qui voit un gap.
11/13/2019 at 9:57 PM #112728Je pense avoir compris ce qui ne va pas.
Imaginons un titre qui cloture à 100 euros, ouvre le lendemain à 100,04 et cloture à 99,70 euros. On est dans le cas de figure que je cherche à analyser. Avec mon codage actuel, le système n’entrera pas dans ce trade si, le jour du gap, le titre fait un high supérieur à 1,005 * open. Il considère que le stop s’applique le jour durant lequel il devrait entrer en position et donc il n’entre pas en position. En fait, il faudrait dire au système qu’il ne vende un titre avec le stop désigné qu’à partir du jour d’après le trade.
Il me semble qu’en ajoutant “if shortonmarket” dans ma commande de vente de position,je résoud le problème.
Merci de votre aide, je pense que c’est résolu !
-
AuthorPosts
Find exclusive trading pro-tools on