Criei um robo de cruzamento de médias, ao colocar para funcionar ele funciona apenas em um par . Eu opero forex nos pares EURUSD, USDJPY, USDCAD, AUDUSD e ele funciona apenas no USDCAD, Nas configurações ele está ativo negociçaões permitir notificações real, no metatrader esta ativado negociação automatizada e aparece em cada grafico o emoticon sorrindo que quer dizer que esta funcionando o robo, mas ele esta operando só um par, queria que funcionasse em todos pares que quiser. Alguem me ajude a configurar para que funcione em todos os pares , vou postar o codigo aqui, me ajudem.
I creatred a robot of crossing of means, when putting to work it works only in a pair. I trade forex in pairs EURUSD, USDJPY, USDCAD, AUDUSD and it works only in USDCAD. In the settings it is active trades allow notifications real, in the metatrader this actived automated trading and appears in each graph the smiley emoticon that means that it is working the robbery, but he's only operation on a pair, he wanted it to work every couple he wants. Someone help me configure it to work on all pairs. I'll post the code here , help me.
Criei um robo de cruzamento de médias, ao colocar para funcionar ele funciona apenas em um par . Eu opero forex nos pares EURUSD, USDJPY, USDCAD, AUDUSD e ele funciona apenas no USDCAD, Nas configurações ele está ativo negociçaões permitir notificações real, no metatrader esta ativado negociação automatizada e aparece em cada grafico o emoticon sorrindo que quer dizer que esta funcionando o robo, mas ele esta operando só um par, queria que funcionasse em todos pares que quiser. Alguem me ajude a configurar para que funcione em todos os pares , vou postar o codigo aqui, me ajudem.
Por favor utilize a caixa de edição de códigos quando quiser postar trechos de código aqui no fórum MQL5 !!!
Exemplo errado:
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
Exemplo correto:
for(int i=0;i<OrdersTotal();i++) { OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); if (OrderMagicNumber()==MagicNumber) result++; }
Abraços,
Malacarne
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Criei um robo de cruzamento de médias, ao colocar para funcionar ele funciona apenas em um par . Eu opero forex nos pares EURUSD, USDJPY, USDCAD, AUDUSD e ele funciona apenas no USDCAD, Nas configurações ele está ativo negociçaões permitir notificações real, no metatrader esta ativado negociação automatizada e aparece em cada grafico o emoticon sorrindo que quer dizer que esta funcionando o robo, mas ele esta operando só um par, queria que funcionasse em todos pares que quiser. Alguem me ajude a configurar para que funcione em todos os pares , vou postar o codigo aqui, me ajudem.
I creatred a robot of crossing of means, when putting to work it works only in a pair. I trade forex in pairs EURUSD, USDJPY, USDCAD, AUDUSD and it works only in USDCAD. In the settings it is active trades allow notifications real, in the metatrader this actived automated trading and appears in each graph the smiley emoticon that means that it is working the robbery, but he's only operation on a pair, he wanted it to work every couple he wants. Someone help me configure it to work on all pairs. I'll post the code here , help me.
extern int MagicNumber=10001;
extern double Lots =0.02;
extern double StopLoss=20;
extern double TakeProfit=0;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,1)<iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,1))&&(iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0)>iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,0))) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
if((iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,1)>iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,1))&&(iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0)<iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,0))) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if((iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,1)>iMA(NULL,0,72,0,MODE_EMA,PRICE_CLOSE,1))&&(iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0)<iMA(NULL,0,72,0,MODE_EMA,PRICE_CLOSE,0))) //here is your close buy rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if((iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,1)<iMA(NULL,0,72,0,MODE_EMA,PRICE_CLOSE,1))&&(iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0)>iMA(NULL,0,72,0,MODE_EMA,PRICE_CLOSE,0))) // here is your close sell rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);