1 seule position par conditions réunies

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

    Bonjour à tous,

     

    Toujours en développement de mon système, je stagne sur un point : ne permettre qu’une seule prise de position quand les conditions sont réunies (ce qui peut prendre plusieurs bougies de décalage). Ces conditions sont le croisement d’un indicateur dans le sens d’une tendance prédéfinie par des moyennes mobiles (ou l’inverse, l’indicateur en tendance et les MM qui se croisent dans ce même sens haussier ou baissier).

    ——————————————-

    Pour n’avoir qu’une prise de position, jusqu’alors j’ai paramétré le système pour qu’il ne se déclenche que lorsque toutes ces conditions sont réunies LORS DUDIT CROISEMENT (possible sur une seule bougie évidemment).

    Mais comme je veux rajouter maintenant une condition d’écartement minimal des MM ou du signal de l’indicateur afin d’améliorer le système et de le rapprocher de ce que je fais en manuel, il se peut que lors du croisement, l’écartement renseigné ne soit pas encore atteint. Cela peut-être le cas seulement 2 ou 3 bougies plus tard par exemple.

    >> Dans ce cas, mon premier paramétrage ne fonctionne plus puisqu’il était basé sur des conditions réunies sur une seule et même bougie dans le timeframe défini.

    ——————————————

    Du coup, comme je n’arrivais pas à trouver un code pour limiter le nombre de position pouvant être prise par setup (je n’en ai trouvé que pour 1 position par jour…), j’ai eu l’idée suivante :

    // indicateur1 = 
    // c1 = 
    // c2 =
    // etc...(liste des mes conditions et indicateurs)
    // sachant que, pour l'exemple, c1 = croisement des MM dans la tendance de l'indicateur // c2 = valeur d'écartement requis des MM et de l'indicateur pour passer un trade
    
    // Réinitialiser la situation après chaque trade
    IF NOT ONMARKET THEN
    trade=0
    ENDIF
    
    // Gérer le déclenchement des positions seulement après un (1er ou nouveau) croisement 
    IF trade=0 AND c1 THEN
    result=1
    ENDIF
    
    // Validation de l'écartement minimum requis pour prendre effectivement une position // Déclenchement effectif d'un trade
    IF result=1 AND c2 THEN
    BUY 1 contract at market
    ENDIF

     

    Pour moi ce code permettait, après chaque trade, de revenir à la condition initiale d’une première étape de croisement puis d’une condition d’écartement (cette dernière étant possiblement plus éloignée dans le temps/bougies de l’étape du croisement).

    Mais le système continue de prendre X positions tant que les MM et l’indicateur sont en tendance après un croisement, au lieu d’1 seule et d’attendre ensuite un nouveau croisement.

     

    Quelqu’un aurait une suggestion pour que ce code fonctionne (ou pourquoi il ne fonctionne pas, ce serait déjà un début !) ?

    Merci d’avance pour votre aide 🙂

    #112314 quote
    Nicolas
    Keymaster
    Master

    Lorsque ta condition d’écartement est respectée (soit X bougies après un croisement), tu peux tester dans l’intervalle X (à déterminer en quantité de périodes donc) si un croisement a eu lieu, soit:

    X = 3
    bullcross = average[7] crosses over average[20]
    
    if ecartementOK then 
     test = summation[X](bullcross)>0 //test dans l'intervalle X si un croisement haussier a eu lieu
    endif 
    
    if test then 
     buy at market 
    endif
    #112405 quote
    Taylor
    Participant
    Junior

    Bonjour Nicolas et merci de votre réponse.

    Je viens de tester le code, j’ai quelques problèmes car ayant plusieurs conditions (2 d’écartements et 3 cas possibles de croisements) il ne m’en exécute qu’une et partiellement. Au pire, ce serait juste un problème d’écriture, mais le problème que je vois surtout à cela, c’est que de toute façon le système prendra toujours plusieurs trades avec :

    En UT5, je prévois de comptabiliser au moins 5 à 10 bougies de marge pour permettre de réunir toutes mes conditions. Or, si j’ai bien un croisement disons à la bougie 3, avec le bon écartement, le système va prendre le trade mais reprend également un trade si ces mêmes conditions sont toujours réunies en bougie 4.. et ce jusqu’à la bougie 10 (ou max que j’aurais paramétré).

    Pour mon taux de réussite il est impératif que je n’ai qu’un trade par croisement, et que ce trade intervienne seulement quand l’écartement de mes MM et de mon indicateur deviennent suffisants.
    D’où l’idée de “réinitialiser” un compteur de trade après chaque prise de position.

    #112414 quote
    Nicolas
    Keymaster
    Master

    A ce moment là, il faut “tagger” le moment ou tu as ton croisement de moyennes mobiles, puisque c’est lui le point de départ. A chaque nouvelle position vérifie que ce numéro de barre n’est pas le même que celui que tu as utilisé lors de ton dernier passage d’ordre, soit:

    X = 3
    bullcross = average[7] crosses over average[20]
    
    if bullcross then 
     bullbar=barindex
    endif
    
    if ecartementOK then 
     test = summation[X](bullcross)>0 //test dans l'intervalle X si un croisement haussier a eu lieu
    endif 
    
    if test and bullbar>buybar then 
     buy at market
     buybar=bullbar 
    endif
    #112428 quote
    Taylor
    Participant
    Junior

    Merci Nicolas, ça semble fonctionner !
    Je vais tester ce week-end avec mon système entier car là je n’ai que le temps de faire un essai sommaire, mais le déclenchement a l’air bon a priori. Très bonne nouvelle pour finir la semaine si ça résout mon problème. Je partagerai avec la communauté si j’arrive à quelque chose de concluant 🙂

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

1 seule position par conditions réunies


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Taylor @taylor Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Taylor
6 years, 4 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 11/07/2019
Status: Active
Attachments: No files
Logo Logo
Loading...