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

Re: Debug backtest avant passage en prod

par X@vi3r » 21 mai 2024 09:54

Je me ballade dans le coin, j'arrive un peu tard :lol:

Pas de pb non plus pour faire du manuel en meme temps que l'auto ;)

Et pour le GRAPH :top:
En revanche déçu de voir que ça n'est pas possible en proorder, j'ai justement un decalage d'entré et sortie entre backtest et reel...

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 14:04

Je relance un peu la file, car j'ai eu (enfin) le temps de faire du Trapise73 sur un algo.

Je décris la méthode et vous corrigez svp.

J'ai fait un premier backtest avec des idées assez simple de signal.
Signaux d'entrées sont : Un corps de Bougie > à 75% du True-range; un True-range 1,8x plus élevé que la EMA(7) appliqué au True-range (vous me suivez toujours ?).
Dit autrement faut une Bougie avec un coprs très grand et une Bougie très "grande" par rapport à la volat du moment.

J'ai limité les trades sur la session cash US, avec une permière appxoimation entre 14h30 et 22h00 (flatbefore et flatafter).
Un seul lot par trade, pas de cumulative trade.

ensuite j'ai rajouté un TP fixe, pas de SL. (Peu importe c'est pour une premier jet).

C'est là que commence le travail de recherche et d'amélioration :
J'ai fait tourné sur différentes ut (4H, 1H, 30m, 15min, 2min 10s) avec le maximum de jeu de donnée.
Je vous les quelques "tours" pour arriver à un premier affinement : TP2, UT2, Bougie >75% et facteur de 1,8 entre TR et EMA(7)[TR] semblent avoir de très bon candidats.
A ce stade je suis très loin des 100% de trade gagnant mais j'ai un premier setup à explorer.

Et là je commence à faire du trapiste73 (en tout cas j'essaye).
J'essaye d'optimiser les variables une par une.
Puis je scrole dans le backtest pour regarder si il y a des facteurs commun aux "grosses" pertes et ou aux drawdown.

Et là plusieurs bingo :
Un j'élimine les jours fériés (fermé aux USA), deux j'élimine les semaine type noël. Hop grosse amélioration.

Re-bingo.

Pas la peine d'attendre 22h00, suffit de couper à 18h00 et déjà on élimine 75% de mauvais trade.
"
Puis re-re- bingo, en faisant tourner l'optimisation sur le "temps de présence sur le marché". Je coupe le ticket si il est toujours vivant après x Bougie.

Et là j'arrive à un backtest qui est très proche des 100%, avec un profit factor de 3.

Je vous poste le code initial et le code affiné après mes réunions pour voir si j'ai fait trop ou pas d'optimisation dans la recherche du bon algo.

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 14:35

Mince j'avais oublié que prt ne gère pas d'historique de version.

Bon en résumé je vous met la version finale.
J'ai mis les commentaires de chaque "bloc" de code.

J'ai fait tourner sur NDX en UT2 avec 200K bougies d'historique, et spread à 1point.

Code : #

defparam Flatbefore=143000
defparam Flatafter=220000

once tp=2
once duree = 15
once triger = 75
once multiplicateur = 1.8
once evalpos=1

// Eval décalage heure Hiover/Eté USA/EU
openingbell = 153000
closingbell = 180000
flatafterebell = 220000
decalage = 0
if (month = 3) then
if (Day > 10) and (day < 32) then
decalage = 1
endif
elsif (month = 10)then
if (day > 29) and (day < 32) then
decalage = 1
endif
elsif (month =11) then
if (day > 0) and (day < 5) then
decalage = 1
endif
endif
if decalage then
openingbell = 143000
closingbell = 170000
flatafterebell = 210000
endif

if (time >= openingbell) then
opentrade = 1
else
opentrade = 0
endif

if (time >= closingbell) then
closetrade = 0
else
closetrade = 1
endif

//Eval jour férié USA
if (date = 20240219) or (date = 20240115) or (date = 20240527) or (date = 20240326) or (date = 20230102) or (date = 20230116) or (date = 20230220) or (date = 20230407) or (date = 20230529) or (date = 20230619) or (date = 20230704) or (date = 20230904) or (date = 20231123) or (date = 20231124) or (date = 20231225) or (date = 20231229) or (date = 20231226) or (date = 20231227) or (date = 20231228) or (date = 20231229) then
daytrade = 0
else
daytrade = 1
endif

//Sens de la bougie
vert = close > Open
rouge = Close < Open

//pourcentage taille corps
corps = abs(close-open)
truerange = abs(high-low)
p = 100*corps/truerange
percentagecorps = p > triger

//Facteur de taille de la bougie
atr = AverageTrueRange[1](close)
ema = ExponentialAverage[7](atr) * multiplicateur
grandebougie = atr > ema


buylong = daytrade and  opentrade and closetrade and vert and percentagecorps and grandebougie
short = daytrade and opentrade and closetrade and rouge and percentagecorps and grandebougie
// Conditions pour ouvrir une position acheteuse
IF NOT LongOnMarket AND buylong THEN
BUY evalpos CONTRACTS AT MARKET
SET TARGET PPROFIT tp
ENDIF

IF NOT Shortonmarket and short then
sellshort evalpos contracts at market
SET TARGET PPROFIT tp
endif

// Stops et objectifs : entrez vos stops et vos objectifs ici
IF OnMarket and (time >= flatafterebell) THEN
sell evalpos contracts at market
exitshort evalpos contract at market
ENDIF

//coupe si trade dure plus de bar (200minutes en UT2)
if OnMarket and ((barindex - tradeindex) > duree) then
sell evalpos contracts at market
exitshort evalpos contract at market
endif

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 14:35

et je n'ai pas fait de MTF ;-)

Re: Debug backtest avant passage en prod

par trappiste73 » 24 mai 2024 17:10

:bravo:

Re: Debug backtest avant passage en prod

par trappiste73 » 24 mai 2024 17:13

Et oui de faire variable par variable, c'est une des clés. On peut comprendre ce qui se passe dans le backtest. Après, en fin d'analyse, pourquoi pas repasser par 2 variables à la fois, pour réouvrir le champs des possibles.

Dès que j'aurai un peu de temps, début juin j'espère, je vais le travailler sur l'unité 10s et je te dirai si, et dans ce cas comment, j'ai réussi à trouver quelque chose. ;)

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 17:39

J'suis en plein dans le 10s, avec pour objectif, un maximum de trade et un mode "mitraillette", sinon ça ne sert à rien.

Tjrs pas de MTF, ça viendra ;-)

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 17:40

Mais en un mot (comme en plusieurs) c'est la méthode qui est le plus important pour pouvoir suivre le chemin.

Merci pour tout.

Re: Debug backtest avant passage en prod

par trappiste73 » 24 mai 2024 19:46

bah ... :bravo: ;)

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 21:14

Grrr le 10s me donne vraiment du fil à tordre.

Pourtant je suis sur que c'est là qu'il y a le plus de potentiel pour un robot scalpeur.

Seul bémol avec 200K Bougie on a à peine un mois d'historique. Quelle confiance accorder à ce genre de backtest pour une mise en prod ?

Re: Debug backtest avant passage en prod

par falex » 24 mai 2024 21:16

Autre constat "amusant" : la première partie de séance étant toujours la plus volatile c'est là où mes essais d'hier et aujourd'hui on le mieux performé. Après 18h00 ça ne donne plus grand chose.

Re: Debug backtest avant passage en prod

par trappiste73 » 24 mai 2024 22:20

Ah oui, chez prt : 1 million.

Sur les restrictions horaires, je ne suis pas fan : ça ressemble à de la sur optimisation. À part jours fériés et week-ends bien sûr.

Re: Debug backtest avant passage en prod

par kelly » 25 mai 2024 11:12

Temps ultra-courts : rarement trouvé de systèmes performants à terme. Au mieux du 5 ou 15 minutes et c'est ce que je retrouve en lisant les habitués de prt. Il y'a sans doute une raison vu les cadors qui en causent.
Ca ne veut pas dire que c'est impossible mais on doit sans doute trop chargé en degré de liberté : j'ai remarqué que plus tu diminues le recours aux MM, indics,trucs avec calculs etc et plus les scores sont corrects.
donc résultats en ut courtes = f("complexité" calculs) ?
Et peut être tout simplement que le langage de prt n'est pas adapté pour.
Simple avis.

Re: Debug backtest avant passage en prod

par kelly » 25 mai 2024 11:17

@trappiste : 100% OK pour les horaires , faut faire le plus standard possible. D'autant que plus tu mets des restrictions , plus il est difficile d'analyser les résultats.
Parfois le mieux est l'ennemi du bien.

Re: Debug backtest avant passage en prod

par falex » 25 mai 2024 12:30

Ok pour vos remarques.

Je suis quand même surpris par le "pas fan" des restrictions horaires. C'est pourtant en suivant le chemin et comprendre comment éliminer chaque perte que j'en suis arrivé là, une simple remarque que presque tous les trades perdants était après 18h00 sur le premier algo publié.

Je vais allez méditer tout ça avec mon ami petitbambou (c) ;-)

Re: Debug backtest avant passage en prod

par falex » 25 mai 2024 12:31

@kelly, quand tu parles des cadors de prt, tu fais allusions aux forum prorealcode ?

Re: Debug backtest avant passage en prod

par trappiste73 » 25 mai 2024 13:34

Moi je crois ce que je vois : le 1s et le 10s sont mes 2 ut préférées. Et aucun algo au-delà de la minute. Attention, j’y suis arrivé en venant du 4h et très probablement, on ne peut pas faire l’économie du chemin … ;)


Re: Debug backtest avant passage en prod

par kelly » 25 mai 2024 15:52

@falex :
- oui j'évoquais prorealcode mais il y'a des sites US qui causent du sujet avec d'autres programmes.
- pour les restrictions , je pensais aux multiples changements intraday entre autres : "tant entre 9.00 et 10.30 puis rien entre 10.31 et 12.30 etc....." va t en analyser après :hein:
Perso l'algo UT15 (en prod) tourne uniquement en cours de séance : donc limitation oui mais une seule (et puis si tu laisses hors séance , il faut modifier le spread selon, bref compliqué ). Le UT4H (timing long) tournait non stop y compris en overnight mais tests faits , vu la longueur de l'ut ça ne change quasi rien. donc 8.30 17.29.

ps : pas possible de voir la vidéo

Re: Debug backtest avant passage en prod

par falex » 26 mai 2024 11:15

Ah oui mince pour la vidéo ! C'était "on the road again" de Bernard Lavilliers.

Sujets similaires
Help ! appel a debug ! pyramidage avec sortie flat
Fichier(s) joint(s) par ladefense92800 » 03 juin 2015 23:30 (25 Réponses)
serie person of interest cree J Nolan prod jj abrams
par Lysan » 11 févr. 2017 09:55 (3 Réponses)
Prt BackTest Fiabilité; inclure premier passage
par Deejay87 » 23 déc. 2018 18:41 (1 Réponses)
Backtest cohérence passage d'ordre
Fichier(s) joint(s) par Zogzog » 02 avr. 2020 14:15 (0 Réponses)
Pro Backtest
par VinceMan » 17 juil. 2012 14:30 (4 Réponses)
backtest PRT?
Fichier(s) joint(s) par Djobydjoba » 05 avr. 2013 09:26 (11 Réponses)
Backtest et Excel
par Greg31600 » 18 avr. 2013 01:26 (4 Réponses)
code PRT > RSBoll/Seuil backtest
par newworld » 16 juin 2013 17:57 (4 Réponses)
ProRealTime backtest : appel à témoin
par falex » 17 août 2013 16:19 (1 Réponses)
Backtest Prorealtime
par Fredo » 04 oct. 2013 16:34 (5 Réponses)