COMPTEURS DE POSITIONS (achats-ventes)
Forums › ProRealTime forum Français › Support ProOrder › COMPTEURS DE POSITIONS (achats-ventes)
- This topic has 10 replies, 2 voices, and was last updated 3 years ago by larouedegann.
-
-
02/18/2021 at 5:37 PM #161938
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.
1234567891011121314151617181920212223242526272829303132333435DEFPARAM CUMULATEORDERS = FALSEDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 173000IF BARINDEX=0 thenachat =0VENTE =0ENDIFcompteurachat = achat<2COMPTEURVENTE = VENTE<2// POSITION ACHETEUSEIF mescondtions and comptachat THENBUY 1 CONTRACT AT MARKETachat = achat+1ENDIF//FERMETURE POSITION ACHETEUSEIf mesconditions THENSELL 1 CONTRACT AT MARKETENDIF//POSITION VENDEUSEIF mesconditions and COMPTEURVENTE THENSELLSHORT 1 CONTRACT AT MARKETVENTE = VENTE+1ENDIF//FERMETURE POSITION VENDEUSEIF mesconditions THENEXITSHORT 1 contract AT MARKETENDIFSET STOP PLOSS 10Si une âme charitable peut me débloquer,
MERCI D’avance
02/18/2021 at 5:50 PM #161940OUI 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)
02/18/2021 at 5:54 PM #161941(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)
02/18/2021 at 5:59 PM #161943Ok 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?
02/18/2021 at 6:56 PM #161947non, 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).
02/19/2021 at 12:54 PM #161980Je joins un graphe pour plus de compréhension.
Pour exemple dans le cas d’un breakout.
MERCI
02/21/2021 at 3:05 PM #162200Bonjour,
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
12345678910111213141516171819202122232425262728293031323334353637383940414243Defparam cumulateorders = falsedefparam flatbefore = 090000Defparam flatafter = 173000MaxACHAT = 2heuredebut = 090000IF INTRADAYBARINDEX = 0 thenachat = 0endif//**************************CONTRATS******************************************N = 1//*****************************INITIAL BALANCE************************************IF TIME = heuredebut THENhaut = highest[60](high)bas = lowest[60](low)ENDIF//****************************ACHATS***********************************************//Conditions pour ouvrir une première position acheteuseIF NOT LONGONMARKET and Mesconditionsachat and time>=heuredebut and achat<MaxAchat THENBUY N CONTRACTS AT MARKETendifif longonmarket and lastindex<>tradeindex thenachat = achat+1lastindex =tradeindexendif//Conditions pour fermer une première position acheteuseIF mesconditionsventes THENSELL N CONTRACTS AT MARKETENDIFet le code avec la vente en plus qui ne fonctionne pas
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869Defparam cumulateorders = falsedefparam flatbefore = 090000Defparam flatafter = 173000heuredebut = 090000Maxachat = 2Maxvente = 1IF INTRADAYBARINDEX = 0 thenachat = 0vente = 0endif//**************************CONTRATS******************************************N = 1//*****************************INITIAL BALANCE************************************IF TIME = heuredebut THENhaut = highest[60](high)bas = lowest[60](low)ENDIF//Conditions pour ouvrir une première position acheteuseIF NOT LONGONMARKET and Mesconditionsachat and achat<Maxachat THENBUY N CONTRACTS AT MARKETendifif longonmarket and lastindex<>tradeindex thenachat = achat+1lastindex =tradeindexendif//Conditions pour fermer une première position acheteuseIF Mesconditionsvente THENSELL N CONTRACTS AT MARKETENDIF// 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 vendeuseC7IF NOT SHORTONMARKET and Mesconditionvente and TIME>=heuredebut and loose and Maxvente THENSELLSHORT N CONTRACTS AT MARKETendifIF shortonmarket and lastindex<>tradeindex thenvente = vente +1LASTINDEX = TRADEINDEXendif//Conditions pour fermer une première position vendeuseIF Mesconditionsachat THENEXITSHORT N CONTRACTS AT MARKETENDIFSET STOP PLOSSLes 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.
02/21/2021 at 3:06 PM #162201Je joins un graphe
02/21/2021 at 3:31 PM #162224A 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:
1loose = positionperf(2)<=0 and positionperf(1)<=0 and achat=2d’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…
1 user thanked author for this post.
02/21/2021 at 6:07 PM #162257merci Noobywan,
je refait mon code et je reviens vers toi.
02/22/2021 at 10:27 AM #162321HELLO
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
2 achats perdus = 1 vente123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778Defparam cumulateorders = falseDefparam flatbefore = 090000Defparam flatafter = 173000heuredebut = 090000Maxachat = 2Maxvente = 1IF INTRADAYBARINDEX = 0 thenachat = 0vente = 0endif//**************************CONTRATS******************************************N = 1//*****************************INITIAL BALANCE************************************IF TIME = heuredebut THENhaut = highest[60](high)bas = lowest[60](low)ENDIF//****************************ACHATS***********************************************A = mesconditions//Conditions pour ouvrir une première position acheteuseIF NOT LONGONMARKET and A and achat<Maxachat THENBUY N CONTRACTS AT MARKETendifif longonmarket and lastindex<>tradeindex thenachat = achat+1vente = 0lastindex =tradeindexendif//Conditions pour fermer une première position acheteusB = mesconditionsIF B THENSELL N CONTRACTS AT MARKETENDIF// 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 vendeuseC = mesconditionsIF NOT SHORTONMARKET and C and TIME>=heuredebut and loose THENSELLSHORT N CONTRACTS AT MARKETendifIF shortonmarket and lastindex<>tradeindex thenvente = vente+1LASTINDEX = TRADEINDEXendif//Conditions pour fermer une première position vendeuseD = mesconditionsIF D THENEXITSHORT N CONTRACTS AT MARKETENDIFSET STOP PLOSS "a définir" -
AuthorPosts