ayuda para mi primer eaLo que estoy intentando hacer es un ea que haga lo siguiente:
En velas de 1 minuto Tomar como dato el precio inicial de la vela si supera los x pip lanzar una compra o venta según si suba o baje con tp y st previstos. Quisiera que esto lo realice a cada minuto exacto tomando el minuto justo en el inicio de una vela. Agradecería la ayuda ya que soy muy nuevo en esto
Re: ayuda para mi primer eaHola ulpi10 bienvenido!!! Te ayudo solo con lo único que sé… Para empezar a realizar tu EA tenes que arrancar llamando al Open de la vela actual, si trabajas en time frame de un minuto es lo mismo si pones tu EA una vez realizado en 30M o en 1H etc… pero creo entender que es lo que queres… prefieres trabajar en 1M para entrar cuando te cruzas con un velón y comprar o vender, no? el dato Open te da el precio en que abre la vela, o sea que ya tenes de donde arrancar, tenes que programarlo para trabajar siempre con vela cero y de ahí, si suma X pips comprar o si resta X pips vender. La vela se empieza a dibujar recién cuando hace un tick, no cuando es el minuto exacto… o sea que si no realiza ningún tick por un tiempito todavía estarías viendo la vela vieja. Saludos.
Re: ayuda para mi primer eaGracias es un buen dato. Lo estoy haciendo de a poco. La idea es esa pero que el tiempo de 1 minuto se tome como regla para reiniciar el contador de pip.
Re: ayuda para mi primer eaSería algo similar como esto:
If(MathAbs(Open[1]-Close[1])> número pips){ If (Open[1]<Close[1]) Haces compra else Haces venta Algo así. Un saludo Enviado desde mi iPhone utilizando Tapatalk
Re: ayuda para mi primer eaGracias cuando lo tenga mas o menos lo subo por ahí me corrigen y ayudo a alguien que busque esto.
Re: ayuda para mi primer eaextern int MagicNumber=10001;
extern double Lots =0.1; extern double StopLoss=3; extern double TakeProfit=6; extern int TrailingStop=3; extern int Slippage=3; 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((MathAbs(Open[1]-Close[1])>5)) // Here is your open buy rule { result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"order",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); } else { result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"order",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(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(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); } NO SE SI HACE LO QUE QUIERO. AYUDA
6 mensajes
• Página 1 de 1
|
|
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado