Exclusion de jours / minutes

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #63097 quote
    clasch
    Participant
    Senior

    Bonjour,

    Ce week-end, j’ai placé un système contenant ce bout de code :

    If c1 And Not (OnMarket Or DayOfWeek=0 And Hour>=22 and Minute>=00 Or DayOfWeek=1 And Hour<06 and Minute>=00 Or DayOfWeek=5 And Hour>=22 and Minute>=00) Then ...

    J’espérais ainsi que le système ne rentre pas en position le dimanche soir dès 22h00 ou le lundi jusqu’à 05h59 ou le vendredi soir dès 22h00.

    Mais à ma grande surprise, le système a ouvert une position ce lundi à 00:00:01.

    Avez-vous une idée pourquoi ?

    Et comment y remédier ?

    Merci et bonne journée,

    Claudio

    #63159 quote
    JC_Bywan
    Moderator
    Master

    Possible qu’il y ait d’autres bugs, mais la première chose qui vient à l’esprit en lisant cette ligne de code est la possibilité de parenthèses manquantes dans la condition not( … and… or… and… or…) à tester avec une structure de prenthèses:  not(… or (…and…) or (…and…) or (…and…))

    #63222 quote
    clasch
    Participant
    Senior

    Merci pour la suggestion. Malheureusement, cela ne fonctionne toujours pas.

    Une autre idée ?

    #63228 quote
    JC_Bywan
    Moderator
    Master

    Chose suivante une fois les parenthèses corrigées, dans le cas d’un actif côté h24 (cfd par exemple), ce qui semble être le cas si on parle de position à minuit 1, sans savoir quel timeframe a été utilisé, opendayofweek (jour de la semaine à l’ouverture de la bougie) sera souvent un meilleur choix que dayofweek (jour de la semaine à la cloture de la bougie). Eventuellement se servir de la fonction “GRAPH” en fin de code pour visualiser dans le backtest combien valent dayofweek et opendayofweek entre minuit et 1h du matin la nuit de dimanche à lundi, ou pendant toute autre plage horaire ou aucun ordre n’est désiré, pour constater la différence (le mot-clé Graph est un must à connaitre pour visualiser les valeurs en débuguant les stratégies).

    #63244 quote
    robertogozzi
    Moderator
    Master

    Essayez le premier ou le deuxième exemple (ils devraient donner le même résultat):

    //  ------  premier exemple
    //
    // If c1 And Not OnMarket and
    // not (
    // (DayOfWeek=0) Or
    // (DayOfWeek=1 And Hour<6) Or
    // (DayOfWeek=5 And Hour>=22)
    // )
    // Then
    If c1 And Not OnMarket and not ((DayOfWeek=0) Or (DayOfWeek=1 And Hour<6) Or (DayOfWeek=5 And Hour>=22)) Then
    buy at market
    
    //  ------  deuxième exemple
    //
    c2 = DayOfWeek=0
    c3 = DayOfWeek=1 And Hour<6
    c4 = DayOfWeek=5 And Hour>=22
    //
    // If c1 And Not OnMarket and
    // not (
    // c2 Or
    // c3 Or
    // c4
    // )
    // Then
    
    If c1 And Not OnMarket and not (c2 or c3 Or c4) Then
    #63264 quote
    clasch
    Participant
    Senior

    Merci beaucoup Roberto, cela fonctionne parfaitement.

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

Exclusion de jours / minutes


Support ProOrder

New Reply
Author
author-avatar
clasch @clasch Participant
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by clasch
7 years, 11 months ago.

Topic Details
Forum: Support ProOrder
Language: French
Started: 02/19/2018
Status: Active
Attachments: No files
Logo Logo
Loading...