Convertir EAs mql4 a mql5Me interesa pasar un EA de mql4 a mql5, con el fin de acelerar la optimización.
Según lei permiten utilizar todos los nucleos y la nube con lo cual se aumenta la rapidez en cientos de veces. Busque convertidores y encontré algún EA, algún script (incluido el que postearon en x-trader), y algún exe con virus. ni uno pudo realizar la conversión, convierten solo extern a input, y algunas cosillas mas, no reconocen Digits, ni las ordenes de apertura, modificación, etc, además de alguno de ellos devolver en formato HTML completamente desalineado y con codigos externos que no son parte del programa, y después de la perdida de tiempo alineándolo para que solo me de errores, me canse y decidi escribirles, tal vez alguno tuvo suerte con un convertidor mas reciente. Adjunto el EA base, si alguien me da una manito le estare muy agradecido. Saludos
Re: Convertir EAs mql4 a mql5Gracias,
El EA es solo una parte de una estrategia, optimizarla tal como esta, no nos dara mucho, solo deje lo básico para facilitar su escritura en mql5. Puede servirles para el inicio de un EA. Se trata de una estrategia básica asiática que compra cuando toca la parte inferior de las BB y vende en la parte superior de las BB, solo cuando las BB tienen un ancho que depende del par y el precio toca a una distancia de ella. En la versión que les pase usa prácticamente cierra solo cuando toca su tp o sl, moviendo el stop cuando a asegurado un minimo de ganancia equivalente al sl. adjunto imagen de bt para audusd pero solo considerando las horas desde 22 a 0 gmt. deben cambiar el código if( !(Hour()== 22 || Hour()==23 || Hour()==0 ) ) return; comprenderán que este ea no debe entrar a real, sin varios cambios, por ejem considerar el offset de los brokers, hacer parámetros las horas, agregarle algún filtro de entrada, mejorar la salida por condiciones, etc. saludos
Re: Convertir EAs mql4 a mql5como no se ofrecieron a convertirlo, tuve que meter las manos, postergando otras cosas.
Use esto https://www.mql5.com/es/articles/100 y esto https://www.mql5.com/en/docs/trading/ordersend y esto https://www.mql5.com/es/articles/81 además de la documentación oficial. Saludos y gracias PD: aun me queda la duda como actualizar los históricos en mt5, no vi opción, solo veo que descarga del bróker que son incompletos y malísimos.
Re: Convertir EAs mql4 a mql5adjunto la versión mql5 sin errores, pero aun me salen advertencias, no funciona, sospecho que falla en OrdersTotal() y alguna otra cosa.
Agradeceria si alguien que conozca mql5 le heche un vistazo. El BT de la imagen anterior es de 1m, solo precios de apertura y desde el 2001. La verdad es bastante pesado escribir código en mql5, supongo que se gana cuando los experts son mas complejos. Saludos y gracias de antemano.
Re: Convertir EAs mql4 a mql5Ya me abre trades, el problema era el spread que esta en points, pero no hace lo que quiero, creo que el problema es en el registro de posiciones... al mt5 las suma, a menos que uno las gestiones con PositionsTotal() y similares
https://www.mql5.com/es/articles/2299 yo abro solo una posición en una dirección a la vez... mmm que complicado lo ponen. Ademas me genera un monton de dudas 1) donde descargo el historial, no esta en el menu, x el momento lo trae automaticamente del bróker de la demo, yo quiero un historial descargado de otro lado y mas fiable. 2) no hay script convertidor de periodos, ni abrir graficos sin conexión. 3) como puedo indicarle el spread que quiero usar? usa el de bróker con historial ya dije incompleto la verdad tenemos que aprender de nuevo, que trabajito...
Re: Convertir EAs mql4 a mql5¿alguien que me de una mano?
no me funciona el OrdersTotal() siempre arroja 0. Sospecho que no abre ordenes sino las acumulan en una posicion. Yo quiero manejar ordenes y que existan al mismo tiempo buy y sell Aca mi código de como abro la orden. Espero me puedan ayudar. void OpenOrderAtMarket(double argLotSize, ENUM_ORDER_TYPE argDirection, int argMagicNumber, string comentario, int argSLpips, int argPTpips) { double StopLoss, TakeProfit; MqlTick latest_price; if( !SymbolInfoTick(_Symbol,latest_price) ) { Alert("Error getting the latest price quote - error:",GetLastError(),"!!"); return; } MqlTradeRequest request={0}; MqlTradeResult result={0}; double price; if (argDirection == ORDER_TYPE_BUY) StopLoss = NormalizeDouble(latest_price.bid - argSLpips * _Point, _Digits); if (argDirection == ORDER_TYPE_BUY) TakeProfit = NormalizeDouble(latest_price.bid + argPTpips * _Point, _Digits); if (argDirection == ORDER_TYPE_SELL) StopLoss = NormalizeDouble(latest_price.ask + argSLpips * _Point, _Digits); if (argDirection == ORDER_TYPE_SELL) TakeProfit = NormalizeDouble(latest_price.ask - argPTpips * _Point, _Digits); if (argDirection == ORDER_TYPE_BUY ) price = NormalizeDouble(latest_price.bid, _Digits); if (argDirection == ORDER_TYPE_SELL) price = NormalizeDouble(latest_price.ask, _Digits); request.action = TRADE_ACTION_DEAL; // tipo de operación comercial //request.order = order_ticket; // ticket de la orden request.price = request.volume = GetLotSize(Lots, RiskPct); request.type = argDirection; request.sl = StopLoss; request.tp = TakeProfit; request.symbol = Symbol(); // símbolo request.deviation = SlippagePips; // desviación permisible del precio request.magic = nMagic; request.type_filling=ORDER_FILLING_FOK; //--- envío de la solicitud if(!OrderSend(request,result)) PrintFormat("*******************************OrderSend error %d",GetLastError()); // si no se ha logrado enviar la solicitud, mostrar el código de error //--- información sobre la operación // PrintFormat("------------------------------------- retcode=%u deal=%I64u order=%I64u", result.retcode, result.deal, result.order); //--- reseteo de los valores de la solicitud y el resultado ZeroMemory(request); ZeroMemory(result); }
Re: Convertir EAs mql4 a mql5A lo mejor me equivoco (no he trasteado mucho con MQL 5) pero lo que te marco en rojo, ¿no es incorrecto?
Saludos, FXWizard
9 mensajes
• Página 1 de 2 • 1, 2
|
|
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados