forexeadvisor cierre velas

Foro para cuestiones generales sobre la plataforma MetaTrader 4.

Re: forexeadvisor cierre velas

Notapor piscinausu » 02 Sep 2016, 19:14

muchas gracias por vuestro tiempo, he copiado los datos que me has aportado en la metratader, modificar asesor experto, y no funciona, no se si he echo lo correcto, o hay que hacerlo de manera diferente,por otra parte ¿ es posible que el generador de forexeadvisor no contemple esta opción tan sencilla como que una operación se cierre al finalizar la vela que esta operando?
muchas gracias
piscinausu
 
Mensajes: 14
Registrado: 12 Jul 2013, 19:14
Karma: 0

Re: forexeadvisor cierre velas

Notapor BartRoberts » 02 Sep 2016, 19:30

abre el editor de mt4, haz como si fueras a hacer un nuevo ea desde el principio, borra todo y agregas el codigo que te dieron
I'm the operator with my pocket indicator

Imagen
Avatar de Usuario
BartRoberts
 
Mensajes: 1229
Registrado: 07 Oct 2012, 08:06
Ubicación: Tortuga
Karma: 27

Re: forexeadvisor cierre velas

Notapor Xakalin » 03 Sep 2016, 00:54

perdona piscinasu, daba 2 errores en un fallo de los if, como te comenté no tenía editor ni compilador para ver si funcionaba... prueba con este!

Código: Seleccionar todo
extern int MagicNumber=10018;
extern double Lots =0.1;
extern double StopLoss=0;
extern double TakeProfit=0;
extern int TrailingStop=0;
extern int Slippage=3;
double newBar;
//+------------------------------------------------------------------+
// 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((Low[0]<iMA(NULL,0,2,0,MODE_EMA,PRICE_LOW,0))&&(High[0]<iMA(NULL,0,2,0,MODE_EMA,PRICE_HIGH,0))) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator http://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((High[0]>iMA(NULL,0,2,0,MODE_EMA,PRICE_HIGH,0))&&(Low[0]>iMA(NULL,0,2,0,MODE_EMA,PRICE_LOW,0))) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator http://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((High[0]>iMA(NULL,0,2,0,MODE_EMA,PRICE_HIGH,0))) //here is your close buy rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}else if (NewBar()){
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((Low[0]<iMA(NULL,0,2,0,MODE_EMA,PRICE_LOW,0))) // here is your close sell rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}else if (NewBar()){
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);
}

bool NewBar()
{
if (Time[0] != newBar){
newBar = Time[0];
return true;
}
return false;
}


un saludo!
Imagen
Avatar de Usuario
Xakalin
 
Mensajes: 291
Registrado: 05 Jul 2016, 17:57
Karma: 4

Re: forexeadvisor cierre velas

Notapor piscinausu » 06 Sep 2016, 18:06

muchas gracias a todos funciona perfecto, no entiendo el porque el generador de ea de forexeadvisor no tiene ninguna opción que te permita cerrar cualquier operación abierta al cierre de la vela, si el condicionate de cierre no se cumple, alguien sabe de algún otro generador de ea que lo permita?
gracias
piscinausu
 
Mensajes: 14
Registrado: 12 Jul 2013, 19:14
Karma: 0

Anterior

Volver a MetaTrader 4

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados