Vente à découvert programmé sur cassure de MM seulement si.

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #121047 quote
    sortrade
    Participant
    New

    Bonjour à tous,

    Je suis bloqué dans la réalisation de mon ProOrder.

    J’ai le souhait de placer un ordre à la vente à découvert au moment de la prochaine cassure à la baisse d’une MM34 seulement si précédemment j’ai eu 3 conditions remplis.

    • Condition_1: Le prix soit en dessous de ma MM100
    • Condition_2:Le prix soit au dessus de ma MM34
    • Condition_3:Le RSI période 7 est été au moins une fois au dessus de la valeur “71”.

    J’ai ajouté une image pour exemple (un ordre perdant mais c’est pas grave, c’est pour l’exemple).

     

    Je vous remercie d’avance pour votre aide.

    Exemple.png Exemple.png
    #121070 quote
    Nicolas
    Keymaster
    Master

    Le RSI période 7 est été au moins une fois au dessus de la valeur “71”. Oui mais depuis quand ? Depuis la chute de l’empire Romain ou depuis Noël dernier ? 😆

    #121100 quote
    sortrade
    Participant
    New

    Bonjour,

    Merci pour votre retour

    Si je comprend bien, nous somme obligé d’indiquer le nombre de période antérieur pour le RSI.

    Mais si j’indique un nombre de période antérieur, je risque de louper une ouverture d’ordre si le RSI à cassé sur la bougie juste avant ma période.

    Il faudrait que je puisse indiquer la période correspondante à toute les bougies antérieurs qui ce trouve entre la MM34 et MM100.

    Est-ce que la logique est bonne ?

     

    Et si elle est bonne comment indiquer dans mon code “les bougies antérieurs à mon prix, qui ce trouve entre la MM34 et MM100” ?

     

    Merci

    #121132 quote
    Nicolas
    Keymaster
    Master

    Il faut en effet définir des conditions strictes et répétables, le RSI 7 a bien été au dessus du niveau X à un moment de l’historique. Hors on ne va pas donner un signal valide si cet événement du RSI  a eu lieu il y a Y périodes. Donc définir un point de départ où on commence à vérifier cette condition, il ne faut pas s’inquiéter sur comment on va déterminer la quantité de bougies à vérifier et comment on va le coder, le principal c’est de définir la condition du “début” de vérification.

    #121487 quote
    sortrade
    Participant
    New

    Bonjour,

     

    Merci pour votre retour.

     

    J’ai changé ma manière de coder ce que je souhaité.

    Cependant ça ne me retourne rien. Et la je bloc…

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 080000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 173000
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Déclaration de Variables
    indicator1 = Average[34](close)
    indicator2 = ExponentialAverage[100](close)
    indicator3 = RSI[7](close)
    c1 = (close > indicator1) //Au dessus de la MM34
    c2 = (close < indicator2) //En dessous de la MM100
    c3 = (indicator3 > 70) //RSI au dessus des 70
    c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34
    result = 0
    
    //Condition pour que le result s'incrémente de 1
    IF c1 AND c2 AND c3 THEN
    result = 1
    ENDIF
    
    //Condition pour ouvrir un ordre à la vente
    IF c4 AND result = 1 AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Stops et objectifs
    SET STOP pLOSS 10
    SET TARGET pPROFIT 10

    Pouvez-vous m’indiquer si j’ai bien compris le principe et où j’ai fait une erreur ?

     

    Merci d’avance.

    #121512 quote
    sortrade
    Participant
    New

    Re-Bonjour

     

    J’ai bien avancé avec mes recherches et test, mais je reste bloqué sur la fin de mon code.

    J’aimerai reset ma Variable “NombrePeriodeDepuisRSI” après l’ouverture de mon trade, pour que toutes mes conditions ce test à nouveau seulement à partir du nouveau moment ou le RSI est au dessus des 70.

    Merci pour votre aide.

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 060000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 173000
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Déclaration de Variables
    indicator1 = Average[34](close)
    indicator2 = ExponentialAverage[100](close)
    indicator3 = RSI[7](close)
    //c1 = (close > indicator1) //Au dessus de la MM34
    c2 = (close < indicator2) //En dessous de la MM100
    c3 = (indicator3 > 70) //RSI au dessus des 70
    c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34
    //c5 = (close CROSSES OVER indicator2) //Casse à la hausse la MM100
    
    //Comptabiliser le nombre de période depuis que le RSI est valide
    IF c2 AND c3 THEN
    FigeMaPeriodeRSI = barindex
    GRAPH FigeMaPeriodeRSI AS "FigeMaPeriodeRSI"
    ENDIF
    NombrePeriodeDepuisRSI = barindex - FigeMaPeriodeRSI
    GRAPH NombrePeriodeDepuisRSI AS "NombrePeriodeDepuisRSI"
    
    //Condition pour vente à découvert
    IF c3[NombrePeriodeDepuisRSI] AND c2[1] AND c4 AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Stops et objectifs
    SET STOP pLOSS 10
    SET TARGET pPROFIT 10
    
    #121520 quote
    Nicolas
    Keymaster
    Master

    Bravo pour ce code, c’est une façon élégante de vérifier la condition.

    Pour remettre à zéro ta condition on peut flagger “FigeMaPeriodeRSI” à 0 quand tu passes un ordre et ajouter une condition pour calculer “NombrePeriodeDepuisRSI” seulement si “FigeMaPeriodeRSI” est supérieure à zéro, donc si un événement a bien eu lieu, soit :

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 060000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 173000
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Déclaration de Variables
    indicator1 = Average[34](close)
    indicator2 = ExponentialAverage[100](close)
    indicator3 = RSI[7](close)
    //c1 = (close > indicator1) //Au dessus de la MM34
    c2 = (close < indicator2) //En dessous de la MM100
    c3 = (indicator3 > 70) //RSI au dessus des 70
    c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34
    //c5 = (close CROSSES OVER indicator2) //Casse à la hausse la MM100
    
    //Comptabiliser le nombre de période depuis que le RSI est valide
    IF c2 AND c3 THEN
    FigeMaPeriodeRSI = barindex
    GRAPH FigeMaPeriodeRSI AS "FigeMaPeriodeRSI"
    ENDIF
    if FigeMaPeriodeRSI>0 then //SI EVENEMENT CONNU
     NombrePeriodeDepuisRSI = barindex - FigeMaPeriodeRSI
    endif
    GRAPH NombrePeriodeDepuisRSI AS "NombrePeriodeDepuisRSI"
    
    //Condition pour vente à découvert
    IF c3[NombrePeriodeDepuisRSI] AND c2[1] AND c4 AND not daysForbiddenEntry THEN
     SELLSHORT 1 CONTRACT AT MARKET
     FigeMaPeriodeRSI = 0 // RAZ
    ENDIF
    
    // Stops et objectifs
    SET STOP pLOSS 10
    SET TARGET pPROFIT 10

    A tester ! 😉

    #121564 quote
    sortrade
    Participant
    New

    Bonjour,

    Merci.

    Bon j’ai testé et malheuresement, en plus des bonnes ouvertures d’odres, il y a des ouvertures d’ordres qui ne respect pas ma stratégie et je ne comprend pas pourquoi.

    Après avoir affiché sur le graph la valeur de “NombrePeriodeDepuisRSI” je m’apperçoit que suite à l’ouverture d’un ordre la valeur de mon “NombrePeriodeDepuisRSI” n’est pas réinitialisé sur la bougie d’après.

    Ce qui veut dire que si mes bougies d’après remplissent la condition c2 et c4 (//Condition de vente à découvert) et bien elles ouvrent un ordre.

    Alors que j’aimerai que si un ordre est été ouvert et/ou fermé il faut attendre la prochaine cassure de RSI dans les bonnes conditions pour ouvrir un nouvel ordre, d’où ma demande de réinitialiser ma variable.

    Je cherche mais je bloc…

     

    Merci pour votre aide.

    Image.jpg Image.jpg
    #121574 quote
    Nicolas
    Keymaster
    Master

    Avec cette autre version peut être ? Il y a vraiment trop d’informations sur ton graphique, c’est difficile de bien comprendre. Avec l’instruction GRAPH C2 AND C3  que j’ai ajouté à la fin du code tu pourras voir dans le backtest à quel moment on marque l’événement de ces 2 conditions.

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 060000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 173000
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Déclaration de Variables
    indicator1 = Average[34](close)
    indicator2 = ExponentialAverage[100](close)
    indicator3 = RSI[7](close)
    //c1 = (close > indicator1) //Au dessus de la MM34
    c2 = (close < indicator2) //En dessous de la MM100
    c3 = (indicator3 > 70) //RSI au dessus des 70
    c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34
    //c5 = (close CROSSES OVER indicator2) //Casse à la hausse la MM100
    
    //Comptabiliser le nombre de période depuis que le RSI est valide
    IF c2 AND c3 THEN
    FigeMaPeriodeRSI = barindex
    //GRAPH FigeMaPeriodeRSI AS "FigeMaPeriodeRSI"
    ENDIF
    
    
    //Condition pour vente à découvert
    IF barindex>FigeMaPeriodeRSI and FigeMaPeriodeRSI>0 and c4 AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    FigeMaPeriodeRSI = 0 // RAZ
    ENDIF
    
    // Stops et objectifs
    SET STOP pLOSS 10
    SET TARGET pPROFIT 10
    
    graph c2 AND c3
    #121609 quote
    sortrade
    Participant
    New

    Bonsoir,

    Merci pour votre retour.

    Je peux indiquer, après vérification, que ça fonctionne 🙂 comme je l’entend.

     

    Merci beaucoup, je vais pouvoir passer à l’optimisation de mon code.

    Petite question, si j’ai des questions sur d’autre typologie de problème, mais sur le même code faut-il que j’ouvre un autre topic ou je peux réutiliser celui-ci ?

     

    Merci Nicolas

    #121650 quote
    Nicolas
    Keymaster
    Master

    Tu peux poster dans le même sujet, si besoin je séparerai les topics.

    #121765 quote
    sortrade
    Participant
    New

    Bonsoir Nicolas,

     

    Malheuresement via un compte démo et non plus via le backtest j’ai cette erreur (en pièce jointe) et je ne comprend pas pourquoi il me bloc.

     

    Est-ce qu’il y a des indicateurs ou variables que PRT ne prend pas en compte hors du proorder/backtest ?

     

    Merci

    Erreur.png Erreur.png
    #121799 quote
    Nicolas
    Keymaster
    Master

    Le message est clair, un indicateur ne peut évidemment pas avoir de période nulle ou négative 🙂

    Dans le dernier code que j’ai posté, il n’y en a pas, donc ça ne doit pas être le même ?

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

Vente à découvert programmé sur cassure de MM seulement si.


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
sortrade @sortrade Participant
Summary

This topic contains 12 replies,
has 2 voices, and was last updated by Nicolas
6 years ago.

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