ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Proorder de PRT fonctionne t'il correctement ?

par G'sT » 13 juin 2016 21:18

Bonsoir à tous,

Ca y est je me suis lancé aujourd'hui dans une strategie de trading automatique en réel.


Ce 1er test automatique en réel a été réalisé ce matin (et que j'ai suivi en direct via mon smartphone).
Ce soir, de retour à la maison autodebriefing avec analyse des trades......; et là quelle surprise , je me met à douter sur la fiabilité de "proorder" et je m'interroge : proorder dysfonctionne t'il à l'identique du module "backtest" ?

Le contexte

En amont j'ai crée une stratégie toute simple ; j'ai associé cette stratégie avec un indicateur maison me permettant de tester la stratégie aisément.

1ère étape : je backteste cet indicateur (on va l'appeler BDC pour faciliter la compréhension) sur la période octobre 2015 à mai 2016 en UT 1mn.
Le bilan est satisfaisant (avec TP et SL !).

2ème étape : Je backeteste BDC manuellement, "sur papier" sur les 3 derniers mois soit entre mars 2016 et mai 2016. Le résultat est identique au backtest prt et la aussi donc satisfaisant.

J'ai à ce stade des repères sérieux et solides sur la manière dont fonctionne BDC, son nombre de trades par jour, son taux de réussite.....

3e étape : Dimanche soir je lance BDC sous proorder pour qu'il fasse son job (à partir de lundi entre 9h et 17h 30).

Le déroulement de l'éxécution de proorder

Ce matin j'ai mon smartphone allumé sur IG (version mobile - Android).
Je vois le 1er ordre se déclencher à 9h01 puis fermé quelques mn après par mon SL (qui a été respecté). S'en suis peu de temps après l'ouverture d'un 2nd ordre fermé peu de temps après sur son target profit (là aussi respecté!). Super me dis-je, les SL et TP sont bien respectés. J'assiste ensuite à une succession de trades positifs et négatifs. Il est 9h40 je suis presque flat ( PV d'1 pt exactement) avec un total de 10 trades.
Mais je suis quand même pris d'un doute car le déroulé des trades me surprend : chacun dure environ 4 mn et à chaque fois qu'un est fermé, un autre est ouvert peu de temps derrière.
Or de par mon backtest/analyse manuel précédent je sais bien qu'il n'y pas autant de trades en si peu de temps avec une telle chronicité (et très rare que BDC déclenche aussi vite un signal de trade après la cloture d'un précédent).
Je décide donc d’arrêter manuellement proorder. Bien entendu avec la version mobile d'IG on a pas accès à la platerforme prooder, et je suis donc contraint de laisser se déclencher le 11e trade afin de le déboucler manuellement (ce qui a pour conséquence d'arrêter l'algo de BDC).
C'est chose faite : le trade est débouclé au moment où il passe à une PV d'1pt). Algo arrêté.
A ce stade je devrais être content (PV totale de 2 pts ;) ), mes SL et TP étant respectés.

Le retour

De retour à la maison ce soir je démarre ma plateforme pour analyser les trades de ce matin.
Je démarre BDC figurant dans proorder puis je le backtest via PRT..... et là le résultat est tout à fait différent de celui vécu ce matin sur proorder.
J'analyse donc BDC manuellement......et effectivement le résultat de mon analyse manuelle est similaire à celle du backtetst PRT que je venais de faire : BDC indique un 1er signal de déclenchement de trade à 10h04 et aucun trade entre 9h et 10h04 (aucun doute dessus j'ai bien analysé/examiné).
Alors pourquoi Proorder a t'il déclenché 11 trades successifs entre 9H et 9h45 avec ce même indicateur BDC ?

J'ai de gros doutes sur la fiabilité du module proorder et sur un fonctionnement aléatoire à l'identique du module PRT.

Je m'adresse donc à ceux qui auraient utilisé proorder en réel : avez vous constaté de tels bugs,à savoir des écarts de trades entre ceux passés par PRT et une analyse de ces trades réalisés manuellement par vous même ?

Autre détail qui peut avoir une importance : Quand vous lancez une strategie via proorder, avec stops et objectifs compris, attention Proorder fonctionne de manière séquencée en 3 temps :
1) l'ordre est tout d'abord déclenché (ouvert)
2) L'ordre ouvert est ensuite modifié : placement du stop
3) L'ordre ouvert est ensuite modifié : placement du TP

Merci de votre retour.

Re: Proorder de PRT fonctionne t'il correctement ?

par plataxis » 13 juin 2016 21:34

Moi j'ai seulement tenté en démo. Je n'aurais jamais fait tourner en réel avant d'avoir un peu de recul en démo. Et j'ai été plutôt faignant pour décortiquer ce qu'il a fait (pas gagnant = poubelle direct)

Re: Proorder de PRT fonctionne t'il correctement ?

par G'sT » 13 juin 2016 22:16

Merci plata.
Ma stratégie est éprouvée sur le papier, et verrouillée (stop, exposition limitée en lot, possibilité d’arrêter manuellement l'algo => c'est pour ça que je suivais en direct) donc le risque était limité. Et puis j'aime bien essayer mes stratégies en réel dès lors qu'elles sont bien abouties.

Re: Proorder de PRT fonctionne t'il correctement ?

par G'sT » 14 juin 2016 07:40

Bon je crois que j ai intuitivement (mais restera a confirmer ce soir par la vérification) un début de réponse au dysfonctionnement de proorder, car il y a bien eu dysfonctionnement
.....

Constat du probleme :
Proorder s est mis à declencher un 1 er ordre a 9h01. Des que le tp ou le stop etait touché, la position.etait fermee.et la.minute suivante un ordre etait declenché, et ainsi de suite pendant 1 ordre consecutif jusqu à ce que j arrete proorder dans le 11e trade.

Donnees du probleme :
Mon module bdc fonctione.selon 3 variables qui doivent etre verifiees cumulativement.
1) condition de plage horaire : "if time" compris entre 9h00 et 17h30 alors 1 sinon 0 (1 permettant le declenchement d un trade).
2) condition de cours : du style "if close> close (1) alors vente" / "if close <close(1).alors achat
3)condition d indicateur BDC. Ici proorder recherche mes 2 indicateurs faits "maison" : "signal bdc achat" et "signal.bdc vente" qui sont tous 2 binaires (le 1 declenchant le trade).
Dans cette variable prooder prend en.compte 2 éléments :
A=signal bdc achat
B=signal bd vente

Deroule du programme prooder :
J ai in finé les 2 lignes d achat/vente sujvantes :

Condition pour ouvrir une position longue :
Si close<close(1) ET "if time"=1 ET A=1 alors achete 1 contrat

Condition pour ouvrir une position courte
Si close>close(1) Et "if time"=1 ET B=1 alors vend 1 contrat

De ce que je pense comprendre, c est que proorder declenche les ordres sur la base des 2 premieres variables et zappe la 3 e variable (indicateur maison) comme s il n existait pas.
Je verifierais ce soir.

Re: Proorder de PRT fonctionne t'il correctement ?

par Benoist Rousseau » 14 juin 2016 07:43

C'est peut-être un problème de if et if then

Re: Proorder de PRT fonctionne t'il correctement ?

par DarthTrader » 14 juin 2016 07:53

integre ton code BDC dans proorder c est plus propre que l appel de fonction externe je trouve

Re: Proorder de PRT fonctionne t'il correctement ?

par G'sT » 14 juin 2016 07:59

Merci Benoist je verifirais ce soir.
Peut etre que tu as raison : je me.demande si on peut ecrire un ordre d achat avec 3 variables et un seul if /then comme je l ai ecrit :
If A and B and C then
Buy 1 contract AT market
Endif

Re: Proorder de PRT fonctionne t'il correctement ?

par kero » 14 juin 2016 08:01

Je ne sais pas si ça peut aider, mais peut-être une piste.

Quand je construit un indicateur avec ProBuilder, la référence des cours utilisés pour les données comme Close est celle de la Bougie en cours. En revanche, lorsque j'utilise ProScreener, le code prend en référence la Bougie précédente. Ainsi Close dans ProBuilder et dans ProScreener ne se réfère pas à la même Bougie.

Si t'as une même décorrélation entre ProBuilder et ProOrder, ça pourrait peut-être expliquer ?

Note que si dans ProScreener j'appelle une fonction ProBuilder, il utilise également la Bougie précédente et pas actuelle.

Pour tester tout ça il faudrait que tu débug ton code: le faire fonctionner en observant le moment où il se déclenche et en testant les données qu'il utilise/ses résultats intermédiaire. À l'évidence ce travail de débuggage n'a pas été fait.

Re: Proorder de PRT fonctionne t'il correctement ?

par G'sT » 14 juin 2016 08:01

Oui darth c etait la piste que j envisageai : je pencherai pour un "pb d appel externe" de BDC et j envisage son integration.dans proorder.

Re: Proorder de PRT fonctionne t'il correctement ?

par G'sT » 14 juin 2016 08:16

Merci pour ton aide kero et ton explication.
Je ne pense pas que ce soit un probleme lié au close mais en lien avec la 3e variable "bdc" qui n est pas prise en compte pour le dclenchement du trade.
Comme BDC fonctionne bien en tant qu indicateur independant mais est ignore lorsqu il est inclu en reference externe comme 3 e indicateur.dans proorder, je pencherai pour les 2 pistes evoquees :
- pb d IF/then (Benoist)
- pb de reference externe a bdc (comme darth et moi le pensons)

Autre question : avec 3 variables, plutot que de ne mettre qu 1 seul IF/then et les 3 variables separees par "And", est ce que je ne devrais pas plutot mettre 2 If/then ou bien 1 if/ then + 1 elsif ?

Re: Proorder de PRT fonctionne t'il correctement ?

par Stark » 14 juin 2016 08:45

Salut G'sT, j'utilise tous les jours ProOrder en réel, et mes résultats sont semblables à mes backtests. Je pense qu'il faut que tu intègres tes indicateurs maisons directement dans ton robot ProOrder.

N'hésite pas si tu as besoin d'un coup de main ;)

Re: Proorder de PRT fonctionne t'il correctement ?

par Benoist Rousseau » 14 juin 2016 09:25

vu ce que tu décris c'est un problème de if G'sT, perso je n'ai pas de soucis avec proorder

les if then else if ça me rappelle le turbo Pascal et ses boucles infinies :)

Re: Proorder de PRT fonctionne t'il correctement ?

par G'sT » 14 juin 2016 11:38

Msg recu Stark ;-)
J examinerai tout ca ce soir. Merci a tous pour votre collaboration collective.
En y reflechissant a nouveau, je viens de prendre conscience (grace a vous ;-) ) de la necessite d alleger, de simplifier mon "code proorder".

Effectivement ma 3e variable (signal.bdc achat") fait appel a un indicateur maison binaire qui lui meme fait appel (puisqu il est binaire) a un autre indicateur maison externe "bdc".

Proorder fait donc reference a 2 indicateurs externes imbriques.
De meme l'indicateur "signal bdc achat", contient aussi un if/then qui entre peut etre "en conflit" avec mon if/then dans proorder.
Idem pour une nomenclature "A=" qui intervient dans BDC / signal bdc achat / et proorder... d ou peut etre une confusion des genres....

Je vais simplifier mon code proorder et je vous tiendrai informés

Re: Proorder de PRT fonctionne t'il correctement ?

par Jim » 14 juin 2016 11:43

Hello G'sT,

Je suis un utilisateur régulier de ProOrder, et je suis souvent agacé par des différences avec PBT. Les conséquences peuvent être très lourdes. A titre personnel, pour un même système de trading, j'ai un code spécifique pour PBT et un code spécifique pour ProOrder.

J'ai lu que tu utilises des Close et des Close[1] dans ton code, et là je dis : Aïe ! Perso, quand je passes de PBT à PO, je remplace les Close par des Close[1], et les Close[1] par des Close[2].
En effet, PBT fait un test de condition en fin de chandelier, et si le test est positif il ouvre une position en début de chandelier suivant. PO fait un test de condition en début de chandelier, et si le test est positif il ouvre une position immédiatement.
En conséquence, tu te retrouves avec Close = Close[1] (si absence de glissement).

Re: Proorder de PRT fonctionne t'il correctement ?

par Stark » 14 juin 2016 12:10

Jim a écrit :En effet, PBT fait un test de condition en fin de chandelier, et si le test est positif il ouvre une position en début de chandelier suivant. PO fait un test de condition en début de chandelier, et si le test est positif il ouvre une position immédiatement.
Chez moi, ProOrder ne prend position qu'en clôture de bougie, je suis surpris de ça Jim.

Re: Proorder de PRT fonctionne t'il correctement ?

par Jim » 14 juin 2016 12:29

Stark,
Ca m'intrigue aussi ce que tu me dis. Il faut croire qu'on fait une utilisation différente de ProOrder, ou bien on a des éléments de langage différents.

Je vais te donner un bout de code, et tu me diras si tu obtiens le même résultat :
IF TIME = 130500 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
En ut 1 min, ProOrder effectuera le test entre 13h05m00s et 13h05m02s environ, puis ig essaiera d'ouvrir une position dans la foulée. Si ig rejette l'ordre, il retentera de passer l'ordre vers 13h05m05s. Bref, l'ordre est exécuté au début de la Bougie qui va de 13h05m00s à 13h06m00s.

En tout cas, Stark, si tu disposes d'une méthode pour exécuter les ordres en fin de Bougie, je suis très intéressé !

Re: Proorder de PRT fonctionne t'il correctement ?

par Stark » 14 juin 2016 12:32

Ok je vais essayer. Après j'utilise l'ut 10 secondes pour mes codes, peut-être que cela joue.

Re: Proorder de PRT fonctionne t'il correctement ?

par kero » 14 juin 2016 16:21

Bah 2 IF/THEN ou un IF+ELSIF, ça ne donne pas le même algorythme.

En fait, le mieux serait de le voir, ce code.

Re: Proorder de PRT fonctionne t'il correctement ?

par plataxis » 14 juin 2016 17:00

c'est surtout que Jim ouvre une position sans autre condition que l'heure. Peut-être Stark met-il une condition de prix ou d' indicateur ou de n'importe quoi qui fait que prt attend la cloture d'une Bougie ?

Re: Proorder de PRT fonctionne t'il correctement ?

par Stark » 14 juin 2016 17:10

Oui c'est tout à fait ça plataxis, j'ai des conditions en mode CLOSE, donc forcément mon code attend la fin de la Bougie pour déterminer si les conditions d'entrées sont réunies, et seulement à l'ouverture de la Bougie suivante il rentre.

Voilà pourquoi on a une différence Jim ;)

Sujets similaires
Détecter correctement une tendance
Fichier(s) joint(s) par Benoist Rousseau » 08 janv. 2020 10:03 (10 Réponses)
Exploiter correctement les volumes.
par Vaik » 01 avr. 2020 10:47 (0 Réponses)
Calculer (correctement) un rendement sur plusieurs années
par Sowee » 22 nov. 2020 10:02 (15 Réponses)
Comment écrire correctement sur une capture ?
Fichier(s) joint(s) par ChristelleP » 23 juil. 2023 11:07 (4 Réponses)
PRT ne fonctionne pas avec windows 10???
par ManiakTrader » 30 janv. 2016 01:09 (3 Réponses)
Gros Bugs PRT ProOrder trading automatique
par JUPITRADER » 19 nov. 2014 21:19 (11 Réponses)
PRT ProOrder Ordres Stop ignorés
par SebTrades » 31 mai 2016 01:00 (0 Réponses)
PRT / ProOrder n'accepte pas les ticks
par libertarian » 29 juil. 2016 20:31 (5 Réponses)