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
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)
(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)
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?
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).
Je joins un graphe pour plus de compréhension.
Pour exemple dans le cas d’un breakout.
MERCI
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.
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…
merci Noobywan,
je refait mon code et je reviens vers toi.
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"