Breakeven problème, le niveau de prix n'est pas respecté ?

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #124998 quote
    Zefte
    Participant
    Junior

    Bonjour,

    J’essaie de coder un breakeven tout simple mais on voit bien sur la capture d’écran que le SL ne se place pas sur mon niveau d’entrée alors qu’il devrait s’y placer dès qu’on dépasse 30 points. Et dans cet exemple on en fait plus de 90..
    Sur le second trade on voit que ca marche bien. Je ne comprends pas. Une idée ?

    version : 11
    instrument : FCEXXXX
    TF : 5 minutes

    exemple.jpg exemple.jpg code.jpg code.jpg
    #125061 quote
    Nicolas
    Keymaster
    Master

    Deux choses qui me viennent à la lecture de ton problème avec ton code de breakeven :

    1. utilise toujours une taille adaptée à l’instrument courant en faisant une conversion avec l’instruction pointsize, soit modifie la ligne avec: 30*pointsize
    2. le code est lu à fin de bougie, si à la clôture ta condition d’éloignement de 30 points n’est pas respectée, alors il ne se passera rien. Dans le présent, tu devrais peut être tester le High plutôt que le Close: High-tradeprice(1)>=30*pointsize

    Merci de poster le code la prochaine fois, plutôt qu’une image, c’est plus simple et rapide pour te répondre.

    #125074 quote
    Zefte
    Participant
    Junior

    Merci pour ta réponse. J’ai fait la modification en conséquence mais mon breakeven ne fonctionne toujours pas. J’ai essayé sur CFD également avec la v10.3 et même en ayant un écart de 150 pts mon SL ne remonte pas au BE.

    DEFPARAM CUMULATEORDERS = False
    DEFPARAM FLATBEFORE = 060000
    DEFPARAM FLATAFTER = 210000
    
    // INDICATEURS
    MM20 = Average[20](close)
    MM100 = WilderAverage[100](close)
    
    // CONDITIONS
    C1 = MM20 CROSSES OVER MM100
    C2 = MM20 CROSSES UNDER MM100
    
    // ACHAT
    IF C1 AND NOT ONMARKET THEN
    BUY 1 SHARES AT MARKET
    ENDIF
    
    // BREAKEVEN
    IF LONGONMARKET THEN
    IF HIGH-TRADEPRICE(1) > 30*POINTSIZE THEN
    SELL AT TRADEPRICE(1) STOP
    ENDIF
    ENDIF
    
    // REVENTE
    IF C2 THEN
    SELL AT MARKET
    ENDIF
    
    #125090 quote
    Nicolas
    Keymaster
    Master

    Un order conditionnel ne dure qu’une seule période, il faut donc le replacer en permanence, et c’est là où se situe ton problème, tu le places uniquement pour 1 seule période quand ta condition de la ligne 20 est vrai.

    Je te conseille d’utiliser l’un des codes de breakeven que tu pourras trouver dans ces sujets :

    https://www.prorealcode.com/topics-tag/breakeven/

    https://www.prorealcode.com/topics-tag/break-even/

    Zefte thanked this post
    #125110 quote
    Zefte
    Participant
    Junior

    Ok je viens de comprendre mon erreur. Merci beaucoup ! Voici le code corrigé.
    Modifications : ligne 16, ligne 22, lignes 26 à 28

    DEFPARAM CUMULATEORDERS = False
    DEFPARAM FLATBEFORE = 060000
    DEFPARAM FLATAFTER = 210000
    
    // INDICATEURS
    MM20 = Average[20](close)
    MM100 = WilderAverage[100](close)
    
    // CONDITIONS
    C1 = MM20 CROSSES OVER MM100
    C2 = MM20 CROSSES UNDER MM100
    
    // ACHAT
    IF C1 THEN
    BUY 1 SHARES AT MARKET
    SET STOP PLOSS 50
    ENDIF
    
    // BREAKEVEN
    IF LONGONMARKET THEN
    IF HIGH-TRADEPRICE(1) > 30*POINTSIZE THEN
    newSL = tradeprice(1) 
    ENDIF
    ENDIF
    
    IF newSL > 0 THEN
    SELL AT newSL STOP
    ENDIF
    
    // REVENTE
    IF C2 THEN
    SELL AT MARKET
    ENDIF
    Nicolas thanked this post
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

Breakeven problème, le niveau de prix n'est pas respecté ?


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Zefte @zefte Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Zefte
5 years, 11 months ago.

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