COMPTEURS DE POSITIONS (achats-ventes)

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #161938 quote
    larouedegann
    Participant
    Master

    Bonjour à tous,

    JE cherche à mettre en place sur les futures un systême en 1MN mettant en place

    DEUX compteurs (un achat et un de vente) avec un MAXIMUM de DEUX PRISES

    de positions.

    J’ai tout essayé COUNTOFPOSITION-COUNTOFLONGSHARES – COUNTOFSHORTSHARES-ONCE -INTRADAYBARINDEX-BARINDEX

    Rien ne fonctionne.

    DEFPARAM CUMULATEORDERS = FALSE
    
    DEFPARAM FLATBEFORE = 090000
    DEFPARAM FLATAFTER = 173000
    
    IF BARINDEX=0 then
    achat =0
    VENTE =0
    ENDIF
    
    compteurachat = achat<2
    COMPTEURVENTE = VENTE<2
    
    
    // POSITION ACHETEUSE
    IF mescondtions and comptachat THEN
    BUY 1 CONTRACT AT MARKET
    achat = achat+1
    ENDIF
    //FERMETURE POSITION ACHETEUSE
    If mesconditions THEN
    SELL 1 CONTRACT AT MARKET
    ENDIF
    
    //POSITION VENDEUSE
    IF mesconditions and COMPTEURVENTE THEN
    SELLSHORT 1 CONTRACT AT MARKET
    VENTE = VENTE+1
    ENDIF
    
    //FERMETURE POSITION VENDEUSE
    IF mesconditions THEN
    EXITSHORT 1 contract AT MARKET
    ENDIF
    SET STOP PLOSS 10

    Si une âme charitable peut me débloquer,

    MERCI D’avance

    #161940 quote
    larouedegann
    Participant
    Master

    OUI merci, mais j’étais plutôt dans la finalité des commandes a utilisé ,cet exemple n’étant qu’un exemple(je doute qu’il soit utilisable même sans faute

    d’orthographe)

    #161941 quote
    JC_Bywan
    Moderator
    Master

    (Désolé j’avais supprimé le message juste en 1re lecture, dans le doute d’avoir mal perçu, et pour prendre le temps de relancer ma plateforme pour tester réellement, mais apparemment tu as eu le temps de le voir avant que je l’enlève)

    #161943 quote
    JC_Bywan
    Moderator
    Master

    Ok si ça ne vient pas du “eur” manquant comptEURachat ni du i dans mes conditions car ton code est en fait un autre code sans problème de caractères manquants, as-tu fait tous tes essais précédents avec ce DEFPARAM CUMULATEORDERS = FALSE? Ou bien l’as tu mis à TRUE pour autoriser l’ajoût d’autres positions à la première?

    #161947 quote
    larouedegann
    Participant
    Master

    non, il n’y a aucun rajout de positions.

    Si il y a prise de position(1 contrat achat ou vente) celui-ci va jusqu’à la fin gagnant ou perdant

    et il ne reste plus qu’une position à prendre dans le sens de cette position gagnante ou perdante..

    Par contre il en reste deux dans le sens opposé.(le cas échant).

    #161980 quote
    larouedegann
    Participant
    Master

    Je joins un graphe pour plus de compréhension.

    Pour exemple dans le cas d’un breakout.

    MERCI

    BUNDXXXX_8-1-minute-2.png BUNDXXXX_8-1-minute-2.png
    #162200 quote
    larouedegann
    Participant
    Master

    Bonjour,

    Problème que je n’arrive pas à résoudre depuis longtemps.

    • Maximum de 2 positions à l’achat dans la journée
    • Si les deux positions sont perdantes alors 1  prise de position à la vente.

    Ci-joint le code qui fonctionne pour les 2 positions à l’achat

     

    Defparam cumulateorders = false
    defparam flatbefore = 090000
    Defparam flatafter = 173000
    
    MaxACHAT = 2
    
    
    heuredebut = 090000
    
    IF INTRADAYBARINDEX = 0 then
    achat = 0
    endif
    
    //**************************CONTRATS******************************************
    N = 1
    //*****************************INITIAL BALANCE************************************
    IF TIME = heuredebut THEN
    haut = highest[60](high)
    bas = lowest[60](low)
    ENDIF
    
    
    
    //****************************ACHATS***********************************************
    
    
    //Conditions pour ouvrir une première position acheteuse
    
    IF NOT LONGONMARKET   and Mesconditionsachat  and time>=heuredebut and achat<MaxAchat THEN
    BUY N CONTRACTS AT MARKET
    endif
    if longonmarket and lastindex<>tradeindex then
    achat = achat+1
    lastindex =tradeindex
    endif
    
    //Conditions pour fermer une première position acheteuse
    
    
    
    IF  mesconditionsventes THEN
    SELL N CONTRACTS AT MARKET
    ENDIF
    

    et le code avec la vente en plus qui ne fonctionne pas

    Defparam cumulateorders = false
    defparam flatbefore = 090000
    Defparam flatafter = 173000
    
    heuredebut = 090000
    Maxachat = 2
    Maxvente = 1
    
    IF INTRADAYBARINDEX = 0 then
    achat = 0
    vente = 0
    endif
    
    //**************************CONTRATS******************************************
    N = 1
    //*****************************INITIAL BALANCE************************************
    IF TIME = heuredebut THEN
    haut = highest[60](high)
    bas = lowest[60](low)
    ENDIF
    
    
    //Conditions pour ouvrir une première position acheteuse
    
    IF NOT LONGONMARKET   and Mesconditionsachat   and achat<Maxachat THEN
    BUY N CONTRACTS AT MARKET
    endif
    if longonmarket and lastindex<>tradeindex then
    achat = achat+1
    lastindex =tradeindex
    endif
    
    //Conditions pour fermer une première position acheteuse
    
    IF  Mesconditionsvente THEN
    SELL N CONTRACTS AT MARKET
    ENDIF
    
    // LE MARCHE N'EST CLAIREMENT PAS HAUSSIER*********************************
    
    
    loose = positionperf[1]<=0 and positionperf<=0 //LES DEUX DERNIERS TRADES DE LA JOURNEE SONT PERDANTS
    
    
    
    //Conditions pour ouvrir une position vendeuse
    
    
    C7
    
    IF NOT SHORTONMARKET and Mesconditionvente  and TIME>=heuredebut   and loose and Maxvente THEN
    SELLSHORT N CONTRACTS AT MARKET
    endif
    IF shortonmarket and lastindex<>tradeindex then
    vente = vente +1
    LASTINDEX = TRADEINDEX
    endif
    
    
    //Conditions pour fermer une première position vendeuse
    
    
    
    IF  Mesconditionsachat THEN
    EXITSHORT N CONTRACTS AT MARKET
    ENDIF
    
    
    SET STOP PLOSS

    Les conditions achat-vente n’ont rien a voir avec le systême.

    Merci à vous

     

    EDIT par modérateurs: ce message a été posté en sujet séparé, il est fusionné par modérateurs au sujet de départ, merci de ne pas étaler les conversations portant sur le même problème en multi-sujets séparés, afin de conserver la lisibilité du fil de lecture dans un seul et même sujet.

    #162201 quote
    larouedegann
    Participant
    Master

    Je joins un graphe

    BUNDXXXX_8-1-minute-3.png BUNDXXXX_8-1-minute-3.png
    #162224 quote
    JC_Bywan
    Moderator
    Master

    A priori pour écrire la ligne 42 on devrait:

    -utiliser des parenthèses plutôt que des crochets

    -utiliser les perfs (2) et (1) plutôt que (1) et (0), car (0) serait une position courante alors qu’on parle d’avoir perdu (donc fini) sur 2 positions

    -utiliser le fait qu’achat=2 pour montrer que c’est atteint dans la même journée, achat étant réinitialisé à 0 au début de chaque jour, car sinon les 2 positions précédentes auraient pu être n’importe quel jour

    ça donnerait pour la ligne 42:

    loose = positionperf(2)<=0 and positionperf(1)<=0 and achat=2

     

    d’autre part dans la ligne 51, plutôt que “and maxvente” je suppose que tu as voulu dire: “and vente<maxvente”

    A tester avec ces 2 modifs en lignes 42 et 51 pour voir avec tes vraies conditions…

    larouedegann thanked this post
    #162257 quote
    larouedegann
    Participant
    Master

    merci Noobywan,

    je refait mon code et je reviens vers toi.

    #162321 quote
    larouedegann
    Participant
    Master

    HELLO

    le code fonctionne (testé sur 10000 ticks).

    Un petit bémol à savoir tout de même, lorsqu’un achat et vente est effectué sur la même barre ,l’achat n’est pas détecté……..

    ci-joint le code au propre.

    merci

    Defparam cumulateorders = false
    Defparam flatbefore = 090000
    Defparam flatafter = 173000
    
    heuredebut = 090000
    Maxachat = 2
    Maxvente = 1
    
    IF INTRADAYBARINDEX = 0 then
    achat = 0
    vente = 0
    endif
    
    //**************************CONTRATS******************************************
    N = 1
    //*****************************INITIAL BALANCE************************************
    IF TIME = heuredebut THEN
    haut = highest[60](high)
    bas = lowest[60](low)
    ENDIF
    
    
    
    //****************************ACHATS***********************************************
    
    
    
    A = mesconditions
    
    //Conditions pour ouvrir une première position acheteuse
    
    IF NOT LONGONMARKET   and A   and achat<Maxachat THEN
    BUY N CONTRACTS AT MARKET
    endif
    if longonmarket and lastindex<>tradeindex then
    achat = achat+1
    vente = 0
    lastindex =tradeindex
    endif
    
    //Conditions pour fermer une première position acheteus
    
    B = mesconditions
    
    IF  B THEN
    SELL N CONTRACTS AT MARKET
    ENDIF
    
    // LE MARCHE N'EST CLAIREMENT PAS HAUSSIER*********************************
    
    
    loose = positionperf(2)<=0 and positionperf(1)<=0 and achat = 2 and vente<Maxvente//LES DEUX DERNIERS TRADES DE LA JOURNEE SONT PERDANTS
    
    
    
    //Conditions pour ouvrir une position vendeuse
    
    C = mesconditions
    
    IF NOT SHORTONMARKET and C  and TIME>=heuredebut   and loose  THEN
    SELLSHORT N CONTRACTS AT MARKET
    endif
    IF shortonmarket and lastindex<>tradeindex then
    vente = vente+1
    LASTINDEX = TRADEINDEX
    endif
    
    
    //Conditions pour fermer une première position vendeuse
    
    D = mesconditions
    
    IF  D THEN
    EXITSHORT N CONTRACTS AT MARKET
    ENDIF
    
    
    SET STOP PLOSS "a définir"
Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.

COMPTEURS DE POSITIONS (achats-ventes)


ProOrder : Trading Automatique & Backtests

New Reply
Author
Summary

This topic contains 10 replies,
has 2 voices, and was last updated by larouedegann
5 years ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 02/18/2021
Status: Active
Attachments: 2 files
Logo Logo
Loading...