Nous sommes le 23 Oct 2017, 05:10

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: 4
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
VideoBourse family

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

_________________
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.


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

Inscription: 28 Fév 2015, 17:53
Messages: 226
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: 126
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: 226
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: 364
C'est une sorte d'approche "arbitraire"... Ça pourrait donner quelque chose, faut voir.

_________________


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

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

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

_________________
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.


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: Google [Bot] et 3 invités


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