Comportement de l'instruction Timeframe dans la version v11 de PRT
Forums › ProRealTime forum Français › Support ProOrder › Comportement de l'instruction Timeframe dans la version v11 de PRT
- This topic has 11 replies, 2 voices, and was last updated 5 years ago by Nicolas.
-
-
10/18/2019 at 9:44 AM #110462
Bonjour à tous,
Avez-vous rencontré des soucis avec la fonction TimeFrame en utilisant PRT V11? Pour ma part :
- Dans le code, le jeu de couleurs devant les numéros de lignes qui permettait de distinguer les différentes parties du code en fonction du TimeFrame utilisé a disparu.
- Par ailleurs je suspecte (sans en être sûr) que la fonction ne fonctionne plus quand le système de trading est en route sur le server…
Merci beaucoup pour vos retours,
Mikaël
10/18/2019 at 9:56 AM #110465Concernant la coloration des zones pour différencier le code des différentes timefames, je confirme qu’il y a un léger soucis (voir image jointe).
Pour le fonctionnement en ProOrder, il faudrait pouvoir vérifier avec le code en question ?
Je vais reporter le problème de la coloration de mon côté, merci de l’avoir signalé.
1 user thanked author for this post.
10/18/2019 at 10:35 AM #110476Merci beaucoup pour ta réponse Nicolas,
Le code est ci-dessous mais je peux déjà essayer d’être un peu plus précis dans le diagnostic et le cheminement :
- Problème de départ : un système de trading que j’utilise depuis un bon moment sur la V10.3 ne prend plus certaines positions sur la version V11
- En essayant de circonscrire le problème, je me rends compte du problème du jeu de couleur évoqué précédemment
- En me disant que ça vient peut-être de ça j’épure le code en enlevant toute notion de TimeFrame et là ça “marche”
Encore une fois, je ne suis pas encore sûr que le problème vienne de là et je continue mes investigations et tests mais je voulais savoir si d’autres avaient eu ce type de soucis…
Merci encore,
Mikaël
Notes pour le code :
- Grossièrement, l’analyse, la prise de position et la sortie de position se faisait en unité 1 minute et la gestion des Stop Loss et Take Profit dans le TimeFrame par défaut (5 secondes en règle générale) – ça fonctionnait avec la v10.3, ça ne fonctionne pas toujours avec la v11.
- Quand je réécris le code “tout en 1 minute”, ça fonctionne sur la v11…
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236// ==================================================================================================================// GESTION DU RISQUE ; ENCADREMENT TRADING ; MONEY MANAGEMENT - Début// -----------------------------// Restriction de la période de trading (données de base)DebutPlageHoraire1 = 091000FinPlageHoraire1 = 120000DebutPlageHoraire2 = 140000FinPlageHoraire2 = 152000DebutPlageHoraire3 = 154000FinPlageHoraire3 = 173000PlageHoraireTradingOK = (time>=DebutPlageHoraire1 AND time<FinPlageHoraire1) OR (time>=DebutPlageHoraire2 AND time<FinPlageHoraire2) OR (time>=DebutPlageHoraire3 AND time<FinPlageHoraire3)daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Money ManagementMontantCapital=30000RisqueParTrade=0.5/100ValeurPointContrat=5// -----------------------------// GESTION DU RISQUE ; ENCADREMENT TRADING ; MONEY MANAGEMENT - Fin// ==================================================================================================================// ==================================================================================================================// CALCUL DES DONNÉES DE BASE & ANALYSES INTERMÉDIAIRES - Début// -----------------------------// Ichimoku 1 minute (tenkanM1 ; kijunM1 ; ssaM1 ; ssbM1)TIMEFRAME(1 minutes, UpdateOnclose)// tenkanM1=(highest[9](high)+lowest[9](low))/2kijunM1=(highest[26](high)+lowest[26](low))/2// ssaM1=(tenkanM1[26]+kijunM1[26])/2// ssbM1=(highest[52](high[26])+lowest[52](low[26]))/2// Calcul des NextPPup & NextPPdownIGNORED, myNextPPupTresFort, IGNORED, myNextPPdownTresFort = CALL "#MPSCALPm1-TN-NextPPs"// Récupération des signaux KIJUN (mytnSignalCdKIJ=2 => signal de hausse ; mytnSignalCdKIJ=-2 => signal de baisse)mytnSignalCdKIJ = CALL "#MPSCALPm1-TN-CdKIJUN"[1]// -----------------------------// CALCUL DES DONNÉES DE BASE & ANALYSES INTERMÉDIAIRES - Fin// ==================================================================================================================// ==================================================================================================================// PRISE DE POSITION - Début// -----------------------------// Reconduction de la valeur de la barre précédenteIF ONMARKET THENNbContratsInitial=NbContratsInitial[1]NiveauR1=NiveauR1[1]NivEntreeTheorique=NivEntreeTheorique[1]ENDIF// ========================================================// LONG// Prise de position si conditions OKIF mytnSignalCdKIJ=2 AND NOT ONMARKET AND PlageHoraireTradingOK AND NOT daysForbiddenEntry THEN// Entrée sur le marchéNbContratsInitial=round((MontantCapital*RisqueParTrade)/((close-open)*ValeurPointContrat))NivEntreeTheorique=closeBUY NbContratsInitial CONTRACTS AT MARKET// SL initialSL=openSLenPoints=close-SLSET STOP LOSS SLenPoints// TakeProfit 50% sur R1NiveauR1=close+(close-open)SELL round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMITENDIF// LONG// ========================================================// ========================================================// SHORT// Prise de position si conditions OKIF mytnSignalCdKIJ=-2 AND NOT ONMARKET AND PlageHoraireTradingOK AND NOT daysForbiddenEntry THEN// Entrée sur le marchéNbContratsInitial=round((MontantCapital*RisqueParTrade)/((open-close)*ValeurPointContrat))NivEntreeTheorique=closeSELLSHORT NbContratsInitial SHARES AT MARKET// SL initialSL=min(open,KijunM1+3)SLenPoints=SL-closeSET STOP LOSS SLenPoints// TakeProfit 50% sur R1NiveauR1=close-(open-close)EXITSHORT round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMITENDIF// SHORT// ========================================================// -----------------------------// PRISE DE POSITION - Fin// ==================================================================================================================// ==================================================================================================================// SORTIE DE POSITION - Début// -----------------------------IF LONGONMARKET AND close < kijunM1-1 THENSELL AT MARKETENDIFIF SHORTONMARKET AND close > kijunM1+1 THENEXITSHORT AT MARKETENDIF// -----------------------------// SORTIE DE POSITION - Fin// ==================================================================================================================// ==================================================================================================================// GESTION DES SL ET TP - Début// -----------------------------TIMEFRAME(default)IF ONMARKET THENStatutSL=StatutSL[1] // (StatutSL O = pas de SL ; Statut SL 1 = SL à BE ; Statut SL 2 = SL >BE)NivEntreeReel=NivEntreeReel[1]ELSEStatutSL=0NivEntreeReel=0ENDIF// Récupère le niveau d'entrée réelIF ONMARKET AND COUNTOFLONGSHARES=NbContratsInitial THENNivEntreeReel=POSITIONPRICEENDIF// ========================================================// LONG// Gestion des SL et TP en 5sIF LONGONMARKET THEN// Stratégie revente partielle sur R1 ****IF COUNTOFLONGSHARES=NbContratsInitial THENSELL round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMITELSEStatutSL=1ENDIF// STRATÉGIE BE : place (et replace) le SL BE bougie après bougieIF StatutSL=1 THENIF NivEntreeReel=0 THENSELL AT NivEntreeTheorique+1 STOPELSESELL AT NivEntreeReel+1 STOPENDIFENDIF// Une fois le SL en BE, Take Profit sur NextPPupTresFortIF StatutSL=1 THENSELL AT myNextPPupTresFort LIMITENDIFENDIF// LONG// ========================================================// ========================================================// SHORT// Gestion des SL et TP en 5sIF SHORTONMARKET THEN// Stratégie revente partielle sur R1 ****IF COUNTOFSHORTSHARES=NbContratsInitial THENEXITSHORT round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMITELSEStatutSL=1ENDIF// STRATÉGIE BE : place (et replace) le SL BE bougie après bougieIF StatutSL=1 THENIF NivEntreeReel=0 THENEXITSHORT AT NivEntreeTheorique-1 STOPELSEEXITSHORT AT NivEntreeReel-1 STOPENDIFENDIF// Une fois le SL en BE, Take Profit sur NextPPdownTresFortIF StatutSL=1 THENEXITSHORT AT myNextPPdownTresFort LIMITENDIFENDIF// SHORT// ========================================================// -----------------------------// GESTION DES SL ET TP - Fin// ==================================================================================================================10/18/2019 at 12:20 PM #11048610/18/2019 at 1:38 PM #11050410/21/2019 at 9:45 AM #110690Une correction est en cours pour la coloration des zones de code pour l’instruction TIMEFRAME. Merci de l’avoir signalé.
Concernant ton problème de différences de prise de position entre 10.3 et v11, compares-tu avec le même instrument (contrat DAX Futures) ? (je suppose que oui, mais c’est le cheminement pour bien comprendre).
1 user thanked author for this post.
10/22/2019 at 8:34 AM #110786Merci Nicolas,
Oui, je compare bien le même instrument.
Une chose qui est peut-être importante et que je n’ai pas précisé : dans les 2 cas (v10.3 et v11), j’étais en papertrading (sur la plateforme “avec un portefeuille virtuel”). Je dis ça parce que, sauf erreur de ma part et contrairement à la “vraie” plateforme, on n’a pas le choix de la version en papertrading : la semaine dernière elle se lançait en v11 et ce matin à ma grande surprise, elle se lance de nouveau dans une version précédente (je ne crois pas avoir fait de fausse manoeuvre mais peut-être que si?)…
Au passage et pour information, la fenêtre “Rapport détaillée” ne semble plus fonctionner avec ce “retour avec la version précédente” : il n’y a aucune données, comme si aucun trade n’avaient été passés (alors que l’historique de tous les trades est toujours bien présent dans la “liste des trades”…)
10/22/2019 at 1:17 PM #110825Merci Nicolas,
Oui, je compare bien le même instrument.
Une chose qui est peut-être importante et que je n’ai pas précisé : dans les 2 cas (v10.3 et v11), j’étais en papertrading (sur la plateforme “avec un portefeuille virtuel”). Je dis ça parce que, sauf erreur de ma part et contrairement à la “vraie” plateforme, on n’a pas le choix de la version en papertrading : la semaine dernière elle se lançait en v11 et ce matin à ma grande surprise, elle se lance de nouveau dans une version précédente (je ne crois pas avoir fait de fausse manoeuvre mais peut-être que si?)…
Au passage et pour information, la fenêtre “Rapport détaillée” ne semble plus fonctionner avec ce “retour avec la version précédente” : il n’y a aucune données, comme si aucun trade n’avaient été passés (alors que l’historique de tous les trades est toujours bien présent dans la “liste des trades”…)
[MàJ] : cet après-midi, à la réouverture de la plateforme en papertrading (toujours en v10.3) le “Rapport détaillé” fonctionne à nouveau…
10/22/2019 at 4:12 PM #11086410/22/2019 at 5:12 PM #11088210/23/2019 at 8:50 AM #110921Bonjour Nicolas,
À première vue, mêmes résultats en backtest sur les 2 versions.
Est-ce que je dois comprendre à travers tes messages précédents qu’à priori le problème soulevé n’est “que” un problème d’affichage (couleurs devant les lignes de code…) mais n’a pas de conséquence sur le fonctionnement des systèmes de trading (ce qui ne m’étonnerait pas particulièrement, comme indiqué dans mon tout premier post, je ne suis pas du tout sûr que mon problème vienne de là…) ?
Dans tous les cas, merci pour tout
10/23/2019 at 9:20 AM #110923Si les moteurs d’évaluations du code (qui ont changé entre les versions) retournent les mêmes résultats en backtest, je penche tout simplement sur un aléa de marché (ou technique ?) qui a provoqué ces différences. Puisqu’il s’agit de paper trading, je pense qu’il faut laisser tourner pour ‘voir’ si un quelconque nouveau raté survient..
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on