Requiero ayuda para hacer funcionar un EA muy basicoHe tratado de hacer que funcione este EA pero no he podido, mis conocimientos son menos que básicos, solo quiero abra-cierre una orden con una misma señal, es decir si la señal es de venta abrimos venta y cerramos la compra, no he podido "enlazar" una primera estructura con la segunda, mil gracias por su ayuda, anexo el código, el comentario donde dice //Hay compra-venta según, lo que entiendo debe ser el enlace, gracias por su tiempo!
//+------------------------------------------------------------------+ //| MACD Sample.mq4 | //| Copyright 2005-2014, MetaQuotes Software Corp. | //| http://www.mql4.com | //+------------------------------------------------------------------+ #property copyright "2005-2014, MetaQuotes Software Corp." #property link "http://www.mql4.com" input double Lots =0.1; input double MagicNum =1234; double CrossUp[]; double CrossDown[]; extern int FasterMode = 1; //0=sma, 1=ema, 2=smma, 3=lwma extern int FasterMA = 1; extern int SlowerMode = 3; //0=sma, 1=ema, 2=smma, 3=lwma extern int SlowerMA = 2; int tiempo; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int limit, i, counter; double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter; double Range, AvgRange; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i = 0; i <= limit; i++) { counter=i; Range=0; AvgRange=0; for (counter=i ;counter<=i+9;counter++) { AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]); } Range=AvgRange/10; fasterMAnow = iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i); fasterMAprevious = iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i+1); fasterMAafter = iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i-1); slowerMAnow = iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_CLOSE, i); slowerMAprevious = iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_CLOSE, i+1); slowerMAafter = iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_CLOSE, i-1); if ((fasterMAnow > slowerMAnow) && (fasterMAprevious < slowerMAprevious) && (fasterMAafter > slowerMAafter)) { CrossUp[i] = Low[i] - Range*0.5; } else if ((fasterMAnow < slowerMAnow) && (fasterMAprevious > slowerMAprevious) && (fasterMAafter < slowerMAafter)) { CrossDown[i] = High[i] + Range*0.5; } if (i==1 && CrossUp[i] > CrossDown[i]){//hay venta } if (i==1 && CrossUp[i] < CrossDown[i]){//hay compra } } return(0); } void OnTick () { //--- //Buscar si hay operaciones abiertas, si si,buscar operacion contraria para cerrar //Si no buscar operacion para abrir int TicketOperar=EnOperacion(); // No hay trades abiertos, buscare uno if (TicketOperar==-1); { if(HayCompra())OrderSend(NULL,0,Lots,Ask,20,0,0,NULL,MagicNum,0,clrNONE); if(HayVenta())OrderSend(NULL,1,Lots,Bid,20,0,0,NULL,MagicNum,0,clrNONE); } //Ya tengo trade monitoreo salida if(TicketOperar>-1) { if(OrderSelect(TicketOperar,SELECT_BY_TICKET,MODE_TRADES)) { //Es una compra y necesito buscar una venta if(OrderType()==0 && HayVenta())OrderClose(TicketOperar,OrderLots(),OrderClosePrice(),20,clrNONE); //Es una venta y necesito buscar una compra if(OrderType()==0 && HayCompra())OrderClose(TicketOperar,OrderLots(),OrderClosePrice(),20,clrNONE); } } } //---- bool HayCompra() { if (//Hay Compra)return(true); else return(false); } bool HayVenta() { if (//Hay Venta)return(true); else return(false); } //----- int EnOperacion() { for(int o=0;o<OrdersTotal();o++ ) { if(OrderSelect(o,SELECT_BY_POS,MODE_TRADES)) { if(OrderMagicNumber()==MagicNum && OrderSymbol()==Symbol())return(OrderTicket()); } return(-1);//no encontre nada } }
Re: Requiero ayuda para hacer funcionar un EA muy basicoHola paco14065, revisando el código veo que hay errores de sintaxis en este bloque de código:
Revísalo y dime qué es lo que quieres hacer exactamente ahí. Saludos, FXWizard
Re: Requiero ayuda para hacer funcionar un EA muy basicoMil gracias por tomarte el tiempo de revisar mi código, exactamente esa parte que me señalas es donde quiero enlazar la primera parte de mi EA, es donde no puedo entrelazar para que funcione el código, de alguna forma lo deje así para quien quiera o pueda ayudarme, me diga como entrelazo la primera parte con la segunda, nuevamente te agradezco tu tiempo
Re: Requiero ayuda para hacer funcionar un EA muy basicoHola paco14065, casi es mejor que me digas qué es lo que quieres hacer en la estrategia y vemos cómo incorporarlo en tu plantilla. En todo caso donde pones HayCompra y HayVenta debes poner la condición que deseas verificar (por ejemplo Close > MovAvg(20)).
Saludos, FXWizard
Re: Requiero ayuda para hacer funcionar un EA muy basico
Hola paco no me puse a revisar cual es la condición de compra y venta, pero acomode para que cuando se de la condicion de compra, simplemente cierre la venta y haga Compra, luego, cuando se de la condicion de venta, cierre la compra, y haga la venta. insisto, no revise la condicion que genera las compras o ventas, solo el cierre de una y la consecución de la otra,,,,,,,igual es para que te des una idea
No puedes cometer/ dos veces el mismo error/ la segunda vez sera/ Por eleccion...
Re: Requiero ayuda para hacer funcionar un EA muy basicoMuchas gracias lo revisare nuevamente, soy nuevo en el foro me podrían indicar como doy por cerrado el tema? gracias por su tiempo
Re: Requiero ayuda para hacer funcionar un EA muy basicoHola paco14065, sería de agradecer que a cambio de la ayuda recibida compartieras el EA definitivo en el Foro
Saludos, FXWizard
Re: Requiero ayuda para hacer funcionar un EA muy basicocon todo gusto pero no tengo el producto terminado, lo que esta en este foro es todo lo que tengo, y claro que soy agradecido pero si no tengo producto final que les ofrezco?, no supe como concretar la idea para que me ayudaran, así que no puedo avanzar y el EA tendría que haber calculo los cruces de las medias que están en la primera parte y simplemente cerraba y abría operaciones en los cruces, era todo lo que quería hacer, lo que esta en el foro es todo lo que tengo, créeme no me robo idea de nadie porque el EA sigue haciendo lo mismo que cuando llegue a pedir ayuda, es decir nada.
9 mensajes
• Página 1 de 2 • 1, 2
|
|
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado