Entre 20h30 et 21h00, acheter 1 contrat au marché

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #230304 quote
    rouxdan1
    Participant
    New

    Bonjour à tous,

    Je souhaite écrire un programme, à mon avis tout simple, me permettant de faire acheter par la machine 1 contrat d’indice tous les jours entre 20h30 et 21h00 dans les conditions suivantes (sachant que l’unité de temps de trading (timeframe) est de 30mn):

    • la bougie précédente, entre 20h00 et 20h30 doit être verte
    • la bougie précédente cette dernière, donc entre 19h30 et 20h00, doit être verte également
    • L’indicateur stochastics (5.3.3) doit se situer en zone inférieure ou intermédiaire durant les 2 bougies de condition, c’est à dire inférieur à 80 entre 19h30 et 20h30.

     

    CI-dessous le programme que j’ai écrit, qui apparemment ne comporte pas de faute de syntaxe, mais qui ne tourne pas

    Un très grand merci si vous pouvez m’aider

    Daniel

    
    
    Defparam Cumulateorders=false
    Defparam Flatbefore = 203000
    Defparam Flatafter = 210000
    
    //Conditions
    
    c1 = close [1] > open [1]
    c2 = close [2] > open [2]
    c3 = Time > 203000 AND TIME < 210000
    
    IF NOT LongOnMarket AND c1 AND c2 AND c3 THEN
    BUY 1 SHARE AT MARKET
    ENDIF
    
    IF TRADEINDEX (0) > 1 THEN
    SELL AT MARKET
    ENDIF
    
    
    #230305 quote
    fifi743
    Participant
    Master

    sur quel UT est il utilisé

    #230335 quote
    rouxdan1
    Participant
    New

    Bonjour Fifi, merci de votre réponse: L’UT utilisé est 30mn, je l’ai précisé dans la 1ère phrase de mon message.

    #230336 quote
    fifi743
    Participant
    Master

    a oui ,pas vu

    a la place de time mettre opentime

    et comme c’est du 30 min mettre opentime>=203000 and opentime<=210000

    #230340 quote
    rouxdan1
    Participant
    New

    Super, merci Fifi, là il est trop tard, mais demain je vais corriger ça et voir ce que ça donne. Je vous tiens au courant bien sûr. Encore merci !

    #230369 quote
    rouxdan1
    Participant
    New

    Hélas, avec opentime au lieu de time, ça ne marche pas plus, voici une copie d’écran du résultat (mon programme s’appelle E.L)

    J’ai mis un capital de départ de 20.000€ et essayé de faire tourner le modèle avec le Dow Jones: rien ! Pas un trade.

    Capture-decran-2024-03-24-a-19.18.37.jpg Capture-decran-2024-03-24-a-19.18.37.jpg
    #230371 quote
    rouxdan1
    Participant
    New

    Au fait est ce que le 1 signifie bien la bougie précédente, 2 la bougie encore précédente, et 0 la bougie encours ?

    #230377 quote
    fifi743
    Participant
    Master

    enlevé C3 il serre a rien

    #230408 quote
    Iván González
    Moderator
    Master

    Hola Aquí lo tienes

    Defparam Cumulateorders=false
    Defparam Flatbefore = 203000
    Defparam Flatafter = 210000
    
    //Conditions
    c1 = close [1] > open [1]
    c2 = close [2] > open [2]
    c3 = Stochasticd[5,3,3](close) < 80
    
    if time >=203000 and time <=210000 then
    IF NOT LongOnMarket AND c1 AND c2 AND c3 and c3[1] THEN
    BUY 1 SHARE AT MARKET
    ENDIF
    endif
    #230440 quote
    rouxdan1
    Participant
    New

    Bonjour Ivan,

    un grand merci pour ce retour et merci d’avoir inclus la 3è condition, ce qui n’avait pas encore été fait !

    Malheureusement quand je back teste, j’ai encore un problème au niveau du stochastics, tel que vous l’avez rédigé.

    Ci-dessous le blocage enregistré:

    Capture-decran-2024-03-25-a-19.39.08.png Capture-decran-2024-03-25-a-19.39.08.png
    #230444 quote
    Iván González
    Moderator
    Master

    Bonjour, j'imagine que c'est parce que vous disposez d'une ancienne version de PRT. Dans la V11, la fonction Stochasticd[5,3,3](close) n'était pas stockée. Dans ce cas vous devrez programmer la ligne K puis la ligne D.

    lineK = Stochastic[5,3](close)
    lineD = average[3](linek)
    #230474 quote
    rouxdan1
    Participant
    New

    Bonjour Ivan, encore merci de votre dernier retour.
    En fait, je n’ai même pas la version PRT 11 mais 10.4 !
    Alors, j’ai repris vos 2 lignes 1 et 2 et je les ai collées dans le programme entre la ligne 7 et la ligne 8, c’est à dire avant l’énoncé de la condition c3 mais il ne comprend pas. J’ai enlevé les chiffres 1 et 2 au début de chaque ligne mais ça bloque quand-même. Voyez la capture d’écran ci-dessous.

    Capture-decran-2024-03-26-a-13.04.59.png Capture-decran-2024-03-26-a-13.04.59.png
    #230476 quote
    rouxdan1
    Participant
    New

    Ivan,
    Par ailleurs, j’ai un gros problème de cohérence entre les bougies 30mn de PRT et celles de la plate forme IG Markets que j’utilise pour passer mes trades.
    En fait, j’ai l’impression qu’il y a un décalage de 2 bougies de 30mn entre les 2 plates-formes (soit une une heure d’écart)
    c’est à dire que PRT exécute mes trades avec 2 bougies de retard. Voyez la copie d’écran ci dessous
    Vous voyez que dans la liste des trades back testés par PRT, il a exécuté celui du 19 mars en achetant à 39 107,5 pour revendre à 39 103,7, ce qui a généré une perte de 4 ticks, alors qu’en fait la vraie bougie à prendre en compte était celle d’IG markets où on achetait à 39 038 pour revendre à 39 109.5, d’où un gain de 67,5 ticks.
    Sur les graphes, on reconnait bien les mêmes bougies. C’est juste celles où ont été exécuté les trades qui ne colle pas.
    Ce qui est très embêtant car cela fausse complètement les résultats du back test !
    J’ai essayé de changer les fuseaux horaires sur PRT mais ça ne marche pas. Il ne prend plus les mêmes trades, et ça devient n’importe quoi…!

    Capture-decran-2024-03-26-a-12.58.41.jpg Capture-decran-2024-03-26-a-12.58.41.jpg
    #230483 quote
    Iván González
    Moderator
    Master

    Cela vous donne une erreur car vous n'utilisez pas les lignes programmées. Si vous souhaitez que seul le stochastique soit inférieur à 80, vous pouvez procéder ainsi :

    Defparam Flatafter = 210000
    
    //Conditions
    c1 = close [1] > open [1]
    c2 = close [2] > open [2]
    c3 = Stochastic[5,3](close) < 80
    
    if time >=203000 and time <=210000 then
    IF NOT LongOnMarket AND c1 AND c2 AND c3 and c3[1] THEN
    BUY 1 SHARE AT MARKET
    ENDIF
    endif

    Si au lieu du stochastique vous souhaitez que le signal soit celui ci-dessous alors :

     Defparam Cumulateorders = faux
    Defparam Flatavant = 203000
    Defparam Flataprès = 210000
    
    //Conditions
    c1 = fermer[1] > ouvrir[1]
    c2 = fermer[2] > ouvrir[2]
    lineK = Stochastique[5,3](fermer)
    lineD = moyenne[3](linek)
    
    c3 = ligneD < 80
    
    si temps >=203000 et temps <=210000 alors
    SI NON LongOnMarket ET c1 ET c2 ET c3 et c3[1] ALORS
    ACHETER 1 ACTION AU MARCHÉ
    FIN SI
    fin si
    #230485 quote
    Iván González
    Moderator
    Master

    Pour cela, mieux vaut déposer un incident depuis la plateforme elle-même. La réponse sera plus agile.

Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.

Entre 20h30 et 21h00, acheter 1 contrat au marché


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
rouxdan1 @rouxdan1 Participant
Summary

This topic contains 18 replies,
has 4 voices, and was last updated by Nicolas
1 year, 10 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 03/22/2024
Status: Active
Attachments: 6 files
Logo Logo
Loading...