Membre très actif
172 messages
- Inscrit le :
- 25 Jun 2012
- Genre :
- m
- Trading :
- Réel
Salut,
La programmation sous mql4 est simple (ressemble beaucoup au C) tu va te familiariser rapidement avec ce langage.
Tout d'abord tu va dans MetaEditor et tu crées un nouvel
Expert Advisor, puis tu mets ces deux fonctions avant init()
Code
//--------------------------------------verif. fleche------------------------------------------------
bool getfch(int t,string pos,int shift){
double a;
if(pos=="haut" ){
a = iCustom(NULL,t,"ZigXard-Pointer-V3",1,shift);if(a>0)return(true);return(false);}
if(pos=="bas" ){
a = iCustom(NULL,t,"ZigXard-Pointer-V3",0,shift);if(a>0)return(true);return(false);}return(false);}
//--------------------------------------clôturer positions--------------
void closeall (int p) { // p=1 fermer achat only -- p=2 fermer vente only -- p=3 fermer achat&vente
for(int i = OrdersTotal()-1;i>=0;i--){
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol()){
if((OrderType()==OP_BUY)&& ( (p==1)||(p==3))){
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,CLR_NONE);}
if((OrderType()==OP_SELL)&& ( (p==2)||(p==3))){
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,CLR_NONE);} }}}}
et dans Start() tu mets:
if(getfch(15,"haut",0)) closeall(1);
if(getfch(15,"bas",0)) closeall(2);
//dans cet exemple tout les ordres d'achats seront clôturés si la flèche apparaît en haut sur le TF 15 minutes que tu peux changer (30,60,240 etc...)
Après, il faut que tu attaches cet EA à tout les graph. où tu veux appliquer cette méthode
Si tu veux que l'expert opère sur plusieurs paires à partir d'un seul graph. où il est attaché, il suffit de rajouter un paramètre d'entrée dans chaque fonction "string paire" (dans la première tu remplaces NULL par paire et dans la 2ème symbol() par paire.
A la fin, il faut écrire toute les paires que tu trades
Code
if(getfch(30,"haut",0,"EURUSD" )) closeall(1,"EURUSD" );
if(getfch(30,"bas",0,"EURUSD" )) closeall(2,"EURUSD" );
if(getfch(15,"haut",0,"EURAUD" )) closeall(1,"EURAUD" );
if(getfch(15,"bas",0,"EURAUD" )) closeall(2,"EURAUD" );
//etc...
Modifié le 2013-12-09 10:30:51 par
AliX
:
[code] [/code]