Probleme de Nombre de lots sur ce code

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #49861 quote
    BINABOUT
    Participant
    New

    Bonsoir,

    Je suis en train de tester un code sur le Dax avec l’indicateur Supertrend.

    J’aimerai que le systeme ajoute un lot en plus a chaque fois qu’un trade est perdant et des qu(un trade est gagnant on revient a 1 lot.

    Cela ne marche pas tous le temps ! et je n’arrive pas a comprendre pourquoi ?!

    Ci joint le code et un screen et des resultats backtest.

    Par exemple, le 18/09  a 9h18 le systeme aurait du acheter 2 lots et non 4 ?!

    Merci pour votre aide !

    Dan

    code.docx baccktest.docx
    #49870 quote
    Nicolas
    Keymaster
    Master

    Merci d’ajouter le code directement dans le corps des messages, et d’uploader les images avec les posts, c’est beaucoup plus simple et rapide de vous répondre comme ça que d’ouvrir un ou plusieurs documents Word et de jongler avec des ALT+TAB .. 😐

    #49874 quote
    BINABOUT
    Participant
    New

    OK je modifie !

    #49878 quote
    BINABOUT
    Participant
    New

    J espere que c’est plus lisible pour vous (je n’ai pas su faire mieux !!)

    Code :

    DEFPARAM CumulateOrders=true
    REM Achat
    ONCE TimeStart =090000
    ONCE TimeEnd =173000
    once OrderSize=1
    once ExitIndex=-2
    
    condition1 = (Time >= TimeStart)
    condition2 = (Time <=TimeEnd)
    indicator1 = close
    indicator2 = SuperTrend[3,10]
    c1 = (indicator1 CROSSES OVER indicator2)
    IF CONDITION1 AND CONDITION2 THEN
    IF c1 THEN
    BUY OrderSize SHARES AT MARKET
    ENDIF
    ENDIF
    
    
    
    REM Vente
    
    indicator3 = close
    indicator4 = SuperTrend[3,10]
    c2 = (indicator3 CROSSES UNDER indicator4)
    
    IF c2 THEN
    SELL  AT MARKET
    ExitIndex=BarIndex
    ENDIF
    
    
    If BarIndex=ExitIndex+1 then
    ExitIndex=0
    If positionperf(1)<0 then
    OrderSize=ordersize+1
    else
    OrderSize=1
    EndIf
    endif
    
    SET TARGET pProfit 6
    
    // Stops et objectifs
    // Stops et objectifs
    REM SET STOP pLOSS B
    
    baccktest.pdf
    #49898 quote
    Nicolas
    Keymaster
    Master

    Merci pour le format du message, en 30 secondes j’ai pris connaissance du problème 🙂 (même si je préfère largement des images directes à des PDF … je suis exigeant !! 🙂 )

    Bref, je pense que le problème vient du fait que le code de la martingale se situe en bas du code et puisque celui-ci est lu de haut en bas, une seule fois par chandelier, alors il se crée un décalage dans la taille des lots.

    Donc les lignes 33 à 40 sont pour moi à placer au tout début du code (avant la prise de position en tout les cas, l’endroit où on utiliser la variable ‘OrderSize’ qui est calculé par ces lignes).

    #49987 quote
    BINABOUT
    Participant
    New

    Bonjour Nicolas et merci pour votre réponse.

    Je vais tester ces lignes en début de code.

    Merci

     

    Dan

    #49988 quote
    BINABOUT
    Participant
    New

    Bonsoir Nicolas,

    J’ai testé en debut de code mais meme resultat.

    Par contre en étudiant bien le graphique probacktest je me suis apercu que le compteur de lot s’incrementer a chaque Supertrend !

    y compris hors des heures qui m’interesse a savoir 09h00-17h30. du coup si entre 17h30 et 09h le lendemain il y a eu 4 supertrend achat, le compteur redemare a 4 au lieu de 1 !!

    du coup j’ai ‘englobé’ tout le code avec la condition de l’heure de trading. comme suit :

    DEFPARAM CumulateOrders=true
    REM Achat
    ONCE TimeStart =090000
    ONCE TimeEnd =173000
    once OrderSize=1
    once ExitIndex=-2
    
    condition1 = (Time >= TimeStart)
    condition2 = (Time <=TimeEnd)
    indicator1 = close
    indicator2 = SuperTrend[3,10]
    c1 = (indicator1 CROSSES OVER indicator2)
    IF CONDITION1 AND CONDITION2 THEN
     IF c1 THEN
    BUY OrderSize SHARES AT MARKET
    ENDIF
    
    
    rem return ordersize
    
    REM Vente
    
    indicator3 = close
    indicator4 = SuperTrend[3,10]
    c2 = (indicator3 CROSSES UNDER indicator4)
    
    IF c2 THEN
    SELL  AT MARKET
    ExitIndex=BarIndex
    ENDIF
    
    SET TARGET pProfit 6
    
    If BarIndex=ExitIndex+1 then
    ExitIndex=0
    If positionperf(1)<0 then
    OrderSize=ordersize+1
    else
    OrderSize=1
    EndIf
    endif
    endif
    // Stops et objectifs
    // Stops et objectifs
    REM SET STOP pLOSS B

    Et la ca fonctionne mieux !!

    Par contre j’ai une question : si le supertrend se déclenche a 17h25 et qu’a 17h30 je suis encore ds le marché. que se passera t-il ?

    merci

    #50019 quote
    Nicolas
    Keymaster
    Master

    si le supertrend se déclenche a 17h25 et qu’a 17h30 je suis encore ds le marché. que se passera t-il ?

    Tu autorises l’accumulation d’ordre dans ton code, donc si un nouveau signal se déclenche alors un nouvel ordre ira au marché.
    En utilisant l’instruction Time tu compares l’heure du Close de la bougie, pour comparer l’heure de son ouverture il faut utiliser l’instruction OpenTime.

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

Probleme de Nombre de lots sur ce code


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
BINABOUT @binabout Participant
Summary

This topic contains 7 replies,
has 2 voices, and was last updated by Nicolas
8 years, 4 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 10/18/2017
Status: Active
Attachments: 3 files
Logo Logo
Loading...