El oscilador de equidad de MQL5 significa - página 3

 

DV2010:

...Renat, según tengo entendido, la visualización del indicador en el gráfico una vez finalizada la prueba se basa en los cálculos realizados durante la misma y en el llenado de la matriz del indicador. ¿Pero qué significa que los resultados no se transfieren del probador al gráfico del indicador personalizado?

Por supuesto, los datos de cálculo de los indicadores del agente probador no se transfieren al gráfico del terminal. No pasaremos cientos de megabytes de datos calculados al terminal, y serán recalculados inmediatamente (y en el siguiente tick) por el indicador (la llamada de la función OnCalculate no ha sido cancelada).

El indicador debería calcularse por sí mismo.

 

sergey1294:
Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.

Pero, ¿dónde escribo exactamente los datos en el búfer?

Pensé que sólo se podía escribir en OnCalculated y traté de implementarlo así.

 
DV2010:

Rosh, la variante para online ya ha sido publicada, pero como alguien que trabaja principalmente con Historia, necesito una variante que funcione con datos históricos. Y me sigue costando entender cuál puede ser la principal dificultad aquí.


Escribir los valores de la equidad en un archivo. A continuación, trace el indicador por estos valores. Sin embargo, el archivo de datos tendrá que ser transferido manualmente porque durante las pruebas los archivos se escriben en la carpeta agent_name/MQL5/Files.
 
DV2010:

Pero, ¿dónde escribo exactamente los datos en el búfer?

Pensé que sólo se podía escribir en OnCalculated y traté de implementarlo así.

Usamos expert para escribir valores en el archivo, luego en el indicador escribimos el código para leer del archivo y escribir datos en el buffer. Todavía no puedo mostrar el código, me llevará algún tiempo escribirlo.

 
Renat:

Por supuesto, los valores de los indicadores calculados no pueden ser transferidos del Tester-Agent al gráfico del terminal. No pasaremos cientos de megabytes de datos calculados al terminal, y serán recalculados inmediatamente (y en el siguiente tick) por el indicador (la llamada de la función OnCalculate no ha sido cancelada).

Renat, el indicador debe leerse

Por eso inicializo los valores del array de indicadores con algunos valores en el método OnCalculated . Pero, ¿por qué es posible inicializar (construir) la línea del indicador de esta manera, mientras que los valores de la equidad no lo hacen?

 
DV2010:

Renat, el indicador debe leerse

Por eso inicializo los valores del array de indicadores con algunos valores en el método OnCalculated . Pero, ¿por qué es posible inicializar (construir) la línea del indicador deesta manera, mientras que los valores de la renta variable no lo hacen?

Porque los precios tienen una historia, pero la equidad no. Por lo tanto, debe construir su propio historial para la Equidad escribiéndolo en un archivo.
 
Rosh: Escribe los valores de la equidad en el archivo. A continuación, construye el indicador a partir de estos valores. Sin embargo, el archivo de datos tiene que ser transferido manualmente, mientras que la prueba, los archivos se escriben en la carpeta Agent_name/MQL5/Files.

Como yo lo entiendo, se debe escribir en el archivo en el OnInit del Asesor Experto basado en la definición a través de AccountInfoDouble(ACCOUNT_EQUITY) y leer desde el archivo - en el indicadorOnCalculated.

Pero, ¿por qué los datos de la variable Equty a través de AccountInfoDouble(ACCOUNT_EQUITY) están disponibles directamente en OnCalculated?

El código sería entonces demasiado engorroso.....

No puedoentender ...OnCalculated en Print AccountInfoDouble(ACCOUNT_EQUITY) produce algún valor .

¿Qué impide exactamente que se asigne inmediatamente a la matriz de valores del indicador?

Siempre he pensado que la indicación de los valores en el probador sobre el historial difiere de la indicación de los valores actuales sólo en el hecho de que el historial ya está registrado, mientras que los datos actuales acaban de llegar.

 

sergey1294:
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.

Pero entonces, ¿cómo se muestra la dinámica de la equidad en absoluto a través de AccountInfoDouble(ACCOUNT_EQUITY) en OnCalculated Indicador (no sólo en OnTick Expert Advisor)?

¿O el indicador OnCalculated funciona de forma diferente en el modo de prueba y en el modo de visualización?

 

Declare dos arrays Equity[] y Time[] a nivel global en EA.

Escriba el valor de la equidad y el tiempo en la matriz apropiada cuando pruebe el EA.

Utilizar un script para leer el archivo al final de la prueba y trazar la equidad en el gráfico requerido.

Esta es la mejor manera para sus propósitos, no entiendo por qué necesita un indicador.

 
DV2010:

Por lo queentiendo, debe escribirse en el archivo en el OnInit del Asesor Experto basado en la definición a través de AccountInfoDouble(ACCOUNT_EQUITY) y leer del archivo - en el indicadorOnCalculated.

Pero, ¿por qué los datos de la variable Equty a través de AccountInfoDouble(ACCOUNT_EQUITY) están disponibles directamente en OnCalculated?

El código sería entonces demasiado engorroso.....

No puedoentender ...OnCalculated en Print AccountInfoDouble(ACCOUNT_EQUITY) produce algún valor .

¿Qué impide exactamente que se asigne inmediatamente a la matriz de valores del indicador?

Siempre he pensado que la indicación de valores en el probador sobre el historial difiere de la indicación de valores actuales sólo en el hecho de que el historial ya está registrado, mientras que los datos actuales acaban de llegar.

No sé ni cómo explicártelo. AccountInfoDouble(ACCOUNT_EQUITY) almacena el último valor de la equidad. Después de la prueba, como dijo Renat, el indicador se reinicia y se recalcula. Así, los datos de equidad acumulados en la memoria intermedia del indicador durante la prueba se borran.
Razón de la queja: