Nous sommes le 23 Mar 2017, 05:19

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
MessagePosté: 26 Jan 2017, 00:12 
Hors ligne
Nouveau

Inscription: 25 Jan 2017, 23:57
Messages: 2
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);
}
}
...


Haut
 Profil  
 
MessagePosté: 26 Jan 2017, 07:35 
Hors ligne
Membre assidu

Inscription: 28 Sep 2015, 15:18
Messages: 492
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) :
Code:
if (OrderType()==0

On peut écrire moins crade (mais ça ne change rien):
Code:
if (OrderType()==OP_BUY


A propos, pour poster du code, utilise la balise [Code] (entre Quote et List de la saisie de message). Par ailleurs, évite les titres de sujet en majuscule, d'après la netiquette cela revient à crier. :wink:

_________________
Mieux vaut être broker et en bonne santé que trader et malade.


Haut
 Profil  
 
MessagePosté: 26 Jan 2017, 10:20 
Hors ligne
Membre assidu

Inscription: 28 Fév 2015, 17:53
Messages: 187
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:
Code:
if(i== 0 && PremierOrderTrouve==0)
{
  if(OrderType()==OP_BUY) sens="buy";
  else                              sens="sell";
  PremierOrderTrouve=1;
}


Haut
 Profil  
 
MessagePosté: 26 Jan 2017, 10:51 
Hors ligne
Membre assidu

Inscription: 21 Oct 2015, 13:07
Messages: 114
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


Haut
 Profil  
 
MessagePosté: 26 Jan 2017, 16:36 
Hors ligne
Membre assidu

Inscription: 28 Fév 2015, 17:53
Messages: 187
L'heure, en effet, c'est sans doute la meilleure soluce.


Haut
 Profil  
 
MessagePosté: 26 Jan 2017, 17:54 
Hors ligne
Membre assidu
Avatar de l’utilisateur

Inscription: 30 Sep 2015, 03:34
Messages: 324
C'est une sorte d'approche "arbitraire"... Ça pourrait donner quelque chose, faut voir.

_________________
Image

http://www.proeliofps.blogspot.com


Haut
 Profil  
 
MessagePosté: 26 Jan 2017, 18:55 
Hors ligne
Nouveau

Inscription: 25 Jan 2017, 23:57
Messages: 2
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


Haut
 Profil  
 
MessagePosté: 30 Jan 2017, 14:24 
Hors ligne
Membre assidu

Inscription: 28 Sep 2015, 15:18
Messages: 492
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. :mrgreen:

_________________
Mieux vaut être broker et en bonne santé que trader et malade.


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com
phpBB SEO