Systems en veille
Forums › ProRealTime forum Français › Support ProOrder › Systems en veille
- This topic has 11 replies, 3 voices, and was last updated 8 years ago by JC_Bywan.
-
-
08/09/2016 at 8:31 PM #11458
Bonjour,
Je constate régulièrement que des systèmes n’envoient pas d’ordre alors qu’ils le devraient, ce ne sont pas des ordres rejetés. Ce sont des systèmes que je duplique dans des UT différentes et des réglages différents aussi.
D’après ce sujet, la plateforme gère plusieurs systèmes sur un même instrument.
http://www.prorealcode.com/topic/comment-differencier-2-systemes-proorder-sur-une-meme-valeur/
Est ce que vous rencontrez ce problème ?
08/10/2016 at 7:59 AM #11467Bonjour Pascal,
Les ordres sont-ils passés en backtest et non en réel ? Si en backtest il ne se passe rien, alors une de tes conditions ne doit pas être valide. Je te conseillerai alors de toutes les vérifier avec l’instruction GRAPH.
08/10/2016 at 10:07 AM #1148309/02/2016 at 10:17 AM #12581Je continue de constater des différences sur l’exécution du même code entre un backtest et ProOrder. Sur l’exemple que je montre, le code s’appuis sur l’indicateur S.A.R.On peut y voir une différence significative qui entraîne des résultats complètements différents et donc parfois même l’absence d’ordre.
09/02/2016 at 10:25 AM #1258509/02/2016 at 10:32 AM #1258809/09/2016 at 1:33 PM #12892J’ai trouvé le problème, c’est une histoire de réinitialisation du code quotidienne qui en soulève un autre..
Sur un précédant sujet où j’expose ma méthode pour réinitialiser, à savoir “if time = 080000 then ..”
Tu m’expliques la tienne que j’ai adopté :
Si l’heure testée n’est pas affiché par le graphique pour une raison X ou Y, alors ton reset ne fonctionnera pas. Mais ton problème n’est pas là, tu supprimes ton RESET à 1 dés que l’heure testée n’est pas égal à 070000, à cause de ton ELSE reset=0. Personnellement, je préfères réinitialiser quotidiennement en vérifiant si on se trouve sur la première barre de la journée comme ceci :
123if intradaybarindex=1 thenreset = 1endifJ’ai 2 problèmes avec cette méthode sur un TF seconde. La première n’est pas compliquer à résoudre sur les indices, qui aux abords du week-end varient leurs heures de cotation, donc on obtient un résultat avec intradaybarindex différent des jours en semaine.
Par contre l’autre problème me donne le vertige. Il y a des trous de cotation la plupart du temps la nuit. Que le CFD ne bouge pas , c’est une chose mais que PRT n’affiche pas la cotation c’en est une autre, ce n’est pas un graphique en ticks.
Ces manques d’affichage causent problèmes lorsque on basse, par exemple dans mon cas, la réinitialisation d’un code avec la commande Intradaybarindex .
Sur les images que j’ai joint on peut voir le manque d’affichage qui entraîne un mauvais calcul de bar et donc des journées qui comptabilisent un nombre différent de bougie en 20 secondes.
Ce code sur un graph de 20 secondes pourra mettre en évidence le problème de réinitialisation puisque les heures varient.
123456789if intradaybarindex= 100 thenReinitialisation = 0endifif intradaybarindex = 150 thenReinitialisation = 1000endifreturn Reinitialisation coloured (200,0,200), intradaybarindex coloured (100,0,100) as "intradaybarindex"Qu’en pensez vous ? Avez vous une solution pour réinitialiser un code à un moment régulier autre que la première bar de la journée ?
09/09/2016 at 3:16 PM #12899Depuis un moment j’utilise un test sur le intradaybarindex = 0
123if intradaybarindex=0 thenreset = 1endifet ça marche correctement.
Après je dira peu importe à quel moment de l’intraday tu reset quelque-chose, puisque si il n’y a pas de cotation, finalement il n’est pas utile de resetter?
09/09/2016 at 3:31 PM #12902Oui c’est évident que le code va trouver la première bar. Mais si tu veux qu’il analyse ce qu’il s’est passé en prémarket voir avant par exemple, c’est utile de pouvoir faire un reset à une heure régulière. Ou de pouvoir utiliser intradaybarindex à d’autres fins sur une UT seconde.
09/12/2016 at 7:36 AM #12960Selon que par “réinitialiser” tu veux dire que tu remets tout un tas de valeurs de départ à leur valeur d’origine, ou tu veux dire que tu démarres ta journée là en ignorant toute une tranche de valeur nocturne (la plupart veulent 8h-22h mais tu peux avoir envie d’une autre plage horaire) alors ce n’est pas la même programmation, mais dans les 2 cas le mot-clé OpenHour peut servir.
J’aime bien l’utiliser dans mes codes quelle que soit l’UT. Il te donne l’heure d’ouverture de la bougie. Du coup tu peux faire des trucs comme ne trader que si OpenHour>=8 et <=21 et toute bougie qui démarre avant 8h ou qui démarre après 22h n’est pas prise en compte. Mais si tu veux faire un “if” ponctuel à ou vers 7h par exemple, alors faire un OpenHour=7, etc… Peut-être une piste à explorer si les intradaybarindex ne font pas ce dont tu as besoin.
09/12/2016 at 10:44 AM #12972Merci Noobywan de ta proposition mais ça ne règle pas le problème.
Il semble que probacktest gère le temps en se basant sur les bougies, si il n’y en a pas alors il y a des troues temporelle…
UT 30 secondes DAX30
12345678910111213C1 = OpenHour = 7 and OpenMinute = 30if openhour =7 thenuntrade = 0endifif C1 and untrade = 0 thenbuy 1 contract at marketuntrade = 1endifset target profit 50set stop loss 5009/20/2016 at 1:58 PM #13369En relisant le topic, il y a une phrase qui ne m’avait pas assez attiré l’attention, j’ai dû lire trop vite et ne pas la voir: “Par contre l’autre problème me donne le vertige. Il y a des trous de cotation la plupart du temps la nuit. Que le CFD ne bouge pas , c’est une chose mais que PRT n’affiche pas la cotation c’en est une autre, ce n’est pas un graphique en ticks.”
Je dirais au contraire que les graphes en x ticks n’en auront pas de trous de cotation, et que c’est normal d’avoir des trous la nuit en petite ut dans un graphe en UT “temporelle” (ça fait pléonasme de rajouter “temporel” après UT, mais je dis ça pour bien faire la distinction avec la vue x ticks, qui bien que sélectionnée dans le menu déroulant des UT, est une vue non linéaire par rapport au temps et non pas une pure UT, mais qu’on appellera par abus de langage et par commodité UT x ticks quand même).
Je dirais même plus, de tels trous sont possibles en journée s’il ne se passe pas grand chose quand le marché est ouvert, comme par exemple entre Noël et le Jour de l’An, et tout particulièrement lors des 2 demi journées qui ferment exceptionnellement à 14h juste avant Noël et juste avant le réveillon du 31 décembre, ces jours-là tu pourras observer des trous en ut1mn entre 9h et 14h sur le F40 alors que le marché actions est ouvert et le CAC40 “cash” est côté. Mais en x ticks, par définition même de la construction de ce type de graphe, jamais de trous.
Je reviens là-dessus, parce que quand tu dis “ça ne règle pas le problème”, si le problème ce n’était pas celui de la réinitialisation mais celui de ne pas passer un ordre dans probacktest quand il y a un trou, c’est normal, tu peux tester le passé uniquement sur ce qui est arrivé, mais si rien n’est arrivé à un moment donné, probacktest ne va pas envoyer l’ordre que tu aurais envoyer en réel et qui possiblement aurait évité le trou de cotation, par là-même modifiant le passé des cotations, il va juste en envoyer “quand il n’y a pas de trou” dans l’ut considérée.
Par contre, si le problème que tu dis être non réglé c’est que tu fais tourner proorder en live et qu’il n’envoie pas d’ordre alors que probacktest tourne en même temps et en envoie un, alors je ne comprends pas comment c’est lié aux trous de cotations de la nuit?
Une dernière chose, peut-être éloignée de ton topic ici, mais si ça se trouve ça se rejoint alors je le mentionne au cas où: j’ai déjà constaté des ordres envoyés par probacktest en live qu’il n’aurait pas envoyé en parcourant l’historique passé, et qui donc sont donc potentiellement autant d’écarts de comportement entre pro order et pro backtest. C’est un sujet pour lequel j’ai quelques tests en cours avant d’ouvrir un topic là-dessus, parce que ça vaut le coup de bien y penser dans la façon dont on programme les stratégies de trading par rapport au timing d’envoi d’ordres en bougie cloturée ou pas (surtout que je crois avoir lu Nicolas mentionner que la commande nextbaropen n’était plus ou n’allait plus être utilisée). Bon c’est une histoire d’ordre envoyés qu’on ne voudrait pas envoyer avant la clotûre de bougie, j’y reviendrai dans un futur topic… Là ton problème semble être le contraire, tu parles d’ordres non envoyés qui auraient dû l’être, mais en même temps, quand tu dis “ça ne résoud pas le problème”, je ne suis pas sûr de penser au même problème que celui que tu as en tête vu qu’il y en a potentiellement plusieurs possibles.
-
AuthorPosts