Backtester un screener

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #69431 quote
    deletedaccount180226
    Participant
    New

    Bonjour à tous

    Je me permets d’intervenir pour la premiere fois, mais je connais ce forum que je trouve genial.

    J’ai trouvé ici un screener interessant…donnant un signal long ou short.

    Je voudrais l’utiliser mais impossible de backtester les screener. Avez vous une idée? est ce possible à part manuellement?

    #69439 quote
    robertogozzi
    Moderator
    Master

    Vous devez le convertir en stratégie.

    #69440 quote
    robertogozzi
    Moderator
    Master

    Ceci est un screener qui indique un croisement haussier entre deux moyennes mobiles

    FastAVg = Average[5](close)
    SlowAvg = Avergae[20](close)
    x       = FastAvg CROSSES OVER SlowAvg
    SCREENER [x]

    C’est une stratégie qui permet le débogage, avec GRAPH, du screener mentionné ci-dessus

    FastAVg = Average[5](close)
    SlowAvg = Average[20](close)
    x       = FastAvg CROSSES OVER SlowAvg
    GRAPH FastAvg
    GRAPH SlowAvg
    GRAPH close
    GRAPH x
    buy at -close limit  //ligne inutile, il sert seulement à avoir au moins un BUY
    thanked this post
    #69483 quote
    deletedaccount180226
    Participant
    New

    Bonjour

    MErci pour votre réponse.

    Le screener avait developpe un indicateur 0/1 afin de savoir si ‘lon pouvait entrer long ou short

    JE vais devoir l’adapter un peu…il se peut que je vous redemande de l’aide ; en effet ce n’est pas ma specialité

    MErci pour votre réponse rapide

    #69506 quote
    deletedaccount180226
    Participant
    New

    BOnjour,

    Je n’y arrive pas.
    Le code que je souhaite adapter est celui de Gabre que j’ai trouvé dans la librairie.

    J’ai mis ci-dessous l’original puis ma proposityion d’adapatation mais c’est NOK.. si quelqu’un peut m(‘aider

     

    //basic definitions
    conversion=(highest[9](high)+lowest[9](low))/2
    base=(highest[26](high)+lowest[26](low))/2
    //conditions for conversion/base positioning
    c10=conversion > base
    c11=conversion crosses over base
    c12=conversion < base
    c13=conversion crosses under base
    //spanA and spanB future value
    spanA=(conversion+base)/2
    spanB=(highest[52](high)+lowest[52](low))/2
    //spanA and spanB present value
    maxspan=max(spanA[26],spanB[26])
    minspan=min(spanA[26],spanB[26])
    //conditions for future span A and B positioning
    c20=spanA > spanB
    c21=spanA crosses over spanB
    c22=spanA < spanB
    c23=spanA crosses under spanB
    //conditions for present span A and B positioning
    c30=close>maxspan
    c31=close crosses over maxspan
    c32=close<minspan
    c33=close crosses under minspan
    //conditions for lag line positioning
    maxspanlag=max(spanA[52],spanB[52])
    minspanlag=min(spanA[52],spanB[52])
    c40=close>maxspanlag
    c41=close crosses over maxspanlag
    c42=close<minspanlag
    c43=close crosses under minspanlag
     
    clong1=c11 and c20 and c30 and c40
    clong2=c10 and c21 and c30 and c40
    clong3=c10 and c20 and c31 and c40
    clong4=c10 and c20 and c30 and c41
     
    cshort1=c13 and c22 and c32 and c42
    cshort2=c12 and c23 and c32 and c42
    cshort3=c12 and c22 and c33 and c42
    cshort4=c12 and c22 and c32 and c43
     
    long=clong1 or clong2 or clong3 or clong4
    short=cshort1 or cshort2 or cshort3 or cshort4
     
    SCREENER [long or short](long as "long")
    //basic definitions
    conversion=(highest[9](high)+lowest[9](low))/2
    base=(highest[26](high)+lowest[26](low))/2
    //conditions for conversion/base positioning
    c10=conversion > base
    c11=conversion crosses over base
    c12=conversion < base
    c13=conversion crosses under base
    //spanA and spanB future value
    spanA=(conversion+base)/2
    spanB=(highest[52](high)+lowest[52](low))/2
    //spanA and spanB present value
    maxspan=max(spanA[26],spanB[26])
    minspan=min(spanA[26],spanB[26])
    //conditions for future span A and B positioning
    c20=spanA > spanB
    c21=spanA crosses over spanB
    c22=spanA < spanB
    c23=spanA crosses under spanB
    //conditions for present span A and B positioning
    c30=close>maxspan
    c31=close crosses over maxspan
    c32=close<minspan
    c33=close crosses under minspan
    //conditions for lag line positioning
    maxspanlag=max(spanA[52],spanB[52])
    minspanlag=min(spanA[52],spanB[52])
    c40=close>maxspanlag
    c41=close crosses over maxspanlag
    c42=close<minspanlag
    c43=close crosses under minspanlag
     
    clong1=c11 and c20 and c30 and c40
    clong2=c10 and c21 and c30 and c40
    clong3=c10 and c20 and c31 and c40
    clong4=c10 and c20 and c30 and c41
     
    cshort1=c13 and c22 and c32 and c42
    cshort2=c12 and c23 and c32 and c42
    cshort3=c12 and c22 and c33 and c42
    cshort4=c12 and c22 and c32 and c43
     
    
     
    GRAPH

    Merci par avancec pour votre aide à tous

    #69508 quote
    Nicolas
    Keymaster
    Master

    Je n’ai pas regardé en détail le code et où pourrait être le problème, mais cela me fait penser à ce sujet: ASTUCE Comment tester l’efficacité d’un screener

    #69509 quote
    robertogozzi
    Moderator
    Master

    Dans la version d’origine, supprimez uniquement la ligne 46 et ajoutez les éléments suivants:

    GRAPH long
    GRAPH short
    buy at -close limit

    remplacez les variables que j’ai utilisées avec GRAPH (vous pouvez indiquer jusqu’à 5 instructions GRAPH) avec celles que vous souhaitez vérifier.

    #69519 quote
    deletedaccount180226
    Participant
    New

    Merci pour vos réponses

    J’ai essayé de coder une regle moi même mais ca ne marche pas

    Si je veux dire, des que le signe est long ou short, il faut entrer en position sur 1 lot faire + 10pips en objectif & – 5 en stop je ne sais pas dui tout comment le coder.

    Pourriez vous m’aider svP

    #69525 quote
    robertogozzi
    Moderator
    Master

    C’est le support ProScreener, pour la stratégie vous devez ouvrir un nouveau sujet dans le support de ProOrder.
    Merci.

    #82516 quote
    schneiderj
    Participant
    Average

    Bonsoir,

    je viens de voir dans ce message le mot débogage. Ce qui m’a amené ici, c’est ce mot : comment peut-on déboguer le code avec ProRealTime ?

    Uniquement avec la sortie Graph ?

    Merci

    Jean-Marie

    #82523 quote
    robertogozzi
    Moderator
    Master

    Oui, avec GRAPH.

    #82538 quote
    Nicolas
    Keymaster
    Master

    En effet, GRAPH est la seule instruction pour débugger / débogger , mais uniquement dans les backtests.

    Pour les indicateurs, on ajoutera la variable à visualiser dans l’instruction RETURN, et pour les screeners, on peut visualiser la valeur d’une variable en l’affichant en tant que critère de tri.

    #82560 quote
    schneiderj
    Participant
    Average

    Merci pour vos réponses. Vraiment pas pratique. Est-ce que la version qui est en préparation sera modifié à ce niveau là ?

    Edit : il est vrai que le code est tout de même relativement simple et généralement pas très long. Tout au moins pour ce que j’ai pu voir jusqu’à aujourd’hui.

    #82566 quote
    Nicolas
    Keymaster
    Master

    A ma connaissance, il n’y a rien de prévu en complément. Au fil du temps, on s’y habitue, mais le mieux serait quand même d’avoir une vrai console, rien que faire un print qui accepte les string nous simplifierai vraiment la vie 🙂

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

Backtester un screener


ProScreener : Scanners de Marché & Détection

New Reply
Summary

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

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 04/30/2018
Status: Active
Attachments: No files
Logo Logo
Loading...