Probleme de commande EA

Présentation, Développement, Améliorations et Ressources pour les Stratégies de Trading Automatique.

Modérateur : Administrateurs

Message
Auteur
DouDou
Nouveau
Messages : 2
Inscription : 21 mai 2013, 21:10

Probleme de commande EA

#1 Message par DouDou »

Bonjour à tous,
je créer ce sujet car j'ai un problème avec un message de mon metaeditor qui me dit :
" if - semicolon expected"

Voici si dessous mon EA que j'ai commencer c'est sur le croisement de moyenne mobile Simple 5 et 10



donc moi j'ai fait sa :
//+------------------------------------------------------------------+
//| Moyenne Mobile Simple 5-10 .mq4 |
//| Test n1 |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Test n1"
#property link ""
// Variable Externes
extern int MAGIC_NUMBER = 123456;
extern double LOT = 0.01;
// Variables Globales
double MMS5, MMS10;
double MMS5_p, MMS10_p;
int Ticket;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
MMS5 = iMA(Symbol (),0,5,2,MODE_SMA, PRICE_CLOSE, 0);
MMS10 = iMA(Symbol (),0,10,2,MODE_SMA, PRICE_CLOSE, 0);

MMS5 = iMA(Symbol (),0,5,2,MODE_SMA, PRICE_CLOSE, 1);
MMS10 = iMA(Symbol (),0,10,2,MODE_SMA, PRICE_CLOSE, 1);
iF(isTrade() == false)
(
// Vendre
if(MMS5_p > MMS10_p && MMS5 < MMS10)
(
Ticket = OrderSend(Symbol(), OP_SELL, LOT,Bid 3, 0, 0, NULL, MAGIC_NUMBER, 0, Red);
)

// Achat
if(MMS5_p < MMS10_p && MMS5 > MMS10)
(
Ticket = OrderSend(Symbol(), OP_BUY, LOT,Ask 3, 0, 0, NULL, MAGIC_NUMBER, 0, Green);
)
)
else
(
if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES) == true)
(
if(OrderType() ==OP_SELL)
(
if(MMS5_p < MMS10_p && MMS5 > MMS10)
(
OrderClose(Ticket, OrderLots(), Ask, 3, Blue);
)
)
if(OrderType() == OP_BUY)
(
if(MMS5_p > MMS10_p && MMS5 < MMS10)
(
OrderClose(Ticket, OrderLots(), Ask, 3, Blue);
)
)

)
)
return(0);
}
bool isTrade()

if(OrdersTotal() >= 1)
(
return(true);
)
else
(
return(false);
)




Merci a vous =)

Tidzap
Membre actif
Messages : 15
Inscription : 13 mars 2013, 21:34

Re: Probléme de commande EA

#2 Message par Tidzap »

//+------------------------------------------------------------------+
//| Moyenne Mobile Simple 5-10 .mq4 |
//| Test n1 |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Test n1"
#property link ""

// Variable Externes
extern int MAGIC_NUMBER = 123456;
extern double LOT = 0.01;

// Variables Globales
double MMS5, MMS10;
double MMS5_p, MMS10_p;
int Ticket;


//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{

return(0);
}


//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}


//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
MMS5 = iMA(Symbol (),0,5,2,MODE_SMA, PRICE_CLOSE, 0);
MMS10 = iMA(Symbol (),0,10,2,MODE_SMA, PRICE_CLOSE, 0);

MMS5_p = iMA(Symbol (),0,5,2,MODE_SMA, PRICE_CLOSE, 1);
MMS10_p = iMA(Symbol (),0,10,2,MODE_SMA, PRICE_CLOSE, 1);

if(isTrade() == false)
{
// Vendre
if(MMS5_p > MMS10_p && MMS5 < MMS10)
{
Ticket = OrderSend(Symbol(), OP_SELL, LOT,Bid, 3, 0, 0, NULL, MAGIC_NUMBER, 0, Red);
}

// Achat
if(MMS5_p < MMS10_p && MMS5 > MMS10)
{
Ticket = OrderSend(Symbol(), OP_BUY, LOT,Ask, 3, 0, 0, NULL, MAGIC_NUMBER, 0, Green);
}
}

else
{
if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES) == true)
{
if(OrderType() ==OP_SELL)
{
if(MMS5_p < MMS10_p && MMS5 > MMS10)
{
OrderClose(Ticket, OrderLots(), Ask, 3, Blue);
}
}

else if(OrderType() == OP_BUY)
{
if(MMS5_p > MMS10_p && MMS5 < MMS10)
{
OrderClose(Ticket, OrderLots(), Ask, 3, Blue);
}
}
}
}

return(0);
}


//+------------------------------------------------------------------+
//| Fonctions persos |
//+------------------------------------------------------------------+
bool isTrade()
{
if(OrdersTotal() >= 1)
{
return(true);
}
else
{
return(false);
}
}


Voilà les erreurs que j'ai corrigées :
- Les fonctions doivent être encadrées dans des accolades et non dans des parenthèses
- Une virgule était oubliée entre les paramètres prix et slippage de la fonction OrderSend()
- Les variables MMS5_p, MMS10_p n'étaient pas renseignées alors que MMS5, MMS10 étaient renseignées 2 fois

Bon courage dans ton apprentissage du MQL4 et n'hésite pas si tu as d'autres questions !
[url]http://www.algo-forex.fr[/url]: L'information utile pour gagner sur le Forex.
Performances de mon robot full auto : [b][url]http://www.algo-forex.fr/resultats-trading-forex/[/url][/b]

Tidzap
Membre actif
Messages : 15
Inscription : 13 mars 2013, 21:34

Re: Probléme de commande EA

#3 Message par Tidzap »

Je t'envoie le document avec une structure correcte
Pièces jointes
Test n1.mq4
le document avec une structure correcte
(2.9 Kio) Téléchargé 270 fois
[url]http://www.algo-forex.fr[/url]: L'information utile pour gagner sur le Forex.
Performances de mon robot full auto : [b][url]http://www.algo-forex.fr/resultats-trading-forex/[/url][/b]

DouDou
Nouveau
Messages : 2
Inscription : 21 mai 2013, 21:10

Re: Probléme de commande EA

#4 Message par DouDou »

Ouki merci Tid c'est cool, encore merci a toi,
Bah y'a plus qu'a continué maintenant =)

Répondre