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

 
WindSW:
Por favor, dígame cómo ver cuánta memoria ocupa el Asesor Experto y cómo se redistribuye.

El Administrador de tareas de Windows debería ser suficiente para ti.

Consulteeste artículo.

En general, desmonte su Asesor Experto en scripts, haga que todas las funciones funcionen, y luego reúnalos en una pila.

 
WindSW:

Y todavía no puedo entender por qué los niveles no se crean usando ObjectCreate. Todas las funciones funcionan, pero no se crean objetos OBJ_TREND

Hay variables definidas a nivel global:

cadena oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

El código que debe crear los niveles:

Amigos, ayuden a resolver esto. Por favor,

Los niveles se crean, sólo que no son visibles)

Establezca las coordenadas - hora / precio. Tienes ceros por todas partes.

 
Dima_S:

Los niveles están creados, sólo que no puedes verlos)

Establezca las coordenadas - hora / precio. Tienes los ceros bien puestos ahí.

Crea un objeto sin ataduras y luego lo modifica. Aquí.

El objeto no se crea debido a un nombre incorrecto (no asignado). (Arriba ya se ha contestado). En consecuencia, no se puede modificar para verlo.

 
fyords:

Bien, digamos que has declarado variables a nivel global, ¿has asignado valores a estas variables?

Si no, entonces le dices al programa "crea un objeto con tales y tales características con el nombre..." y hay un problema - el nombre no se da. Así que no lo crea.

¿No sería más fácil especificarlo directamente en el código de ObjectCreate?

Gracias. Por alguna razón no se me ocurrió hacerlo de inmediato, porque en la versión 4 también se define el nombre del objeto.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

No consigo solucionar el error de desbordamiento del array. Escribí sobre ello en la página 88. El Asesor Experto funciona durante algún tiempo y se bloquea. Para ser más exactos funciona una pasada desde el principio hasta el final de Expert Advisor y en la segunda pasada en el bucle de abajo el array se desborda indicando una cadena:

H=Alto[j];

void CreateLevels()
   {
      double High[];
      ArrayResize(High,0);
      ArraySetAsSeries(High,true);
      CopyHigh(_Symbol,_Period,0,Candle,High);
      ArrayResize(HBar,0);
      ArrayResize(HBar,1000);
      int countH=0;
      int f1;
      double H;
      for(int j=Nachalo;j<=Candle;j++)
         {
          //--- поиск макс -----------------------------------
          if(iHighest(Symbol(),0,10,MN*2,j-MN)==j)
            {
             f1=0;
             H=High[j];                                 // отметка текущего хая
             ...                                        // здесь обработка флага f1
             if(f1==0)                                  // если занесение хая в массив разрешено
               {
                HBar[countH][0]=High[j];
                countH++;
               }
            }
         }
   }

Lo más importante es que no entiendo cómo se desborda el array High[], ya que se especifica un número concreto de haves? ¿Y por qué el terminal indica un desbordamiento en la cadena H=High[j]; ?

Por favor, ¿podrían decirme cómo implementarlo correctamente? ¿Es posible anular el array High[] o escribir el máximo de una vela concreta en la variable H de alguna otra forma?

 
WindSW:

Inténtalo de esta manera:

for(int j=Nachalo;j< Candle;j++)

Base: la indexación de la matriz comienza en cero, por lo que cuando Candle==100 el último elemento de la matriz está indexado por el número 99, no por el número 100.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Yedelkin:

Inténtalo de esta manera:

Base: la indexación de la matriz comienza en cero, por lo que cuando Candle==100 el último elemento de la matriz está indexado por el número 99, no por el número 100.

Gracias. Me ayudó.
 

Buenas tardes! Me he encontrado con el siguiente problema... Generó un Asesor Experto... Ejecútalo en los futuros de índices RTS. Y ahí, los lotes no son fraccionarios = no funciona la gestión monetaria, y las cotizaciones son múltiplos de 10 = no funciona el trailing stop. Por favor, aconséjeme, ¿es posible resolver este problema?

Sé cómo redondear los valores de iMa a 10 o 5, como último recurso creo que para ejecutar trailing stop por separado.

 
oldiol: Si mi EA no tiene lotes fraccionados = no funciona la gestión del dinero, y las cotizaciones múltiples de 10 = no funciona el trailing stop. Por favor, aconséjeme, ¿es posible resolver este problema?

La herramienta tiene una propiedad Volumen_Paso. A ver si puedes utilizarlo para volúmenes no fraccionados.

Para las cotizaciones divisibles por 10, basta con que el paso del trailing stop sea el mismo.

 
Yedelkin:

La herramienta tiene una propiedad Volumen_Paso. A ver si puedes utilizarlo para volúmenes no fraccionados.

Y para las cotizaciones divisibles por 10, basta con que el paso del trailing stop sea el mismo.

Muchas gracias) Lo intentaré.