Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 96
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
¡Hola!
Por favor, ayúdame a escribir un EA.
La esencia del Asesor Experto: abre 4 órdenes de 1 lote.
2 para vender: usdchf; eurusd;
2 para comprar: gbpusd; usdjpy;
Al alcanzar un beneficio total de 5 pips, cierre todas las operaciones. Y empezar de nuevo.
¿4 lotes en total?
¿Y si no hay beneficios?
¡Hola!
Por favor, ayúdame a escribir un EA.
La esencia del Asesor Experto: abre 4 órdenes de 1 lote.
2 para vender: usdchf; eurusd;
2 para comprar: gbpusd; usdjpy;
Al alcanzar un beneficio total de 5 pips, cierre todas las operaciones. Y empezar de nuevo.
No es necesario duplicar su pregunta en diferentes hilos.
Póngase en contacto con Freelance.
Saludos.
¿Puedes decirme cómo escribir la condición para que la acción se ejecute en la apertura de una nueva vela en el gráfico actual?
¡Hola! ¡Ayúdame a entender las matrices!
Necesito llenar un array con el indicador MASD. Según entiendo, hay datos: índice de la barra, valor deMODE_MAIN, valor deMODE_SIGNAL, es decir, el array debe ser de tipo tridimensional ( a [] [] []), ¿o qué? Si puede dar un ejemplo.
https://www.mql5.com/ru/articles/159
Sergey, ¿has utilizado alguna vez este código?
El artículo es bueno en general, pero es
muy peligroso. Para que funcione, hay que, como recomienda el baterista, "sacudir" el historial periódicamente. No he especificado en qué lugar.
En general, después de mucho sufrimiento, he llegado a la conclusión de que es mejor utilizar la función CopyRates()
Los mensajes sobre posibles errores los rellenamos cada uno si queremos.
{
static datetime timeLastBar;
MqlRates mqlRates[];
int s = 0;
do
{
s++;
}
while(CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, mqlRates) < 0 && s < 7);
bool ret = timeLastBar != mqlRates[0].time;
if(ret)
timeLastBar = mqlRates[0].time;
return(ret);
}/*******************************************************************/
Sergey, ¿has utilizado alguna vez este código?
El artículo es bueno en general, pero es
muy peligroso. Para que funcione, hay que, como recomienda el baterista, "sacudir" el historial periódicamente. No se especificó el lugar.
Alexey, dime, ¿cuándo te has encontrado con errores al utilizarlo? ¿Has tenido alguna vez uno?
Yo mismo utilizo este método y no he tenido problemas. Bueno, tal vez todavía tenga que hacerlo.
Me gustaría recibir algunas explicaciones, por así decirlo... :)
¿Dónde dijo eso el baterista?
Alexei, dime, ¿cuándo te has encontrado con errores con este uso? ¿Lo has hecho alguna vez?
Porque yo mismo utilizo este método y todavía no me he encontrado con ningún problema. Bueno, tal vez todavía tenga que hacerlo.
Me gustaría recibir algunas explicaciones, por así decirlo... :)
¿Dónde ha dicho drubashka tal cosa?
https://www.mql5.com/ru/forum/89213
Hay ocho páginas de discusiones. Y no sólo drubashka, sino que Slawa dice que
¿Dónde ve usted un comportamiento inadecuado de esta función? ¿Has leído bien la documentación?
Devuelve información sobre el estado de los datos históricos. No actualiza la información, no inicia el intercambio de datos. Sólo devuelve lo que hay en este momento.
Alexei, dime, ¿cuándo te has encontrado con errores con este uso? ¿Lo has hecho alguna vez?
Porque yo mismo utilizo este método y todavía no me he encontrado con ningún problema. Bueno, tal vez todavía tenga que hacerlo.
Me gustaría recibir algunas explicaciones, por así decirlo... :)
¿Dónde dijo eso el baterista?
Y aquí está el tic-tac.
No funcionó en un símbolo en un terminal (en el marco temporal M15) - Estoy 99% seguro de que el problema es que el uso de otro marco de tiempo que necesito para "tirar" la historia todo el tiempo. Creo que es mejor hacerlo a través de CopyTime().
Alexei, dime, ¿cuándo te has encontrado con errores con este uso? ¿Lo has hecho alguna vez?
Por ejemplo, en el terminal MT5 hay algunos Asesores Expertos (Muestra MACD y Promedios Móviles), pero si se quiere cambiar el manejador del indicador en el código de estos Asesores Expertos y poner un TF específico, por ejemplo PERIOD_H4, en lugar de "_Period", entonces en las pruebas por los precios de apertura del TF más alto, se produce el siguiente error de carga del indicador: no se puede cargar el indicador 'MACD' [4805] y como resultado: el probador se detuvo porque OnInit falló. ¿Cuál es su opinión? ¿Quizás estoy haciendo algo mal? ¿Es posible codificar el Asesor Experto para que sea probado para los precios abiertos de cualquier TF?
He intentado utilizar el indicador como uno personalizado, el error es el mismo.
Gracias de antemano por sus comentarios.
int OnInit(void)
{
//--- preparar la clase de comercio para controlar las posiciones si el modo de cobertura está activo
ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
ExtTrade.SetExpertMagicNumber(MA_MAGIC);
ExtTrade.SetMarginMode();
//--- Indicador de media móvil
ExtHandle=iMA(_Símbolo,PERIOD_H4,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
if(ExtHandle==INVALID_HANDLE)
{
printf("Error al crear el indicador MA");
return(INIT_FAILED);
}
//--- ok
return(INIT_SUCCEED);
}