Preguntas de un "tonto" - página 52

 

¿Tiene que ir a alguna parte? ... No sé...

Es decir, vuela en el EMA, pero tarda 10 veces más en el iCustom...

 

Nunca debes hacer esto:

void OnTick()
  {
   //--- безусловно создаем индикатор
   ma_handle = iMA(_Symbol,0, MA,0, MODE_EMA, PRICE_CLOSE);
  }

No se deje engañar diciendo"obtener el mango del indicador" cuando en realidadestá "creando un nuevo indicador".

Además, hay una fuga de asas.

 
Karlson:

¿Tiene que ir a alguna parte? ... No sé...

Es decir, vuela en la EMA, pero tarda 10 veces más en ejecutar el iCustom...

¿Dónde debemos poner un montón de Manejadores-Indicadores obsoletos? No lo sé. No he trabajado así. Hay más y más con cada garrapata.

Si tuviera que implementar tal estrategia, me negaría a llamar a un indicador personalizado listo a través de iCustom() y colocaría el cuerpo del indicador en OnTick() del Asesor Experto en su lugar. Y los cálculos de los datos los realizaría el propio Asesor Experto.

...El problema surgirá si el indicador está en formato .ex5 y no hay código.

 

Recordé: " La función IndicatorRelease() se utiliza para liberar un indicador no utilizado de la memoria del ordenador y se le pasa el handle de este indicador" (la utilizo durante la desinicialización del Asesor Experto).

Pero de todos modos: un nuevo mango en cada tic es molesto.

 

Sobre la acumulación de asas, lo investigaré.

Eso es lo que pienso hacer, poner el pavo en el EA.

 
Karlson:

Sobre la acumulación de asas, lo investigaré.

Eso es lo que pienso hacer, poner el pavo en el Expert Advisor.

Puedes dejar el indicador tal cual y crear una copia del mismo en el temporizador o por evento.
 
Interesting:
Podrías dejar el indicador como está y crear una copia del mismo en un temporizador o por evento.

¿Cuál es la diferencia de dónde crear una copia del indicador: en OnTick(), OnTimer() o en OnChartEvent()? En cualquier caso, cada activación especial creará una "copia del indicador", agravando el ya enorme montón.

O tal vez no entiendo su lógica.

 
Yedelkin:

¿Cuál es la diferencia de dónde crear una copia del indicador: en OnTick(), OnTimer() o en OnChartEvent()? En cualquier caso, cada activación especial creará una "copia del indicador", agravando la ya enorme pila.

O tal vez no entiendo su lógica.

Aquí está el truco - Si no necesita cambiar los parámetros del indicador (no es necesario crear una nueva copia del indicador), entonces es más lógico crear el indicador una vez en el bloque de inicialización.

Pero si en el transcurso del trabajo los parámetros del indicador deben cambiarse automáticamente, debemos hacerlo de la manera más eficaz posible.

La forma más eficiente es crear una nueva copia del indicador en el temporizador (no necesariamente en cada tick).

La forma más eficaz sería crear una nueva copia de la indicación cuando se produzca algún evento (unos cuantos eventos).

PS

Es necesario tener en cuenta el tiempo empleado en el cálculo del indicador y asegurarse de eliminar las copias "innecesarias".

 

Una idea para tener en cuenta... Recalcular una nueva bolsa puede hacerse una vez al día o a la semana para mí... Poner un temporizador:

bool  EventSetTimer(
   int  seconds      // количество секунд
   );

Realmente me confunde el número de segundos en un día o semana...)) También puedes hacerlo en una nueva barra diaria...

En la función OnTimer(), primero elimino el indicador anterior conIndicatorRelease(), y luego creo uno nuevo con un nuevo período.

void OnTimer() 
{

IndicatorRelease( ma_handle );

ma_handle=iMA(Symbol(),0,newMA,0,MA_EMA,PRICE_CLOSE);

}

Es una idea general...

 
Renat:

Nunca debes hacer esto:

No se deje engañar diciendo"obtener el mango del indicador" cuando en realidadestá "creando un nuevo indicador".

Además, existe la fuga de asas.

En los primeros días de MQL5, se discutieron muchas cuestiones, usted ha cortado una parte importante de los desarrollos para el comercio automático, y como resultado, la gente ahoga su OnCalculate() super-optimizado con espacio vacío y poner los cálculos en los eventos. Es un poco lento, pero aún así es más rápido que crear su propio mango para cada parámetro dinámico.