Ordres ouverts trop tard

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #133138 quote
    thierrybl
    Participant
    Junior

    Bonjour,

    j’ai écrit un robot assez simple, mais les ordres sont ouvert à l’open de la bougie suivante et je souhaiterai qu’il s’ouvre  à la cassure du haut de la bougie précédente.

    La stratégie est simple, elle est prévu pour être exécutée sur le Dax en m5 :

    • prix au-dessus des MM 50 en H1, m15 et m5
    • retracement de au moins 2 bougies
    • une bougie dans le sens de la tendance qui clôture dans les 25% supérieur (pour la hausse)
    • achat à la cassure du High + 1 point de cette bougie haussière

    J’aurais voulu soit mettre un buy stop dès que la bougie haussière clôture, soit un buy market lorsque la bougie suivante casse le haut de la bougie précédente.

    Pour l’instant l’achat est déclenché à l’open de la bougie suivante.

    Donc est-ce un problème de numérotation de mes bougies ou de définition du type d’ordre ?

    Merci pour votre aide

    Thierry

    //Déinition des MM
    
    mm50H1 = Average[600](close)
    mm50m15 = Average[150](close)
    mm50m5 = Average[50](close)
    
    c1 = close > mm50H1 AND mm50m15 AND mm50m5
    
    // Pente mm50 m5
    
    Diffup = mm50m5[0] - mm50m5[5]
    penteok = Diffup > Pente*POINTSIZE
    
    //retracement au moins 2 bougies
    
    c2 = Close[3] < Open[3] and Close[2] < Open[2] and Close[1] > Open[1]
    
    // Close dans les 25% supérieur de la bougie
    calcul25 = (High[1]-((High[1]-Low[1])/4))
    
    c3 = Close[1] > calcul25
    
    IF c1 and c2  and c3 and penteok  THEN
    signal = Close[0] >= High[1] +1*pointsize
    
    BUY 1 contract AT signal STOP
    SET STOP PLOSS  20 //(Low[1] - 1) * POINTSIZE
    TP = ((high[1]+ 1 *pointsize) - (Low[1] - 1 * POINTSIZE))*2
    
    SET TARGET PROFIT TP
    ENDIF
    
    Exemple-1.jpg Exemple-1.jpg
    #133153 quote
    Nicolas
    Keymaster
    Master

    Donc c’est à la bougie [1] que tu constates le setup ? Si oui, c’est donc à sa clôture que tu décideras de poser ton ordre en attente, celui-ci sera posé à l’Open suivant, c’est le fonctionnement normal.

    Je pense que ton problème vient du fait que tu considéres la bougie qui vient de se clôturer comme la bougie 1, sauf que c’est bien la 0, soit la bougie courante, donc décalage de la prise de position.

    #133156 quote
    thierrybl
    Participant
    Junior

    Merci pour ta réponse super rapide ! C’est bien le fonctionnement que tu décrit que je souhaite avoir. Je fais les modifs et je vois ce qui se passe.

    Merci

    #133219 quote
    thierrybl
    Participant
    Junior

    J’ai fait les modifications et effectivement les ordres s’ouvrent comme il faut maintenant.

    Ma nouvelle bataille est au niveau du SL et du TP.

    Dans l’idéal j’aimerai que le SL soit sous le dernier plus bas. j’ai essayé avec Lowest[5] mais ça ne fonctionne pas du tout. Le SL était toujours à 5 point.

    J’ai trouvé un compromis en le mettant soit sous la bougie[0] soit sous la [1]

    .Par contre je ne trouve pas la solution pour le TP. Le code me semble logique car je fait 2 fois le SL mais il ne le place jamais. Donc il ne trouve pas l’info.

    Il doit y avoir une erreur dans le code mais je ne la trouve pas.

    Un petit coup de pouce ?

    Merci encore
    <pre class=”lang:probuilder decode:true ” title=”m5 dax”>

    //dax m5
    Defparam CUMULATEORDERS = false
    //Déinition des MM
    
    mm50H1 = Average[600](close)
    mm50m15 = Average[150](close)
    mm50m5 = Average[50](close)
    
    c1 = close > mm50H1 AND mm50m15 AND mm50m5
    
    // Pente mm50 m5
    
    Diffup = mm50m5[0] - mm50m5[5]
    penteok = Diffup > Pente*POINTSIZE
    
    //retracement au moins 2 bougies
    
    c2 = Close[1] < Open[1] and Close[1] < Open[1] and Close[0] > Open[0]
    
    // Close dans les 25% supérieur de la bougie
    calcul25 = (High[0]-((High[0]-Low[0])/4))
    
    c3 = Close[0] > calcul25
    
    IF c1 and c2 and c3 and penteok THEN
    signal = High[0]+1*pointsize
    
    //Détermination du SL
    IF Low[0]<Low[1] THEN
    SL = ((signal-Low[0])+1) * pointsize
    ELSE
    
    SL = ((signal-Low[1])+1) * pointsize
    ENDIF
    //Détermination du TP
    TP = ((SL *2) + signal) * pointsize
    
    BUY 1 contract AT signal STOP
    SET STOP pLOSS SL
    SET TARGET pPROFIT TP
    ENDIF
    #133251 quote
    Scooby
    Participant
    Senior

    Logiquement le Lowest[X] doit fonctionner pour positionner son SL.

    Par contre fait attention de l’implémenter quand tu passes un long ou short et d’ajouter dans les conditions de passage d’ordre le “not longonmarket” ou “not shortonmarket” pour éviter que le code ne modifie le SL.

    Pour vérifier le mieux est de tracer le SL/TP avec graphonprice

    #133289 quote
    thierrybl
    Participant
    Junior

    Merci pour ta réponse.

    J’ai essayé de mettre GRAPHONPRICE mais je en vois pas de changement sur le graphique. je ne sais pas sous quelle forme le SL et le TP sont représentés avec GRAPHONPRICE.

    J’ai essayé Lowest de nouveau mais sans succés. Finalement ce que j’ai mis semble pas mal.

    Merci pour ton aide

     

    //Détermination du SL
    IF Low[0]<Low[1] THEN
    SL = ((signal-Low[0])+1) * pointsize
    ELSE
    SL = ((signal-Low[1])+1) * pointsize
    ENDIF
    GRAPHONPRICE SL COLOURED (255,0,0) as "SL"
    
    //Détermination du TP
    TP = (SL *2)
    GRAPHONPRICE TP COLOURED (0,255,0) as "SL"
    //TP= ((signal-Low[1])*2*pointsize)+ signal
    
    IF not longonmarket Then
    BUY 1 contract AT signal STOP
    SET STOP pLOSS  SL
    SET TARGET pPROFIT TP
    ENDIF
    endif
    
    Exemple-2.jpg Exemple-2.jpg
    #133306 quote
    Nicolas
    Keymaster
    Master

    Si tu ne vois rien sur le graphique avec GRAPHONPRICE, c’est certainement que les valeurs que tu calcules sont hors échelle et donc incorrectes, tu peux l’identifier avec la palette des valeurs (CTRL+D.. de mémoire) ou alors utiliser GRAPH pour visualiser les courbes dans une fenêtre à part de celle du graphique du prix, là tu les verras c’est sûr !

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

Ordres ouverts trop tard


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
thierrybl @thierrybl Participant
Summary

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

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 05/25/2020
Status: Active
Attachments: 2 files
Logo Logo
Loading...