Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1456

 
rex1818 cierre de posiciones cuando el precio cruza MA.

En esta sección de código

Obtengo la siguiente imagen en el probador : el precio cruza la MA y cierra la posición al cierre de la vela / apertura de la siguiente vela, ya lejos del nivel de cierre deseado (límite de la MA)....

¿No está seleccionada la prueba por barras de cierre?

 
Alexey Viktorov #:

¿No se seleccionan las pruebas por cierre de bares?

Buenas tardes.

Modelo de prueba: Todos los ticks (.....). Entiendo que lo más preciso...

 
rex1818 #:

¡Buenas tardes!

Modelo de prueba: Todas las garrapatas (.....). Entiendo que lo más preciso...

¿Y el Asesor Experto no está escrito en base a la apertura de una nueva barra?

La parte del código que ha mostrado no es suficiente para suponer la causa de tal comportamiento con mayor precisión.

 

Gracias a todos los que han respondido.

He encontrado los errores.

Ahora todo funciona como debería.

 

¿Puede alguien aconsejar, si el gráfico tiene un límite de 3000 barras, y tenemos que tomar la historia de 2000000 bares, las posibles opciones para sacar los datos históricos, sin cambiar el parámetro - max. bares en la ventana ????.


Mi sistema se sobrecarga cuando el array llega a 2 millones de índices. Tengo que buscar una solución para descargar el histórico sin pasar por el gráfico.

   void SMA(const int aRatesTotal,const int aPrevCalc,const double  &aData[], double  &aMA[])
     {
      int Start=0;
      if(aPrevCalc==0)
        {
         for(int i=0;i<aRatesTotal;i++)
           {
            if(aData[i]!=0 && aData[i]!=EMPTY_VALUE)
              {
               Start=i+m_MAPeriod-1;
               break;
              }
           }
         aMA[Start]=0;
         for(int i=Start;i>Start-m_MAPeriod;i--)
           {
            aMA[Start]+=aData[i];
           }


Pero antes de eso, alimento este array.


   rt=aRatesTotal;
   prv=aPrevCalc;
   for(int i=0; i<m_max_period; i++)
     {
      ArrayResize(d[i].m,rt);
      ArrayResize(d[i].f,rt);
     }

   chsma.Solve(rt,prv,aData,d[m_max_period-1].m);
Parece que el sistema se bloquea no por un array, sino porque empieza a crear arrays de tal tamaño.
 

¡Buenas tardes a todos!

Quiero cambiar de Mql4 a Mql5. Empecé a leer el manual de referencia de Mql5. Desafortunadamente entiendo, pero no todo. ¿Dónde puedo encontrar información como el libro de texto de Kovalev sobre Mql4 que empezaría desde lo básico y describiría en detalle las características de Mql5 y lo más importante que daría ejemplos específicos de codificación de las operaciones más simples y más comunes. Es decir, necesitamos información formativa no para usuarios avanzados, sino para principiantes que necesitan aprender lo básico y partir de ahí.

Gracias por su ayuda

 
ANDREY #:

Buenas tardes a todos.

Quiero cambiar de Mql4 a Mql5. Empecé a leer el manual de referencia de Mql5. Lamentablemente entiendo, pero no todo. ¿Dónde puedo encontrar información como el libro de texto de Kovalev sobre Mql4 que empezaría desde lo básico y describiría en detalle las características de Mql5 y lo más importante que daría ejemplos específicos de codificación de las operaciones más simples y más comunes. Es decir, necesitamos información de formación no para usuarios avanzados, sino para principiantes que necesitan aprender lo básico y avanzar a partir de ello.

Gracias por su ayuda

En la base de código hay Asesores Expertos e indicadores que fueron escritos originalmente en MT4 y luego reescritos en MT5 - puedes usarlos para entrenamiento.

En muchos aspectos los lenguajes son similares, ponte la tarea de reescribir el código que entiendas en MT5 - y utiliza activamente la búsqueda en las instrucciones y el portal - siempre encontrarás la respuesta, incluso en los artículos.

 
Aleksey Vyazmikin #:

En la base de código hay Asesores Expertos e indicadores que fueron escritos originalmente en MT4 y luego reescritos en MT5 - puedes usarlos para entrenamiento.

En muchos aspectos los lenguajes son similares, ponte la tarea de reescribir el código que entiendes en MT5 - y utiliza activamente la búsqueda en las instrucciones y el portal - siempre encontrarás la respuesta, incluso en los artículos.

Muchas gracias por sus valiosos consejos. Si no te importa, por favor envíeme un enlace al Asesor Experto (no indicador) que estaba en 4 y luego se convirtió en 5 (si es posible en el más simple), o la propia EA en 4 y luego lo mismo en 5
Empecé a estudiar. Me di cuenta de que las operaciones de comercio para un principiante es más fácil de abrir en la clase de comercio STrade e incluso me las arreglé para abrir órdenes y operaciones con la ayuda de esta clase
Pero tan pronto como condicioné la apertura de una orden, las órdenes dejaron de abrirse, por favor, dime lo que hice mal. Aquí está el código que abría órdenes cuando no había condiciones.

#include<Trade\Trade.mqh>
 CTrade  trade;

void OnTick()
{
MqlDateTime time_now;  
if(time_now.hour==10||time_now.hour==11&&time_now.min==0)


trade.Buy(0.1);


}

Todavía no he entendido este punto.... Cuando se abrían órdenes BAY, se cerraban, según he entendido, por contraórdenes CEL. Y no entiendo de dónde el código tomó la información acerca de cuántos pips para cerrar las órdenes, porque no he especificado el tamaño de SL y TP en cualquier lugar y no he especificado la función de cierre de órdenes en absoluto. Sospecho que esta información está escrita en algún lugar de algún archivo adjunto, es decir, en alguna clase o estructura. Si es así, ¿cómo encontrar este lugar para hacer cambios en los parámetros de la orden de apertura?

Gracias de nuevo por su ayuda

 
ANDREY #:

Muchas gracias por tus valiosos consejos. Si no te importa, por favor envíeme un enlace a un Asesor Experto (no un indicador) que estaba en 4 y luego se convirtió en 5 (si se puede en el más simple), o el propio Asesor Experto en 4 y luego lo mismo en 5
Empecé a estudiar. Me di cuenta de que las operaciones de comercio para un principiante es más fácil de abrir en la clase de comercio STrade e incluso me las arreglé para abrir órdenes y operaciones con la ayuda de esta clase
Pero tan pronto como condicioné la apertura de una orden, las órdenes dejaron de abrirse, por favor, dime lo que hice mal. Aqui esta el codigo que abria ordenes cuando no habia condiciones.

Todavía no he entendido este punto.... Cuando se abrían órdenes BAY, se cerraban, según he entendido, por contraórdenes CEL. Y no entiendo de dónde el código tomó la información acerca de cuántos pips para cerrar las órdenes, porque no he especificado el tamaño de SL y TP en cualquier lugar y no he especificado la función de cierre de órdenes en absoluto. Sospecho que esta información está escrita en algún lugar de algún archivo adjunto, es decir, en alguna clase o estructura. Si es así, ¿cómo encontrar este lugar para hacer cambios en los parámetros de la orden abierta?

Gracias de nuevo por su ayuda

Sólo puedo dar consejos - Nací en el país de los soviets ...

Búscalo - aquí hay una opción.

Yo mismo todavía no han aprendido todos los matices de las operaciones comerciales - Pedí una clase en independiente hace muchos años y lo uso con pequeñas modificaciones.

 
Aleksey Vyazmikin #:

Sólo puedo dar consejos: nací en el país de los soviets....

Puedes buscarlo, es una opción.

Yo mismo todavía no han aprendido todos los matices de las operaciones comerciales - Pedí una clase en independiente hace muchos años y lo uso con pequeñas modificaciones.

Entendido. Gracias por la valiosa información