Une variable simple ne donne pas de valeur logique

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #108061 quote
    Vicente Ruiz
    Participant
    Junior

    Dans le cadre du système que je teste, j’essaie de voir pourquoi une pièce qui est simple en principe ne fonctionne pas pour moi.
    Je teste ce code isolé pour voir comment la variable EN fonctionne avec Probacktest. Tout ce que je fais, c’est de lancer une ordre et de commencer à compter lorsque cette ordre est sur le marché.
    Comme le montre la première image, la variable EN fonctionne bien. Dans la deuxième bougie, la vente est exécutée et la variable commence à augmenter de 1 en 1.
    J’ai pensé que si j’augmente la variable EN quand il n’y a pas d’ordre, le résultat attendu devrait être que la variable passe à 1 dans la première bougie, puisqu’il n’y a pas encore d’ordre passé et elle reste à 1. Mais je vois que la variable au lieu de 1 est 1001. Et honnêtement, je ne comprends pas pourquoi. Le seul changement logique est que si je ne suis pas sur le marché, augmentez la EN de 1 et passez l’ordre.
    Quelqu’un peut me dire pourquoi au lieu de 1, il reste à 1001 ?
    Le graphique en bougies de 5 minutes

    Je vous remercie

    Je vous remercie

    onmarket.jpg onmarket.jpg notonmarket.jpg notonmarket.jpg
    #108065 quote
    Nicolas
    Keymaster
    Master

    C’est peut-être à cause de la quantité de barres de l’historique lu avant que la période de backtest démarre.

    Essaie en ajoutant :

    defparam preloadbars=0

    en tête de ton code et tient nous au courant.

    #108069 quote
    Vicente Ruiz
    Participant
    Junior

    Je vous remercie de votre réponse.
    En principe, je ne comprends pas ce qui devrait arriver. Je n’ai chargé que deux jours et je fais le backtest au début de ces deux jours. Il n’y a pas de bougies chargées avant. Et de toute façon, si c’était le problème, j’aurais dû aussi avoir dans le premier exemple que si ça marchait.
    Indépendamment de ce qui précède, j’ai mis la variable et effectivement, ne me donne plus de valeurs supérieures à 1000 mais donne toujours une valeur que je ne comprends pas. Il donne 2 de la première bougie. Devrait-on donner 1, je pense, une autre idée ?

    notonmarket-1.jpg notonmarket-1.jpg
    #108073 quote
    Nicolas
    Keymaster
    Master

    Même si les bougies ne sont pas affichés sur l’écran, il est nécessaire qu’elle soit chargée pour calculer par exemple certaines indicateurs, d’où l’incrément de la variable en question.

    Il faut une bougie après un ordre pour constater que l’on est au marché, donc l’incrément me semble correct ici.

    #108075 quote
    Vicente Ruiz
    Participant
    Junior

    Merci

    #113721 quote
    TETOCA
    Participant
    New

    Bonjour

    Vous voudrez bien m’excuser de m’immiscer dans votre conversation.

    Issu d’autres systèmes de programmation, j’ai eu le même problème avec lequel je me suis bagarré.

    J’ai trouvé la solution sur le forum (merci à vous) :

    DEFPARAM CumulateOrders = false
    
    once cpt = 0
    maxorders = 1
    ST = Dopen(0) * 1.015
    
    IF not LongOnMarket and open > ST and cpt < maxorders then
    buy 2000 cash at market
    ENDIF
    
    if onmarket and lastindex <> tradeindex then
    cpt = cpt + 1
    lastindex = tradeindex
    endif

     

    Et ça marche.

    En espérant vous avoir fait avancé.

    Meilleures salutations.

    F.T.

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

Une variable simple ne donne pas de valeur logique


ProOrder : Trading Automatique & Backtests

New Reply
Author
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by TETOCA
6 years, 3 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 09/20/2019
Status: Active
Attachments: 3 files
Logo Logo
Loading...