merci
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
FLATBEFORE = 093000
FLATAFTER = 173000
ça me met erreur syntaxe quelqu’un peut m'aider ? désolé j’apprends a programmer en prt.
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
FLATBEFORE = 093000
FLATAFTER = 173000
ça me met erreur syntaxe quelqu’un peut m'aider ? désolé j’apprends a programmer en prt.
je pense qu'il ne faut pas mettre de "0" devant ton heure de départ.
ou encore , un petit bout de code du genre :
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ton backtest proprement dit
ENDIF
ou encore , un petit bout de code du genre :
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ton backtest proprement dit
ENDIF
eventuellement >= pour le time >800000
Le 0 devant : normalement ça ne change rien ça m'arrive de le mettre.
Perso j'utilise la même méthode que clodreb, mais d'autre ont utilisés les nouvelles directives ...
Le 0 devant : normalement ça ne change rien ça m'arrive de le mettre.
Perso j'utilise la même méthode que clodreb, mais d'autre ont utilisés les nouvelles directives ...
Ok donc pour le 9h 17h30 je mets ça, merci beaucoup, et même s'il y a un changement d'heure je laisse comme ça ? ou le changement d'heure affecte le code ?
Les trades se sont lancés alors qu'il est 8h30 chez moi et 7h30 sur les graphes
J'ai mis ça:
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ENDIF
J'ai mis ça:
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ENDIF
Autre problème, En backtest mon indicateur m'a fait gagner un trade en achetant pour revendre, alors qu'en paper quand il était en fonction, et il a vendu pour racheter donc m'a fait perdre, pourquoi fait-il le contraire que le backtest ? sur le même trade.
George Henry a écrit :Les trades se sont lancés alors qu'il est 8h30 chez moi et 7h30 sur les graphes
J'ai mis ça:
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ENDIF
ça dépend aussi de l'unité de temps que tu utilises.
La prise de position se fait toujours à l'ouverture de la bougie suivante de ton signal.
Si tu es en UT 30min, que ton code te donne un signal à 8h, il prendra position à 8h30
Sans voir ton code, c'est un peu compliqué de répondre à cette question.George Henry a écrit :Autre problème, En backteste mon indicateur ma fait gagner un trade en achetant pour revendre, alors que en paper quand il étais en fonction, et il vendu pour racheter donc ma fait perdre, pourquoi fait il le contraire que le backteste ? sur le même trade.
désolé :musique:
Voilà le code d'un de mes robots, c'était une de mes stratégie de trading et je voulais voir si le robots peut trader dessus, je suis en UT 1min, mais cette nuit il a trade a 2h du matin a 7h du matin enfaite pendant toute la nuit.
Code : #
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ENDIF
// Conditions pour ouvrir une position acheteuse
indicator1 = close
indicator2 = BollingerDown[20](close)
c1 = (indicator1 < indicator2)
indicator3 = RSI[9](close)
c2 = (indicator3 < 25)
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
indicator4 = close
indicator5 = BollingerUp[20](close)
c3 = (indicator4 > indicator5)
indicator6 = RSI[9](close)
c4 = (indicator6 > 75)
IF c3 AND c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Stops et objectifs
SET STOP pLOSS 20
SET TARGET pPROFIT 10
il est tout à fait logique que ton backtest ne prenne pas en compte ta condition sur ton heure :
tu as mis ton code de prise de position APRES ta condition sur l'heure. tu dois mettre ton code DANS la condition sur l'heure :
ton code :
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ENDIF
ton code de prise de position
ce que tu dois faire :
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ton code de prise de position
ENDIF
tu as mis ton code de prise de position APRES ta condition sur l'heure. tu dois mettre ton code DANS la condition sur l'heure :
ton code :
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ENDIF
ton code de prise de position
ce que tu dois faire :
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
ton code de prise de position
ENDIF
ça donne ça ?
Code : #
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
monHeure = (time > 80000) and (time < 163000)
IF monheure THEN
// Conditions pour ouvrir une position acheteuse
indicator1 = close
indicator2 = BollingerDown[20](close)
c1 = (indicator1 < indicator2)
indicator3 = RSI[9](close)
c2 = (indicator3 < 25)
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
indicator4 = close
indicator5 = BollingerUp[20](close)
c3 = (indicator4 > indicator5)
indicator6 = RSI[9](close)
c4 = (indicator6 > 75)
IF c3 AND c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Stops et objectifs
SET STOP pLOSS 6
SET TARGET pPROFIT 3
ENDIF
perso, je laisse la définition de mes signaux en dehors de la condition sur les heures.
c'est plus la prise de position qui doit être bornées dans tes heures.
ce qui donne plutôt
[/quote]
Dans ce code, j'ai supposé que tes sorties de trades pouvaient se faire en dehors de tes heures.
(ce serait bête de limiter un stop aux heures d'ouverture car si tu as de grands décalages durant la nuit, ton stop ne se déclencherait pas)
c'est plus la prise de position qui doit être bornées dans tes heures.
ce qui donne plutôt
Code : #
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// conditions horaires pour la prise de position
monHeure = (time > 80000) and (time < 163000)
// Conditions pour ouvrir une position acheteuse
indicator1 = close
indicator2 = BollingerDown[20](close)
c1 = (indicator1 < indicator2)
indicator3 = RSI[9](close)
c2 = (indicator3 < 25)
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
indicator4 = close
indicator5 = BollingerUp[20](close)
c3 = (indicator4 > indicator5)
indicator6 = RSI[9](close)
c4 = (indicator6 > 75)
IF c3 AND c4 and monheure THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Stops et objectifs
SET STOP pLOSS 6
SET TARGET pPROFIT 3
Dans ce code, j'ai supposé que tes sorties de trades pouvaient se faire en dehors de tes heures.
(ce serait bête de limiter un stop aux heures d'ouverture car si tu as de grands décalages durant la nuit, ton stop ne se déclencherait pas)
Ok merci beaucoup, grâce a toi je comprend mieux comment marche prt.
pour info, si tu as l'intention d'utiliser ProOrder pour lancer tes trades automatiquement par la suite , il faut savoir que prt n'ouvre pas ton trade en mettant directement ton stop et ton target.
en clair, il le fait en 3 opérations distinctes :
- ouverture du trade
- position de ton stop
- position de ton target
Si tu as l'intention de poser des Stop de 6 points, comme il y a un délai entre ton ouverture et ton ouverture de Stop, prt risque souvent de te dire que ton stop est inférieur à la limite permise.
Et dans ce cas, ProOrder se coupe.
il vaut mieux le savoir si tu as dans l'idée d'utiliser le trading automatique par la suite
ps : la doc est toujours utile à lire : https://www.prorealtime.com/fr/pdf/probacktest.pdf
en clair, il le fait en 3 opérations distinctes :
- ouverture du trade
- position de ton stop
- position de ton target
Si tu as l'intention de poser des Stop de 6 points, comme il y a un délai entre ton ouverture et ton ouverture de Stop, prt risque souvent de te dire que ton stop est inférieur à la limite permise.
Et dans ce cas, ProOrder se coupe.
il vaut mieux le savoir si tu as dans l'idée d'utiliser le trading automatique par la suite
ps : la doc est toujours utile à lire : https://www.prorealtime.com/fr/pdf/probacktest.pdf
Merci pour tes conseils, je lis déjà probuilder et probacktest mais merci pour tes conseils.
J'ai juste une dernière question, exemple avec le code que tu m'as corrigé quand le prix dépasse la bollinger supp et le rsi 9 à 75 normalement il y a un ordre de vente à découvert qui se lance, et pourtant en backtest des fois je vois le contraire, un ordre d'achat, c'est des bugs normaux ? je n'ai pas encore vu si le robot le fait aussi j’attends qu'il fasse un trade comme ça.
J'ai juste une dernière question, exemple avec le code que tu m'as corrigé quand le prix dépasse la bollinger supp et le rsi 9 à 75 normalement il y a un ordre de vente à découvert qui se lance, et pourtant en backtest des fois je vois le contraire, un ordre d'achat, c'est des bugs normaux ? je n'ai pas encore vu si le robot le fait aussi j’attends qu'il fasse un trade comme ça.
je n'ai jamais eu ce genre de problème et en lisant ton code, je ne vois pas directement d'où ça peut venir.
N'ayant pas la possibilité de lancer prt pour l'instant, je ne sais pas tester ton code.
A priori, je dirai qu'il semble correct .
Le meilleur moyen pour faire du debug est de mettre uniquement les conditions sur l'achat et de mettre en commentaire le reste de ton code sur la vente.
tu verras tout de suite si tu as les mêmes signaux ou non.
et après tu fais l'inverse en désactivant l'achat et en activant la vente.
bon courage
N'ayant pas la possibilité de lancer prt pour l'instant, je ne sais pas tester ton code.
A priori, je dirai qu'il semble correct .
Le meilleur moyen pour faire du debug est de mettre uniquement les conditions sur l'achat et de mettre en commentaire le reste de ton code sur la vente.
tu verras tout de suite si tu as les mêmes signaux ou non.
et après tu fais l'inverse en désactivant l'achat et en activant la vente.
bon courage
Ok merci, je fais ça.
Bonjour, petite question, a la place de mettre la restriction en heure pour les trade, peut on les mettre en point/pips ? exemple que sur l'eurusd sa ne trade que quand l'eurusd est a 0,8 ?
Sujets similaires
Backtest : Pour ou contre les optimisations
Fichier(s) joint(s) par teg54 » 23 avr. 2014 15:00 (21 Réponses)
Fichier(s) joint(s) par teg54 » 23 avr. 2014 15:00 (21 Réponses)
comportement différent pro-Order / backtest pour même code
Fichier(s) joint(s) par Ernesto » 15 août 2014 16:28 (5 Réponses)
Fichier(s) joint(s) par Ernesto » 15 août 2014 16:28 (5 Réponses)
