Bonjour,
voulant faire un EA cumulant 2 indicateurs ,sur la moyenne mobile,j'ai essayer de la modifier pour eviter le take profit ou le stop loss puisque c'est le franchissement qui stop et voulant cumulant bband qu j'ai fait sous etasoft forex generator 4 mais le programme en free ne delivre pas le code source mais j'ai reussi à avoir quand meme un bout de programme.
si quelque avait le logiciels pour avoir le bon code ça serait super;et me dire d'ou vient l'erreur et comment cumuler les 2 surement par "if else" je suis novice en programmation mais je m'accroche.
Merci!
<pour la moyenne mobile sur la fin pose probleme
voulant faire un EA cumulant 2 indicateurs ,sur la moyenne mobile,j'ai essayer de la modifier pour eviter le take profit ou le stop loss puisque c'est le franchissement qui stop et voulant cumulant bband qu j'ai fait sous etasoft forex generator 4 mais le programme en free ne delivre pas le code source mais j'ai reussi à avoir quand meme un bout de programme.
si quelque avait le logiciels pour avoir le bon code ça serait super;et me dire d'ou vient l'erreur et comment cumuler les 2 surement par "if else" je suis novice en programmation mais je m'accroche.
Merci!
<pour la moyenne mobile sur la fin pose probleme
Code
//+------------------------------------------------------------------+
//| MACross.mq4 |
//| Copyright © 2010, Babs Assoc. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Babs Assoc."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| External Parameters |
//+------------------------------------------------------------------+
extern int MagicNumber = 9876;
extern double Lot = 0.02;
//+------------------------------------------------------------------+
//| Global Variable |
//+------------------------------------------------------------------+
int OpenedOrder; // 1=Buy , 2=Sell
double MyPoint;
int NbBars;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
OpenedOrder=FALSE;
NbBars=0;
if (Digits == 5 || Digits == 3) MyPoint = Point*10;
else MyPoint= Point;
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double ema8, ema8Prev;
double ema24, ema24Prev;
//Acquisition des indicateurs
ema8=iMA(NULL, 0, 8, 0, MODE_SMMA, PRICE_MEDIAN, 0);
ema8Prev=iMA(NULL, 0, 8, 0, MODE_SMMA, PRICE_MEDIAN, 1);
ema24=iMA(NULL, 0, 24, 0, MODE_SMMA, PRICE_MEDIAN, 0);
ema24Prev=iMA(NULL, 0, 24, 0, MODE_SMMA, PRICE_MEDIAN, 1);
//Verification des trades ouverts
CheckTrade();
//Logique
if(isNewBar())
{
if(ema8>ema24 && ema8Prev<ema24Prev && (OpenedOrder==2 || OpenedOrder==0)) //Croisement à la hausse
{
CloseTrade();
OpenBuy();
}
if(ema8<ema24 && ema8Prev>ema24Prev && (OpenedOrder==1 || OpenedOrder==0)) // Croisement à la baisse
{
CloseTrade();
OpenSell();
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert Close Buy/Sell order function |
//+------------------------------------------------------------------+
void CloseTrade()
{
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
if (OrderMagicNumber() == MagicNumber && Symbol()==OrderSymbol()) {
switch(type)
{
//Fermeture des positions d’achat
case OP_BUY : OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(),MarketInfo(OrderSymbol(), MODE_BID), Red );
break;
// Fermeture des positions de vente
case OP_SELL : OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(),MarketInfo(OrderSymbol(), MODE_ASK), Red );
break;
}
}
}
}
//+------------------------------------------------------------------+
//| expert Open Buy order function |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Check order function |
//+------------------------------------------------------------------+
void CheckTrade() {
OpenedOrder=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol())
{
switch(type)
{
case OP_BUY : OpenedOrder=1;
break;
case OP_SELL : OpenedOrder=2;
break;
}
}
}
}
//+------------------------------------------------------------------+
return(0);
} //start()
//+------------------------------------------------------------------+
Modifié le 2013-05-23 17:54:03 par
AliX