Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1209

 
Oleg:

Colegas, por favor, avisen por qué el sonido deja de sonar cuando el volumen de la vela es el deseado.

El archivo de sonido está en la carpeta SOUNDS, cuando pongo la alerta el archivo se reproduce normalmente, pero no hay sonido en el indicador.

¿O necesita una carpeta especial con sonidos para los indicadores?


¡/---- El bucle principal de cálculo del indicador

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
Range=(high[bar]-low[bar])/_Point;
IndBuffer[bar]=Rango;

if(Rango<5)
{
if (prev_calculated > 0 && Flag==0)
{
Flag=1;
}
}
if(Range>=Threshold){
clr=0;
if (prev_calculated > 0 && Flag==1 )
{
Flag=0;

PlaySound("zummer");


}
}

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
  Range=(high[bar]-low[bar])/_Point;
  IndBuffer[bar]=Range;

  if(Range<5)
  {
    if (prev_calculated > 0 && Flag==0)
    {
      Flag=1;
    }
  }

  if(Range>=Threshold) {
    clr=0;
    if (prev_calculated > 0 && Flag==1 )
    {
      Flag=0;
      ResetLastError();
      PlaySound("zummer");
      Print(__FUNCTION__, " Error #", GetLastError());
    }
  }
}



Y publica aquí el error que da.

 
Иван:
Hola. Pregunta: ¿Cómo calcula el probador los resultados de las posiciones cerradas en MT4 cuando se trabaja con cruces (pares sin $) en el probador, si la cuenta donde se hace la prueba es una cuenta en dólares? Para el recálculo de los totales de las posiciones en dólares, ¿el comprobador toma el tipo de cambio de la moneda base del cruce con el dólar en el momento actual o en el momento del intervalo comprobado? Tengo la firme sospecha de que lo es en la actualidad. Si es así, ¿no es posible hacer que cuente en el momento del intervalo?

Taras Slobodyanik:

Lee el MODE_TICKVALUE para cada tick en sí.

Bueno, digamos que sí cuenta. Pero, ¿cómo se puede "pedir" al probador que muestre en la tabla de resultados el valor que he calculado, en lugar de su cálculo curvo?
 
Mihail Matkovskij:

Observe atentamente el ejemplohttps://www.mql5.com/ru/forum/160683/page1208#comment_17279150 . ¿No encuentras nada allí...?

Esta es la función:

Deberías tener un poco más de cuidado.

Tal vez no nos entendimos, o tal vez no expresé mi pregunta con precisión, pero.... miré cuidadosamente la lista de todas las funciones en la Referencia MQL4 y en la Referencia MQL5

No he encontrado la función

searshValue(double & array2D[2][], const int _len, const int _index, const double _value)

No he encontrado ninguna. He mirado el ejemplo en su enlace. He visto el código con función desconocida. Pero no he encontrado la respuesta a mi pregunta: de qué idioma proviene esta función. Si estuviera en MQL4 yMQL5, creo que estaría en la lista de funciones en sus directorios.

Y entonces asumí que era una función personalizada. Pero el artículo de Kovalev dice que los cálculos de la función personalizada se realizan fuera de los límites inferiores de start()
. Y también he leído que al escribir el código en MT se pueden utilizar funciones de otros lenguajes, no sólo de MQL4 y MQL5 .

Las variables con identificadores CONST aparecen como parámetros de esta función . Nunca los he encontrado enMQL4 y también me confundió.
Sé que tus conocimientos de programación son muchos órdenes de magnitud diferentes a los míos. Sólo estoy al principio de la comprensión. Les pido que no me juzguen estrictamente y que sean indulgentes conmigo si voy a ser absurdo y a hacer preguntas tontas. Les agradeceré que me envíen algunos enlaces con la información que necesito, o que me digan dónde leer.

Una cosa más.... He creado un nuevo EA, he copiado el primer código que me enviaste, he compilado el código sin errores. No hice ningún cambio en él ... Me sorprendió mucho que la función Print() no estuviera en el libro mayor después de ejecutar el EA en el probador. Aunque se ha ejecutado muchas veces en nuestro EA.
Gracias de nuevo por el apoyo informativo y la valiosa información.

 
ANDREY:

Tal vez no nos entendimos, o tal vez no formulé la pregunta con precisión, pero.... miré cuidadosamente la lista de todas las funciones en el Manual.. .

Andrey, no creas que te estoy juzgando con dureza. Si no entiendes de dónde viene una función, haz clic con el botón derecho del ratón sobre ella y selecciona "Mover a la definición Alt+G". Y no te avergüences si no sabes algo. Es normal.

Cómo aprender a programar. Para ello, hay que responder a la pregunta: ¿para qué sirve? Si es para crear robots de trading y programas de análisis técnico, sólo hay ejemplos, lecciones y artículos relevantes en MQL. Tal vez incluso libros. Sin embargo, cuandome familiaricé con MQL, lo aprendí bastante bien, así que no he leído ningún libro, sólo he leído la documentación. Te aconsejo que primero entiendas qué es el programa. Para ello, comience por estudiar el modelo de eventos MQL: https://docs.mql4.com/ru/basis/function/events . Este es un modelo básico. Si lo dominas, puedes seguir adelante sin problemas. Tal vez esto te ayude: Getting Started with MQL5: Writing a Simple Expert Advisor and Indicator(he utilizado el buscador). Más información:los fundamentos de la lengua. En particular:Llamada a la función yPaso de parámetros(donde tiene dudas). Si tienes dudas durante el estudio (y las tendrás), puedes utilizar la búsqueda en Google o en YouTube. O bien, hacer preguntas aquí.Lo ideal sería aprender C++. Si buscas en Google algo sobre sintaxis, también puedes añadir "C++".

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Mihail Matkovskij:

Andrei, no creas que te estoy juzgando duramente. Si no entiendes de dónde viene tal o cual función, haz clic con el botón derecho del ratón y selecciona "Ir a la definición Alt+G". Y no te avergüences si no sabes algo. Es normal.

Cómo aprender a programar. Para ello, hay que responder a la pregunta: ¿para qué sirve? Si es para crear robots de trading y programas de análisis técnico, sólo hay ejemplos, lecciones y artículos relevantes en MQL. Tal vez incluso libros. Sin embargo, cuando me he familiarizadocon MQL, lo he aprendido bastante bien, así que no he leído ningún libro, sólo he leído la documentación. Te aconsejo que primero entiendas qué es el programa. Para ello, comience por estudiar el modelo de eventos MQL: https://docs.mql4.com/ru/basis/function/events . Este es un modelo básico. Si lo dominas, puedes seguir adelante sin problemas. Tal vez esto te ayude: Getting Started with MQL5: Writing a Simple Expert Advisor and Indicator(he utilizado el buscador). Más información:los fundamentos de la lengua. En particular:Llamada a la función yPaso de parámetros(donde tiene dudas). Si tienes dudas durante el estudio (y las tendrás), puedes utilizar la búsqueda en Google o en YouTube. O bien, hacer preguntas aquí.Lo ideal sería aprender C++. Si buscas en Google algo sobre sintaxis, no dudes en añadir también "C++".

Gracias por los consejos y sugerencias. Todo empezó para mí cuando hice un curso gratuito de forex en Teletrade, en Moscú, hace algunos años, por no tener nada que hacer y por el deseo de poner mi dinero libre en algún sitio. Pero después de completar el curso, inmediatamente me hice a la idea de que operar al azar es una pérdida de dinero garantizada... incluso a pesar de las victorias ocasionales. Por eso tomé la firme decisión de no apostar con mi propio dinero hasta tener un sistema, y antes de graduarme ni siquiera tenía un PC. No soy un matemático. Desde que me compré un ordenador y tengo MT4 en curso, no puedo separarme del ordenador y de MT4 hasta este momento. Me observo a mí mismo y no puedo entender de dónde viene este deseo irresistible e irracional. No creo que sea sólo por el dinero. Me parece bien el dinero. No trabajo y tengo todo mi tiempo libre. Y necesito algo que lo ocupe para que no se alargue demasiado. Me he dado cuenta de que cuando estudio Forex y programación el tiempo vuela rápidamente y de forma imperceptible, por lo que, después de terminar el curso, tardé mucho tiempo en dominar el ordenador y, simultáneamente, estuve mirando gráficos en MT e intentando entender cómo y por qué el precio se mueve en una u otra dirección. Se puede decir que la carta me fascinó y me encantó y creó una fuerte posición dominante en mi cerebro. A medida que avanzaba en mis conocimientos de informática, Internet y el mercado de divisas, me enteré de la existencia del comercio algorítmico y decidí leer sobre él. Y también me atrajo hasta el punto de que incluso aprendí un poco de codificación gracias al tutorial de Kovalev. Cuanto más entendía el material del libro y trataba de aplicarlo al codificar, más pensamientos diferentes me venían, que trataba de codificar. Pero hace unos meses bastante inesperado y accidentalmente vi un patrón, que aparece muy claramente en los pares EUR-USD y FUNT-DOLLAR. He conseguido codificar este patrón. Y el Asesor Experto con este código en el probador ha estado dibujando un gráfico de balance en el probador desde 2008, que se mueve constantemente hacia arriba con drawdowns aceptables. Esto fue un impulso adicional y poderoso para que me entusiasmara más el estudio de la programación de MQL4. De momento no lo domino lo suficiente como para empezar a estudiar MQL5.

Gracias de nuevo por los enlaces y por sus comentarios.

Este es un cuadro de equilibrio

Tengo algunas ideas para que este gráfico sea más óptimo. Pero aún no tengo suficiente experiencia para codificarlos todos.

 
ANDREY:

Cuando aprendas MQL4 y pases a MQL5, te atraerá aún más... :)

 
Mihail Matkovskij:

Cuando aprendas MQL4 y pases a MQL5, te arrastrará aún más... :)

Vamos a ver lo rápido que pasa...

 
Mihail Matkovskij:

Si no entiendes de dónde viene una función, haz clic con el botón derecho del ratón sobre ella y selecciona "Ir a la definición Alt+G". Y no te avergüences si no sabes algo. Eso está bien.

Es un elemento valioso del menú para mí. Y me alegré mucho de conocerlo y de su funcionalidad a través de ti. Pero por alguna razón no me funciona. He probado diferentes opciones.

Pasando el cursor por encima de la función (en su lugar antes del paréntesis) y haciendo clic con el botón derecho. El menú contextual "Goto Alt+G" está activo. Hago clic en él pero no pasa nada. Si pulso Alt+G en inglés y en mayúsculas, no pasa nada.

Creo que debería ser lanzado en la Ayuda, o más bien en el lugar donde se describe la función con el botón derecho del ratón.
Tengo MT-4 build 1260
He leído la ayuda del MetaEditor, pero no he encontrado nada sobre esta función. Y este artículo es muy valioso para mí. ¿Tal vez faltan algunos ajustes en el MetaEditor?
Le agradecería que compartiera su opinión sobre por qué no me funciona este artículo.

Esta es la barra de herramientas de mi MetaEditor. Muchos de los botones no están activos. ¿Podría tratarse de uno de estos botones?


 
ANDREY:

Gracias por los consejos y sugerencias. En mi caso, todo empezó cuando hice un curso gratuito de forex en Teletrade, en Moscú, hace unos años, por no tener nada que hacer y por el deseo de poner mi dinero libre en algún sitio. Pero después de completar el curso, inmediatamente me hice a la idea de que operar al azar es una pérdida de dinero garantizada... incluso a pesar de las victorias ocasionales. Por eso tomé la firme decisión de no apostar con mi propio dinero hasta tener un sistema, y antes de graduarme ni siquiera tenía un PC. No soy un matemático. Desde que me compré un ordenador y me hice con MT4, no puedo separarme del ordenador y de MT4 hasta este momento. Me observo a mí mismo y no puedo entender de dónde viene este deseo irresistible e irracional. No creo que sea sólo por el dinero. Me parece bien el dinero. No trabajo y tengo todo mi tiempo libre. Y necesito algo que lo ocupe para que no se alargue demasiado. Me he dado cuenta de que cuando estudio Forex y programación el tiempo vuela rápidamente y de forma imperceptible, por lo que, después de terminar el curso, tardé mucho tiempo en dominar el ordenador y, simultáneamente, estuve mirando gráficos en MT e intentando entender cómo y por qué el precio se mueve en una u otra dirección. Se puede decir que la carta me fascinó y me encantó y creó una fuerte posición dominante en mi cerebro. A medida que avanzaba en mis conocimientos de informática, Internet y el mercado de divisas, me enteré de la existencia del comercio algorítmico y decidí leer sobre él. Y también me atrajo hasta el punto de que incluso aprendí un poco de codificación gracias al tutorial de Kovalev. Cuanto más entendía el material del libro y trataba de aplicarlo al codificar, más pensamientos diferentes me venían, que trataba de codificar. Pero hace unos meses bastante inesperado y accidentalmente vi un patrón, que aparece muy claramente en los pares EUR-USD y FUNT-DOLLAR. He conseguido codificar este patrón. Y el Asesor Experto con este código en el probador ha estado dibujando un gráfico de balance en el probador desde 2008, que se mueve constantemente hacia arriba con drawdowns aceptables. Esto fue un impulso adicional y poderoso para que me entusiasmara más el estudio de la programación de MQL4. De momento no lo domino lo suficiente como para empezar a estudiar MQL5.

Gracias de nuevo por los enlaces y por ponerme en el camino correcto.

Este es un cuadro de equilibrio

Tengo algunas ideas para que este gráfico sea más óptimo. Pero aún me falta experiencia para codificar esas ideas.

Lo más importante para un programador es ser capaz de plantear una tarea y encontrar la forma de resolverla. Y esto define una mentalidad matemática. Si puedes cambiar tu mentalidad, si Dios quiere.

Y si estás tratando de escribir en mql4, siempre estarás mirando la documentación de mql5 para encontrar similitudes en los lenguajes, entonces considera que habiendo tratado con mql4 ya has tratado con mql5. Las lenguas son tan parecidas que es más fácil enumerar las diferencias que las similitudes.

El libro de texto de Kovalev se escribió hace tanto tiempo que, en la mayoría de los casos, antes de escribir algo, es necesario encontrar métodos modernos, aunque los utilizados en los ejemplos del libro de texto funcionen durante algún tiempo.

Este artículo puede ayudar mucho, no sólo para cambiar a mql5, sino también para entender la diferencia entre el mql4 descrito por Sergei Kovalev y el mql4 moderno
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Alexey Viktorov:

Lo más importante para un programador es ser capaz de plantear un problema y encontrar la forma de resolverlo. Y eso es lo que define una mentalidad matemática. Si eres capaz de cambiar tu mentalidad, que Dios te ayude.

Y si estás tratando de escribir en mql4, siempre estarás mirando la documentación de mql5 para encontrar similitudes entre los lenguajes, entonces considera que habiendo tratado con mql4, ya trataste con mql5. Las lenguas son tan parecidas que es más fácil enumerar las diferencias que las similitudes.

El libro de texto de Kovalev se escribió hace tanto tiempo que, en la mayoría de los casos, antes de escribir algo hay que encontrar métodos modernos, aunque los utilizados en los ejemplos del libro de texto funcionen durante algún tiempo.

Gracias por la valiosa información.

En cuanto a la mentalidad matemática. Como soy de cero .... aunque demasiado largo .... Estoy algo familiarizado con el libro de texto de Kovalev, e incluso aprendí a escribir código primitivo que compila sin errores, e incluso codifiqué algo similar al "grial" ..... significa que mi mentalidad está cambiando en la dirección que necesito..... , según me parece.
Por favor, dígame si está bien... ¿Se pueden ejecutar funciones MQL5 en el MetaEditor 4?

Gracias