MPLParticipant
Average
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
Concernant 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é.
MPLParticipant
Average
Merci 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…
// ==================================================================================================================
// GESTION DU RISQUE ; ENCADREMENT TRADING ; MONEY MANAGEMENT - Début
// -----------------------------
// Restriction de la période de trading (données de base)
DebutPlageHoraire1 = 091000
FinPlageHoraire1 = 120000
DebutPlageHoraire2 = 140000
FinPlageHoraire2 = 152000
DebutPlageHoraire3 = 154000
FinPlageHoraire3 = 173000
PlageHoraireTradingOK = (time>=DebutPlageHoraire1 AND time<FinPlageHoraire1) OR (time>=DebutPlageHoraire2 AND time<FinPlageHoraire2) OR (time>=DebutPlageHoraire3 AND time<FinPlageHoraire3)
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Money Management
MontantCapital=30000
RisqueParTrade=0.5/100
ValeurPointContrat=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))/2
kijunM1=(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 & NextPPdown
IGNORED, 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édente
IF ONMARKET THEN
NbContratsInitial=NbContratsInitial[1]
NiveauR1=NiveauR1[1]
NivEntreeTheorique=NivEntreeTheorique[1]
ENDIF
// ========================================================
// LONG
// Prise de position si conditions OK
IF mytnSignalCdKIJ=2 AND NOT ONMARKET AND PlageHoraireTradingOK AND NOT daysForbiddenEntry THEN
// Entrée sur le marché
NbContratsInitial=round((MontantCapital*RisqueParTrade)/((close-open)*ValeurPointContrat))
NivEntreeTheorique=close
BUY NbContratsInitial CONTRACTS AT MARKET
// SL initial
SL=open
SLenPoints=close-SL
SET STOP LOSS SLenPoints
// TakeProfit 50% sur R1
NiveauR1=close+(close-open)
SELL round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMIT
ENDIF
// LONG
// ========================================================
// ========================================================
// SHORT
// Prise de position si conditions OK
IF mytnSignalCdKIJ=-2 AND NOT ONMARKET AND PlageHoraireTradingOK AND NOT daysForbiddenEntry THEN
// Entrée sur le marché
NbContratsInitial=round((MontantCapital*RisqueParTrade)/((open-close)*ValeurPointContrat))
NivEntreeTheorique=close
SELLSHORT NbContratsInitial SHARES AT MARKET
// SL initial
SL=min(open,KijunM1+3)
SLenPoints=SL-close
SET STOP LOSS SLenPoints
// TakeProfit 50% sur R1
NiveauR1=close-(open-close)
EXITSHORT round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMIT
ENDIF
// SHORT
// ========================================================
// -----------------------------
// PRISE DE POSITION - Fin
// ==================================================================================================================
// ==================================================================================================================
// SORTIE DE POSITION - Début
// -----------------------------
IF LONGONMARKET AND close < kijunM1-1 THEN
SELL AT MARKET
ENDIF
IF SHORTONMARKET AND close > kijunM1+1 THEN
EXITSHORT AT MARKET
ENDIF
// -----------------------------
// SORTIE DE POSITION - Fin
// ==================================================================================================================
// ==================================================================================================================
// GESTION DES SL ET TP - Début
// -----------------------------
TIMEFRAME(default)
IF ONMARKET THEN
StatutSL=StatutSL[1] // (StatutSL O = pas de SL ; Statut SL 1 = SL à BE ; Statut SL 2 = SL >BE)
NivEntreeReel=NivEntreeReel[1]
ELSE
StatutSL=0
NivEntreeReel=0
ENDIF
// Récupère le niveau d'entrée réel
IF ONMARKET AND COUNTOFLONGSHARES=NbContratsInitial THEN
NivEntreeReel=POSITIONPRICE
ENDIF
// ========================================================
// LONG
// Gestion des SL et TP en 5s
IF LONGONMARKET THEN
// Stratégie revente partielle sur R1 ****
IF COUNTOFLONGSHARES=NbContratsInitial THEN
SELL round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMIT
ELSE
StatutSL=1
ENDIF
// STRATÉGIE BE : place (et replace) le SL BE bougie après bougie
IF StatutSL=1 THEN
IF NivEntreeReel=0 THEN
SELL AT NivEntreeTheorique+1 STOP
ELSE
SELL AT NivEntreeReel+1 STOP
ENDIF
ENDIF
// Une fois le SL en BE, Take Profit sur NextPPupTresFort
IF StatutSL=1 THEN
SELL AT myNextPPupTresFort LIMIT
ENDIF
ENDIF
// LONG
// ========================================================
// ========================================================
// SHORT
// Gestion des SL et TP en 5s
IF SHORTONMARKET THEN
// Stratégie revente partielle sur R1 ****
IF COUNTOFSHORTSHARES=NbContratsInitial THEN
EXITSHORT round(50/100*NbContratsInitial) SHARES AT NiveauR1 LIMIT
ELSE
StatutSL=1
ENDIF
// STRATÉGIE BE : place (et replace) le SL BE bougie après bougie
IF StatutSL=1 THEN
IF NivEntreeReel=0 THEN
EXITSHORT AT NivEntreeTheorique-1 STOP
ELSE
EXITSHORT AT NivEntreeReel-1 STOP
ENDIF
ENDIF
// Une fois le SL en BE, Take Profit sur NextPPdownTresFort
IF StatutSL=1 THEN
EXITSHORT AT myNextPPdownTresFort LIMIT
ENDIF
ENDIF
// SHORT
// ========================================================
// -----------------------------
// GESTION DES SL ET TP - Fin
// ==================================================================================================================
Sur quel instrument stp ?
Une 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).
MPLParticipant
Average
Merci 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”…)
MPLParticipant
Average
Merci 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…
En backtest les résultats sont ils identiques entre les 2 versions de PRT ?
MPLParticipant
Average
Je ne sais pas, je vais regarder.
MPLParticipant
Average
Bonjour 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
Si 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..