Comportement de l'instruction Timeframe dans la version v11 de PRT

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #110462 quote
    MPL
    Participant
    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

    #110465 quote
    Nicolas
    Keymaster
    Master

    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é.

    MPL thanked this post
    timeframe-prt-version-11.png timeframe-prt-version-11.png
    #110476 quote
    MPL
    Participant
    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 :

    1. 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
    2. En essayant de circonscrire le problème, je me rends compte du problème du jeu de couleur évoqué précédemment
    3. 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
    // ==================================================================================================================
    
    #110486 quote
    Nicolas
    Keymaster
    Master

    Sur quel instrument stp ?

    #110504 quote
    MPL
    Participant
    Average

    MiniDax Future (DXMXXXX)

    #110690 quote
    Nicolas
    Keymaster
    Master

    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).

    MPL thanked this post
    #110786 quote
    MPL
    Participant
    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”…)

    #110825 quote
    MPL
    Participant
    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…

    #110864 quote
    Nicolas
    Keymaster
    Master

    En backtest les résultats sont ils identiques entre les 2 versions de PRT ?

    #110882 quote
    MPL
    Participant
    Average

    Je ne sais pas, je vais regarder.

    #110921 quote
    MPL
    Participant
    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

    #110923 quote
    Nicolas
    Keymaster
    Master

    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..

    MPL thanked this post
Viewing 12 posts - 1 through 12 (of 12 total)
  • You must be logged in to reply to this topic.

Comportement de l'instruction Timeframe dans la version v11 de PRT


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
MPL @mpl Participant
Summary

This topic contains 11 replies,
has 2 voices, and was last updated by Nicolas
6 years, 4 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 10/18/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...