Discusión sobre el artículo "Guía paso a paso para escribir un Expert Advisor en MQL5 para principiantes" - página 17
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
He descargado el archivo y depurado el código, y mostró esta advertencia ¿alguien podría ayudarme con esto?
el valor de retorno de'OrderSend' debe ser comprobado
Hola, soy novato y también estoy probando el Robot
Prueba esto
// OrderSend(mrequest,mresult);
bool res=EnviarOrden(mrequest,mresult);
// obtener el código de resultado
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //Se ha completado la petición o se ha realizado el pedido
{
Alert("Se ha realizado con éxito una orden de compra con Ticket#:",mresult.order,"!!");
}
else
{
Alert("No se ha podido completar la solicitud de orden de compra -error:",GetLastError());
ResetLastError();
return;
}
Si me equivoco, ¡corrígeme!
Fuente de la investigación: https://www.mql5.com/en/forum/23663
Cuando estoy depurando, siempre me da error al enviar el pedido. Pensaba que era mi código, pero incluso cuando pruebo el archivo mql5 para descargarlo también me da error.
Cuando estoy depurando, siempre me da error al enviar el pedido. Pensaba que era mi código, pero incluso cuando pruebo el archivo mql5 para descargarlo también me da error.
Creo que el ejemplo está en divisas, por lo que la variable lot que es 0.1 no sirve para tu prueba, prueba a cambiarla así (cambiando la variable mrequest.volume):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // ejecución inmediata de la orden
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // último precio de venta
mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // par de divisas
mrequest.volume = minSymbolLot; // número de lotes a negociar
mrequest.magic = EA_Magic; // Número Mágico de la Orden
mrequest.type = ORDER_TYPE_BUY; // Orden de Compra
mrequest.type_filling = ORDER_FILLING_FOK; // Tipo de ejecución de la orden
mrequest.desviación=100;
¿Alguien sabe si puedo usar este EA para mini índices o mini dólares?
¿Ha entendido la estrategia? ¿Conoce los riesgos? ¿Has analizado los niveles de SL y TP? ¿Conoces los indicadores técnicos utilizados? ¿Sabe cómo parametrizarlos? ¿Sabe cómo personalizar las variables para cada activo (WIN y WDO)?
El código en sí está desarrollado para cualquier activo y puedes identificarlo a través del "_Símbolo" y para cualquier tiempo del gráfico "_Periodo".
Ahora es importante que sepas lo que estás haciendo cuando ejecutes el EA. Si decides hacerlo, te sugiero que sólo trabajes en cuentas demo hasta que domines la herramienta y tengas un mejor conocimiento del mercado de valores.
[ ]'s
Chicos,
Este es un simple código modificado rápido si usted tiene un error con múltiples órdenes de apertura al mismo tiempo.
Reemplace este código : de la línea 167 -177
con esto:
Gracias @Samuel Olowoyo
Aconseje cómo resolver el problema. El Asesor Experto abre varias posiciones seguidas para comprar, lo mismo para vender.
El Asesor Experto no ve que ya hay posiciones abiertas de Compra y Venta y abre nuevas, a pesar de que hay una comprobación en el código.
sobre las posiciones ya abiertas. La comprobación no funciona por alguna razón.
Como aquí no hay ayuda de los troll-moderadores, copiaré la respuesta del foro inglés:
Chicos, este es un simple código modificable rápido, si usted tiene un error con varias órdenes de apertura al mismo tiempo. Sustituir este código: de la línea 167 -177
con esto:
Ya que no puedo obtener ayuda de los troll-moderadores de aquí, copiaré la respuesta del foro inglés:
Chicos, este es un simple código modificable rápido si usted tiene un error con múltiples órdenes de apertura al mismo tiempo. Sustituir este código: de la línea 167 -177
con esto: