Connaître le nombre de chandelier sous 0€

Viewing 15 posts - 1 through 15 (of 24 total)
  • Author
    Posts
  • #139808 quote
    imencity
    Participant
    Senior

    Bonjour,

    Sur les tests de codes, comme tous le monde, je m’aperçois que pas mal de trade perdant touche le stoploss à 0, 1, voir 4 ou 5 barre sans jamais avoir été positif.
    Je voudrais savoir comment faire pour connaître le nombre moyen de barre (moyenne pondéré 🙂 ?) déclenchant un trade positif.

    Car évidemment je pourrais chercher à éliminer tous les trades négatifs qui pendant x (par ex 4) bougies n’ont pas été une seule fois dans le positif.
    Mais il doit y a voir des trades super positif qui ont débuter à 6 bougies… et donc on s’en prive.

    Et pour fermer une position qui n’a pas eu de MFE > 0 pendant 5 bougie c’est bien cela ?

    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize
    IF BARINDEX-TRADEINDEX(1) <= 5 AND floatingprofit < 0 THEN
    SELL AT MARKET
    ENDIF

    Merci par avance.

    #139816 quote
    Nicolas
    Keymaster
    Master

    Ta fonction n’est pas bonne puisque tu ne regardes le floating profit que sur la barre actuelle. Tu devrais plutôt faire une somme par exemple, avec summation[5](floatingprofit), cela te permettant de vérifier si cette somme est positive ou non et in fine savoir si l’ordre a déjà été gagnant dans le passé.

    #139820 quote
    imencity
    Participant
    Senior

    merci de ta réponse Nicolas,

    cela m’aide à comprendre un aspect tu as raison.

    mais la seconde partie de mon post est plus subtil qu’une somme. Car si la somme me dit si le volume des gains / perte est négatif, elle ne me dit pas si toute les bougies ont été négatif or je voudrais couper avant le stoploss si toutes les X bougies ont été perdantes (dans un premier temps).

    ensuite pour les trade gagnants sur 15 bougies par ex, j’aimerais savoir à partir de combien de bougie c’est gagnant en moyenne, pour ensuite tester ce nombre sur la première partie du présent post.

    #139836 quote
    Nicolas
    Keymaster
    Master

    Les 5 dernières bougies ont toutes étaient négatives :

    test = summation[5](floatingprofit < 0) = 5

    Ici la somme retourne une somme de conditions booléenne (1 = vrai ; 0 = faux), si la somme est égale à 5, alors toutes ont été négatives et donc la variable “test” (qui est elle même une variable booléenne) retournera 1.

    #139848 quote
    imencity
    Participant
    Senior

    Ah. Je croyais que c’était la somme totale des gains / pertes.

    Merci.

    et comment faire pour savoir si un trade gagnant long de 34 bougies l’est à partir de la 12ème par ex ? (En fait pour la liste de tous les trades positifs)

    #139861 quote
    Nicolas
    Keymaster
    Master

    Ah. Je croyais que c’était la somme totale des gains / pertes.

    Mon premier exemple est différent du second.

    Pour ta nouvelle question, lorsque l’ordre est ouvert, on attend d’être en gain pour renseigner la quantité de chandeliers dans une variable, essayons avec ce code :

    defparam cumulateorders=false
    
    //strategy example 
    if not onmarket and rsi[14] crosses over 50 then 
     buy at market 
     start = barindex
     set target %profit 5
     set stop %loss 2.5
    endif 
    
    //how many bars were in profit 
    if onmarket then 
     //floating profit
     floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize
     if floatingprofit>0 and lastorder<start then 
      lastorder=start
      bar=barindex-start
     endif
    else
     bar=0
    endif
    
    graph bar

    Dans cet exemple, la variable “bar” indique à partir de combien de chandelier l’ordre a été en gain.

    quantite-de-chandeliers-en-gains.png quantite-de-chandeliers-en-gains.png
    #139925 quote
    imencity
    Participant
    Senior

    Merci de tes réponses Nicolas.

    Je rencontre un delta entre l’affichage Graph et le nombre de barre dans la fenêtre pro-order.
    J’avais déjà graphé un truc moins bien que ton code, et je crois que je ne comprends toujours pas c’est qu’est le nombre de barre dans la fenêtre de résultat proorder car tu indiques la même chose dans ta capture d’écran:

    Le nombre de petite barre minuscule (les bougies) de ton graphique doit être au moins 10 fois plus grand que le graph qui est au maximum de 8.

    Dans ma capture d’écran du 15 au 16 janvier à 9h le graph indique 11 alors que la fenêtre des ordres indique 1408.

    Qu’est-ce que je ne comprends pas stp ?

    diffBarre.jpg diffBarre.jpg
    #139927 quote
    imencity
    Participant
    Senior

    Oui parce que pour compléter, le présent exemple du 15 ou 16 janvier est une perte.

    Dans la logique s’il avait été gagnant il l’aurait été à partir de la 11 à bougie mais dans le cas présent je ne comprends pas bien.

    #139950 quote
    Nicolas
    Keymaster
    Master

    Dans la fenêtre du rapport détaillé, nombre de barres signifie la quantité de bougies de la durée de vie de l’ordre tout simplement et n’a rien à  voir avec le MAE/MFE ou à quel moment l’ordre a commencé a être en gain ou non.

    #139980 quote
    imencity
    Participant
    Senior

    Et oui et évidemment, au début du comptage on ne sais pas encore si l’ordre sera gagnant ou perdant… donc on ne peut pas afficher a priori que les gagnants…

    sinon j’ai testé ça mais ça marche pas dans mon code:

    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize
    IF BARINDEX-TRADEINDEX(1) <= 5 AND summation[5](floatingprofit < 0) = 5 THEN
    SELL AT MARKET
    ENDIF

    Je pense avoir mal inclu ton code ?

    #140020 quote
    Nicolas
    Keymaster
    Master

    >= au lieu de <= ?

    #140098 quote
    imencity
    Participant
    Senior

    Merci de vais regarder cela.

    #140576 quote
    imencity
    Participant
    Senior

    Bonsoir Nicolas,

    Je retourne dans tous les sens et j’ai évidemment testé avec ta dernière proposition.
    MAIS je ne comprends pas ce que le “bar” retourne…

    Dans l’exemple, pour une position, il m’indique un nombre de chandelier de 88 à partir de laquelle la stratégie est gagnante.
    Or il n’y en as que 10 bougie d’écouler depuis l’affichage 88 alors que “nombre de barres signifie la quantité de bougies de la durée de vie de l’ordre“.

    Par contre en tout il y a 86 bougies… mais rien à voir car au moment du graph 88 le système ne peut pas savoir.
    ET de plus, la stratégie est gagnante sur une bougie, bien avant ce graph… (bougie Rouge qui dépasse bien le mR1H)

    //how many bars were in profit
    if onmarket then
    //floating profit
    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize
    if floatingprofit>0 and lastorder<start then
    lastorder=start
    bar=barindex-start
    endif
    else
    bar=0
    endif
    
    graph bar as "bar"

    Une idée ?

    88Bougies.jpg 88Bougies.jpg
    #140631 quote
    imencity
    Participant
    Senior

    Hum… je crois que je comprends.

    Dans ma stratégie j’achète en TF M15, mais je suis en TF M1 pour les clôtures.
    Donc le start = barindex est sur TF M15 alors que je vois les barres en TFM1… D’où la différence…

    Je pourrais retomber sur mes pieds si le nombre par ex était de 2 barres et si j’en avais 30… car 2 X 15.
    Mais là il m’affiche 88 pour seulement 10 bougies…

    A chaque fois que j’ai des questions simples ça finit toujours par devenir compliqué 😉

    #140634 quote
    imencity
    Participant
    Senior

    Voilà donc un ex de problème. Si on commente les TF tout est cohérent.
    Dès qu’on active les TF les résultats n’ont aucun sens (enfin je ne les comprends pas).

    defparam cumulateorders=false
    
    timeframe(15 minutes)
    
    //strategy example
    if not onmarket and rsi[14] crosses over 50 then
    buy at market
    start = barindex
    set stop %loss 2.5
    endif
    
    
    timeframe(1 minutes)
    if rsi[14] crosses under 50 then
    sell at market
    endif
    
    //how many bars were in profit
    if onmarket then
    //floating profit
    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize
    if floatingprofit>0 and lastorder<start then
    lastorder=start
    bar=barindex-start
    endif
    else
    bar=0
    endif
    
    graph bar

    Et j’ai besoin d’utiliser ça pour une stratégie; je dois identifier le nombre moyen de bougie au-dessus de laquelle on pourrait couper plus tôt.

    Une idée pour m’aider à résoudre le (dernier) problème de ce fil svp ?

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

Connaître le nombre de chandelier sous 0€


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
imencity @imencity Participant
Summary

This topic contains 23 replies,
has 2 voices, and was last updated by imencity
5 years, 7 months ago.

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