IDENTIFIER LE SENS DU 1ER ORDRE PASSE DANS UNE BOUCLE FOR
Modérateur : Administrateurs
IDENTIFIER LE SENS DU 1ER ORDRE PASSE DANS UNE BOUCLE FOR
Bonjour, je suis débutant en MQL4 mais je m'intéresse fortement au développement d'un EA. J'ai entrepris de travailler sur un EA qui passe des ordres en Pyramide tous les 100 pips. Je veux qu'au bout de x Ordres passés à l'achat, l'EA inverse les ordres suivants en les passant à la Vente. Pour cela, et pour d'autres raisons, j'ai besoin d'identifier le sens du 1er ordre de la boucle que j'ai créé pour ensuite y faire référence dans le code.
Merci pour votre aide.
for(i= OrdersTotal()-1; i>= 0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol()==Symbol())
{
if((count==1 && OrderMagicNumber()==0) || (count==(OrderMagicNumber()+1)))
{
if (OrderType()==0 && OrdersTotal() <=NbOrders)
{
last=OrderOpenPrice();
next=OrderOpenPrice()-dif;
if(OrderOpenPrice()-Ask>dif)
{
od= OrderSend(Symbol(),OP_BUY,lot*(count+LotStep),Ask,3,0,bTakeProfit,"BUY #"+mgc+" @ M"+Period(),(count),0,Blue); Sleep(1000);
}
}
else if(OrderType()==0 && OrdersTotal()>=NbOrders)
{
last=OrderOpenPrice();
next=OrderOpenPrice()-dif;
if(OrderOpenPrice()-Bid>dif )
{
odRet= OrderSend(Symbol(), OP_SELL, lot2*(count+LotStep),Bid,3,0,sTakeProfit,"SELL #"+mgc+" @ M"+Period(),(count),0,DeepPink); Sleep(1000);
}
}
...
Merci pour votre aide.
for(i= OrdersTotal()-1; i>= 0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol()==Symbol())
{
if((count==1 && OrderMagicNumber()==0) || (count==(OrderMagicNumber()+1)))
{
if (OrderType()==0 && OrdersTotal() <=NbOrders)
{
last=OrderOpenPrice();
next=OrderOpenPrice()-dif;
if(OrderOpenPrice()-Ask>dif)
{
od= OrderSend(Symbol(),OP_BUY,lot*(count+LotStep),Ask,3,0,bTakeProfit,"BUY #"+mgc+" @ M"+Period(),(count),0,Blue); Sleep(1000);
}
}
else if(OrderType()==0 && OrdersTotal()>=NbOrders)
{
last=OrderOpenPrice();
next=OrderOpenPrice()-dif;
if(OrderOpenPrice()-Bid>dif )
{
odRet= OrderSend(Symbol(), OP_SELL, lot2*(count+LotStep),Bid,3,0,sTakeProfit,"SELL #"+mgc+" @ M"+Period(),(count),0,DeepPink); Sleep(1000);
}
}
...
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSÉ DANS UNE BOUCLE FO
On aiderait bien, mais... quelle est la question ?
Car tu test effectivement le sens de l'ordre (on ne sait pas ce qui ne va pas) :
On peut écrire moins crade (mais ça ne change rien):
A propos, pour poster du code, utilise la balise
Car tu test effectivement le sens de l'ordre (on ne sait pas ce qui ne va pas) :
Code : Tout sélectionner
if (OrderType()==0
Code : Tout sélectionner
if (OrderType()==OP_BUY
Code : Tout sélectionner
(entre [i]Quote[/i] et [i]List[/i] de la saisie de message). Par ailleurs, évite les titres de sujet en majuscule, d'après la netiquette cela revient à crier. :wink:
Les informations présentées ne peuvent être considérées ni comme un conseil en investissement, ni comme une recommandation d'investissement. Il s'agit de commentaires généraux sur les marchés et de raisonnements que l'on peut tenir à leur sujet.
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSÉ DANS UNE BOUCLE FO
Si tant est que j'ai compris, il te suffit pour connaitre le sens du premier d'ajouter un booleen dans ta boucle:
bool PremierOrderTrouve=0;
string sens="";
dans ta boucle et comme tu démarres par le dernier ca donne:
bool PremierOrderTrouve=0;
string sens="";
dans ta boucle et comme tu démarres par le dernier ca donne:
Code : Tout sélectionner
if(i== 0 && PremierOrderTrouve==0)
{
if(OrderType()==OP_BUY) sens="buy";
else sens="sell";
PremierOrderTrouve=1;
}
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSÉ DANS UNE BOUCLE FO
De ce que je crois comprendre de la question et sans s'attarder sur le code si tu veux déterminer le premier ordre d'une série la seule solution fiable et d'utiliser OrderOpenTime(). Tout le reste et très sujet a caution, notamment si par exemple il y a intervention sur le compte par ailleurs.
Bon courage a toi
Bon courage a toi
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSE DANS UNE BOUCLE FO
L'heure, en effet, c'est sans doute la meilleure soluce.
- Loverotten
- Membre assidu
- Messages : 401
- Inscription : 30 sept. 2015, 04:34
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSE DANS UNE BOUCLE FO
C'est une sorte d'approche "arbitraire"... Ça pourrait donner quelque chose, faut voir.
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSE DANS UNE BOUCLE FO
Bonjour à tous et merci pour vos commentaires et conseils. En effet, je teste déjà le sens de l'ordre mais je veux connaitre celui du 1er ordre de la boucle car c'est sur lui que je vais m'appuyer pour développer le reste de la boucle.
Merci à toi neo-13 pour ta proposition qui convient parfaitement à mon cas. J'ai testé et ça marche comme je le souhaitais.
Merci encore
Merci à toi neo-13 pour ta proposition qui convient parfaitement à mon cas. J'ai testé et ça marche comme je le souhaitais.
Merci encore
Re: IDENTIFIER LE SENS DU 1ER ORDRE PASSE DANS UNE BOUCLE FO
Arf, bravo Neo-13, j'avais pas tout capté.
Super cette file, on se croirait revenu aux grandes heures de trading automatique, lorsqu'un débutant posant une question attirait la ruée des programmeurs d'expérience pour apporter de l'aide.
Bizarre, Troll55 n'est pas venu pourrir la file.
Super cette file, on se croirait revenu aux grandes heures de trading automatique, lorsqu'un débutant posant une question attirait la ruée des programmeurs d'expérience pour apporter de l'aide.
Bizarre, Troll55 n'est pas venu pourrir la file.
Les informations présentées ne peuvent être considérées ni comme un conseil en investissement, ni comme une recommandation d'investissement. Il s'agit de commentaires généraux sur les marchés et de raisonnements que l'on peut tenir à leur sujet.