novice tourne en rond

Forums ProRealTime forum Français Support ProOrder novice tourne en rond

  • This topic has 22 replies, 4 voices, and was last updated 5 years ago by avatarlb.
Viewing 15 posts - 1 through 15 (of 23 total)
  • #87994
    lb

    Bonjour, je me présente: Laurent, nouveau sur le forum, j’essaie de faire une programmation simple sous PRT, je suis nul en programmation, mais même avec la programmation assistée ça ne marche pas (0 occurrence trouvée).

    ce que je cherche à backtester:

    la bougie de l’avant veille est rouge: c1 = (close[2] < open[2])

    la clôture de l’avant veille est la plus basse des 5 bougies qui la précèdent:  c2 = (close[2] < lowest[5](low))

    la bougie d’hier (de la veille) est verte: c3 = (DClose(1) > DOpen(1))

    et sa clôture est supérieure à la clôture de l’avant veille: c4 = (DClose(1) > close[2])

    la bougie du jour est rouge: c5 = (DClose(0) < DOpen(0))

    et sa clôture est inférieure à celle de l’avant veille: c6 = (DClose(0) < close[2])

    le macd (2,4,1) (à la clôture) du jour est supérieur au macd (2,4,1) de l’avant veille: c7 = ??

    alors si c1, c2, c3, c4, c5, c7 vérifiées achat 1 lot à l’ouverture de j+1 et vente de ce même lot à la fermeture de j+1 (je n’ai pas non plus trouvé la fonction vente à la fermeture j+1)

    voili voilou, si quelqu’un peut m’aider je l’en remercie par avance

    Laurent

     

    #87995

    Y-a t’il un code en l’état pour éviter de tout retaper ? Merci.

    Ouvrir et fermer une position par choix, ne sera possible que si le support multi timeframe est activé, ce qui n’est pas le cas actuellement le cas. Donc je peux aider à faire le programme, mais il ne sera pas possible de le tester pour le moment de ton côté.

     

    #87996
    lb

    ça c’est du rapide, merci !

    voici le code (à vérifier car je l’ai fait en programmation assistée et modifié le plus bas des 5 derniers jours), pour la sortie j’ai modifié le critère par un croisement baissier des prix avec une mm courte (c’est dommage que l’on ne puisse pas programmer une sortie automatique à la clôture de la journée où la position a été engagée, ou à l’ouverture du lendemain).

    et merci !!

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé

    // Conditions pour ouvrir une position acheteuse
    c1 = (close[2] < open[2])
    c2 =  (close[2] < lowest[5](low))
    c3 = (DClose(1) > DOpen(1))
    c4 = (DClose(1) > close[2])
    c5 = (DClose(0) < DOpen(0))
    c6 = (DClose(0) < close[2])
    indicator1 = MACD[2,4,1](MACD[24,52,1](close))
    indicator2 = MACD[2,4,1](MACD[24,52,1](close))
    c7 = (indicator1 > indicator2[2])

    IF c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 THEN
    BUY 1 SHARES AT MARKET TOMORROWOPEN
    ENDIF

    // Conditions pour fermer une position acheteuse
    indicator3 = ExponentialAverage[4](close)
    c8 = (close CROSSES UNDER indicator3)

    IF c8 THEN
    SELL AT MARKET
    ENDIF

     

    #88021

    bonjour laurent

    indicator1 et indicator2 est le même ?

    c7 = (indicator1 > indicator1[2])

     

    #88022
    lb

    oui, il s’agit du macd (2,4,1) et la condition est qu’il y ait une divergence entre le macd du jour (que traduit la programmation assisté par indicator1) et celui de l’avant veille (indicator1[2])

    je ne sais pas pourquoi la programmation assistée rajoute le macd (24,52,1)…

    cdt,

    #88048

    bonsoir

    C2 bloque et j’ai modifier C7

    par contre si c2 = (close[2] >lowest[5](low))  ça marche

    cdt

     

    #88054
    lb

    bonjour fifi, merci pour ton aide et le temps passé.

    J’ai essayé tes modifications mais je n’arrive pas à ce que je souhaite backtester:

    dans un premier temps je veux que le système identifie la configuration suivante: une bougie rouge (avec clôture < aux 5 qui la précède) suivie d’une bougie verte suivie à nouveau d’une bougie rouge avec une clôture plus basse que celle de la bougie rouge d’avant hier

    => la condition c2 est: la clôture d’avant hier est la plus basse des 5 clôtures qui la précède (je crois que ma 1ère erreur est que le code ‘lowest[5](low)’ renvoi au plus bas des 5 dernières bougies à partir de celle d’aujourd’hui et non à partir de la bougie d’avant hier)

    si la figure en chandelier ci-avant est identifiée je souhaite alors que le système vérifie s’il y a une divergence sur le macd (2,4,1) entre l’avant dernière bougie rouge (donc celle d’avant hier) et la dernière bougie rouge (donc celle d’aujourd’hui): la valeur du macd (2,4,1) d’avant hier est > à la valeur du macd (2,4,1) du jour

    si configuration en chandelier décrite ci-dessus + divergence sur macd alors achat à l’ouverture de la journée suivante (cf copie écran)

    pour la sortie à voir si on peut cumuler un stop suiveur à 1 % du gain max et un stop loss à 1 % du montant investi

    si c’est trop compliqué ce n’est pas grave merci quand même ✌

     

    #88056
    lb

    faute de frappe dans mon précédent message, lire:

    la valeur du macd (2,4,1) d’avant hier est < à la valeur du macd (2,4,1) du jour

    #88059

    c’est en journalier bien sur.

    j’ai essayé de répondre a tes questions .

    Cdt

    dans un premier temps je veux que le système identifie la configuration suivante: une bougie rouge (avec clôture < aux 5 qui la précède) suivie d’une bougie verte suivie à nouveau d’une bougie rouge avec une clôture plus basse que celle de la bougie rouge d’avant hier

    Dclose(0) <Dopen(0) and Dlow(0)<DLow(5)

    => la condition c2 est: la clôture d’avant hier est la plus basse des 5 clôtures qui la précède (je crois que ma 1ère erreur est que le code ‘lowest[5](low)’ renvoi au plus bas des 5 dernières bougies à partir de celle d’aujourd’hui et non à partir de la bougie d’avant hier)

    Dclose(2)<Dclose(5)

    si la figure en chandelier ci-avant est identifiée je souhaite alors que le système vérifie s’il y a une divergence sur le macd (2,4,1) entre l’avant dernière bougie rouge (donc celle d’avant hier) et la dernière bougie rouge (donc celle d’aujourd’hui): la valeur du macd (2,4,1) d’avant hier est > à la valeur du macd (2,4,1) du jour

     

    1 user thanked author for this post.
    #88061
    lb

    merci je regarderai ça plus tard, bon we

    #88275
    lb

    Bonjour,

    je souhaiterais pouvoir coder la condition c1 suivante, je vous met ce que j’ai écrit mais cela ne marche pas , pouvez vous m’aider, merci :

    //la clôture du jour doit être supérieure à MME12 du jour et supérieure à MME24 du jour mais si clôture du jour supérieure à MME12 et inférieur à MME24 du jour alors MM5 du jour et MM20 du jour doivent être haussières

    indicator1 = Average[5](close)
    indicator2 = ExponentialAverage[12](close)
    indicator3 = ExponentialAverage[24](close)
    indicator4 = ExponentialAverage[20](close)
    c1 = (dclose(0)> indicator2 [0] and dclose (0)> indicator3 [0]) or (dclose (0) > indicator2 [0] and dclose (0) < indicator3 [0] and indicator1 [0] > indicator1 [1] and indicator4 [0] > indicator4 [1])

     

    IF c1 THEN
    BUY 1 SHARES AT MARKET TOMORROWOPEN
    ENDIF

    // Conditions pour fermer une position acheteuse
    c2 = (close < indicator1)

    IF c2 THEN
    SELL AT MARKET
    ENDIF

    #88285


    @lb
    ► voila le résultat formaté en utilisant le bouton [Insert PRT code] mais je ne peux t’aider pour ta question …

    #88289
    lb

    merci, je regarde ça ce soir.

    #88290
    lb

    pas attendu ce soir, merci c’est ok

    #88445
    lb

    Bonsoir,

    je ne comprend pas, j’ai ce bout de code qui dit que:

    => si MACD (48,104,1) du jour est supérieur à MACD (48,104,1) de la veille alors achat

    => puis quand clôture du jour sous moyenne mobile exponentielle 2 alors vente des positions achetées

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé

    // Conditions pour ouvrir une position acheteuse
    indicator1 = MACDline[48,104,1] (close)
    c1 = (indicator1 [0]> indicator1[1])

    IF c1 THEN
    BUY 1 SHARES AT MARKET
    ENDIF

    // Conditions pour fermer une position acheteuse
    indicator2 = exponentialAverage[2](close)
    c2 = (DClose(0) < indicator2 [0])

    IF c2 THEN
    SELL AT MARKET
    ENDIF

    je ne sais pas à quoi correspond la flêche jaune et croix jaune sur la bougie du 21/03/2018 (cf copie écran en pj): on dirait l’exécution d’un ordre de sortie de marché sauf qu’il n’y a pas de position en cours (et cela se reproduit à maintes reprises).

    de plus il est normal que le 20/03/2018 la précédente position soit vendue à l’ouverture (puisque condition de sortie C < MME2 remplie le 19/03/2018) toutefois à la clôture de ce même 20/03/2018 la condition pour acheter (MACD (48,104,1) haussier) est toujours valide donc on devrait avoir un ordre d’achat le 21/03/2018 sauf que non.

    une idée d’où cela pourrait venir?

    d’avance merci

     

Viewing 15 posts - 1 through 15 (of 23 total)
Similar topics:

Create your free account now and post your request to benefit from the help of the community
Register or Login