Quelle est la priorité d'exécution des ordres

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #110814 quote
    EnzoCode
    Participant
    New

    Bonjour,

    Je vous rejoins ce jour avec mon lot de questions, je m’en excuse !

    J’ai fais quelques recherches mais n’ayant pas trouvé de réponse concrète je me permets d’ouvrir un nouveau topic.

    #1. Dans le cas de plusieurs conditions IF, contenant par exemple un SELL AT xxxxx STOP :

    IF 1 = 1 THEN
        SELL AT 100 STOP
    ENDIF
    
    IF 2 = 2 THEN
        SELL AT 200 STOP
    ENDIF
    
    IF 3 = 3 THEN
        SELL AT 300 STOP
    ENDIF

    Comment sera exécuté ce code en probacktest/proorder
    A savoir, est ce que le programme à l’issue de l’exécution retient le premier SELL ou le dernier SELL ?

    Cette question à l’air terriblement stupide, mais j’obtiens des choses un peu contradictoire au niveau des backtests donc j’aimerai une réponse claire et précise (si telle réponse existe).

     

    #2 Je profite de ce mette pour une deuxième question.

    BUY 1 SHARES AT MARKET
    
    IF LONGONMARKET THEN
       // PEU IMPORTE
    ENDIF

    Imaginons maintenant ce code s’exécuter en clôture de bougie, est ce que je rentrerai dans le LONGONMARKET durant la même exécution que le BUY ou il faudra attendre l’exécution suivante ?
    Autrement dit, est ce que LONGONMARKET est initialisé en global et reste fixe durant toute l’exécution, ou alors il peut varier dans la même instance ? (ce qui revient à savoir si c’est du synchrone ou asynchrone)

     

     

    Merci beaucoup par avance

    Enzo

    #110815 quote
    Nicolas
    Keymaster
    Master

    Le code étant lu de haut en bas, c’est le premier ordre STOP qui sera lu et donc posé en attente.

    LONGONMARKET a besoin d’une période pour connaître son état.

    #110816 quote
    EnzoCode
    Participant
    New

    Bonjour Nicolas,

    Je comprends que le code est lu de haut en bas, mais cela veut dire qu’une fois un SELL envoyé, il ne peut pas être écrasé durant la même exécution ?
    Car la réponse du code lu de haut en bas ne réponds pas précisément à la question, est ce que les ordres en cascade s’écrasent (et se remplacent) ou non ?

    => A savoir donc que le dernier SELL écraserait tous les autres d’avant car le programme s’exécute de haut en bas.

    Bien qu’il me semble avoir compris que la réponse est non, vu ton message précédent, je m’excuse de bien vouloir être précis.

    Merci pour ta rapidité de réponse :)))

    #110818 quote
    Nicolas
    Keymaster
    Master

    Si je lance par exemple ce code en temps réel:

    if not longonmarket then
    buy at market
    endif
    
    IF 1 = 1 THEN
    SELL AT close-100*pointsize STOP
    ENDIF
    
    IF 2 = 2 THEN
    SELL AT close-200*pointsize STOP
    ENDIF
    
    IF 3 = 3 THEN
    SELL AT close-300*pointsize STOP
    ENDIF
    

    C’est bien l’ordre à -100 points qui s’active.

    L’idéal ici étant d’inscrire dans une variable la valeur prix à utiliser par une seule et même instruction SELL AT x STOP.

    #110828 quote
    EnzoCode
    Participant
    New

    Merci pour cette démonstration par l’exemple Nicolas, c’est clair maintenant.

    * Tout à fait pour la variable 😉

    #111306 quote
    EnzoCode
    Participant
    New

    Bonjour,

    J’ai de nouveau une petite question de boulet.

    Peut être (j’en suis sur) que Nicolas, tu as la réponse..

    PlusHaut = highest[10](high)
    valeur1 = PlusHaut[1]
    valeur2 = PlusHaut[2]

    Dans le cas du code si dessus, je comprends parfaitement que valeur1 retournera la valeur la plus haute sur les 10 derniers chandeliers.

    En revanche, serait-il possible de savoir ce que contient valeur2 ?

    (Je ne sais pas comment “tracer”/”afficher” le contenu des variables. Il n’y a pas de logger ou autre ?)

    Merci encore

    #111354 quote
    JC_Bywan
    Moderator
    Master

    Avec ça la variable Plushaut te donne le plus haut des 10 hauts parmi 10 chandeliers qui sont ton chandelier en cours + les 9 précédents chandeliers. Ici le 10 entre crochets appliqué au mot-clé highest représente un nombre total de chandeliers

    Alors que dans valeur1 et valeur2, le nombre entre crochets représente non pas un total de chandeliers mais un numéro de chandelier précédent.

    Autrement dit valeur1 égale la variable Plushaut non pas sur le chandelier en cours, mais sur le 1er chandelier précédent (soit le plus haut parmi 10 chandeliers allant du 1er précédent au 10e précédent mais sans celui en cours).

    Et valeur2 égale ta variable Plushaut du 2e chandelier précédent (soit le plus haut du groupe de 10 chandeliers entre le 2e précédent et le 11e précédent)

    #111392 quote
    Nicolas
    Keymaster
    Master

    Non, il n’y a pas de log malheureusement dans les backtests, il faut utiliser GRAPH et GRAPHONPRICE.

    Sinon tu RETURN les variables dans un indicateur.

    #111432 quote
    EnzoCode
    Participant
    New

    Merci à tous les deux c’est bien compris !

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

Quelle est la priorité d'exécution des ordres


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
EnzoCode @enzocode Participant
Summary

This topic contains 8 replies,
has 3 voices, and was last updated by EnzoCode
6 years, 4 months ago.

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