Símbolos personalizados. Errores, fallos, preguntas, sugerencias. - página 12

 
fxsaber:

Bug 16.

Anteriormente, CustomTicksAdd generaba barras a partir de ticks que se referían al día actual. Este tampoco es el caso ahora.

Este error parece estar relacionado con el error #14.

La eliminación del símbolo de la visión general del mercado es posible por la siguiente razón. Llamar consecutivamente CustomSymbolCreate - CustomSymbolDelete - CustomSymbolCreate con el mismo nombre de símbolo personalizado estaba causando que el ID del símbolo fuera golpeado. Por lo tanto, al comprobar si un símbolo puede ser eliminado de la visión general del mercado, el gráfico de este símbolo no se encontró (el identificador está corrupto), y el símbolo fue eliminado con seguridad. Esto se ha arreglado.

Al aplicar un tick a un gráfico, ocurre lo mismo: la búsqueda del gráfico por el identificador del símbolo no dio resultado

 
fxsaber:

Bug 15.

Ejecutamos el siguiente indicador en el símbolo de este EA (con la fila ChartSetSymbolPeriod eliminada)

Sólo produce ceros.

Es justo.

Al llamar a CustomRatesUpdate se reinician todos los contadores de cambios y se recalculan los indicadores desde cero

 
Slava:

Con toda la razón.

Cuando se llama a CustomRatesUpdate, todos los contadores de cambios se reinician y los indicadores se recalculan desde cero

¿Cuál es la lógica de esta solución? Al fin y al cabo, a la izquierda hay barras sin cambios.

 
fxsaber:

¿Cuál es la lógica de esta solución? Después de todo, hay barras invariantes a la izquierda.

prev_calculated contiene un valor que fue devuelto en la anterior llamada OnCalculate

El indicador puede devolver cualquier valor basado en su propia lógica. Por lo tanto, no tiene sentido recorrer todos los indicadores y cambiar el valor de prev_calculado por su propio valor calculado teniendo en cuenta el marco temporal. Y requiere muchos recursos, incluso puede ser excesivamente intensivo.

Es mucho más honesto ponerlo a 0, como al principio, cuando aún no se contaba nada

 
Slava:

prev_calculado contiene el valor devuelto en la anterior llamada a OnCalculate

El escritor de indicadores puede devolver cualquier valor basado en su propia lógica. Por lo tanto, no tiene sentido recorrer todos los indicadores y cambiar el valor de prev_calculado por su propio valor calculado teniendo en cuenta el marco temporal. Y requiere muchos recursos, incluso puede ser excesivamente intensivo.

Es mucho más honesto ponerlo a 0, como al principio, cuando aún no se contaba nada

Entonces, ¿qué debemos hacer cuando los indicadores de un símbolo personalizado se recalculan por completo debido a este valor cero después de cada rollover de ticks?

Los indicadores están especialmente escritos para no ralentizar el Terminal, y aquí empieza lo contrario.

 
fxsaber:

Entonces, ¿qué pasa cuando, en un símbolo personalizado, después de cada rollover de ticks, los indicadores se recalculan completamente debido a este valor cero?

Este no debería ser el caso. Consulte

 
Slava:

No debería ser así. Consulte

Permítanme aclarar que no se trata sólo de CustomTicksAdd, sino también de RatesUpdate, que es un tic del pasado. De hecho, incluso el TicksAdd de trabajo no formó las barras antes del día actual. Tenemos que generarlos nosotros mismos. Y obtenemos cero prev_calculado por ello.

 
fxsaber:

Para aclararlo, no es sólo CustomTicksAdd, sino también RatesUpdate, que es un tic del pasado. De hecho, incluso el TicksAdd de trabajo no formó las barras antes del día actual. Tenemos que generarlos nosotros mismos. Y obtenemos cero prev_calculado por ello.

De todos modos, al reemplazar, refrescar o borrar barras, todos los indicadores se recalcularán desde cero. Esto está fuera de toda duda.

La adición de ticks debería funcionar como de costumbre, es decir, los ticks son frescos, actuales, pero no los de ayer/antes.

He ejecutado su Asesor Experto de la descripción del error 11 y luego ejecutar el indicador con una impresión en cada OnCalculate

Aquí están los registros.

2019.06.07 08:11:34.240 CustomHistoryTick (EURUSD,H1)   CustomSymbolCreate(Name,NULL,_Symbol) = true
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   CustomRatesDelete(Name,0,0) = 0
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   SymbolSelect(Name,false) = true
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   CustomSymbolDelete(Name) = true
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   CustomSymbolCreate(Name,NULL,_Symbol) = true
2019.06.07 08:11:34.321 CustomHistoryTick (EURUSD,H1)   CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,(TimeCurrent()-3600)*1000) = 1114
2019.06.07 08:11:46.158 Custom Moving Average (EURUSD11608,M1)  13  prev_calculated=0  begin=0  data=1.126668940063615
2019.06.07 08:11:46.173 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=13  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.209 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.228 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989297959183673
2019.06.07 08:11:46.246 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989312244897959
2019.06.07 08:11:46.271 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989312244897959
2019.06.07 08:11:46.305 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.399 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.427 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.460 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.494 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.521 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.561 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.586 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.614 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989297959183673
2019.06.07 08:11:46.645 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.676 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989297959183673
2019.06.07 08:11:46.708 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.775 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.803 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.835 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.869 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.898 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.930 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.972 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.298924081632653
2019.06.07 08:11:46.993 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989226530612245
2019.06.07 08:11:47.024 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.298924081632653
2019.06.07 08:11:47.050 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:47.085 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=14  begin=0  data=0.4171804373177843
2019.06.07 08:11:47.116 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.175 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.198 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.215 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.242 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.270 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171761516034985
2019.06.07 08:11:47.302 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.335 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.370 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171761516034985
2019.06.07 08:11:47.398 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171804373177843
2019.06.07 08:11:47.434 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.466 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.494 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.528 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.586 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.617 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.646 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.41717472303207
2019.06.07 08:11:47.679 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.716 Custom Moving Average (EURUSD11608,M1)  16  prev_calculated=15  begin=0  data=0.5185379258642233
2019.06.07 08:11:47.740 Custom Moving Average (EURUSD11608,M1)  16  prev_calculated=16  begin=0  data=0.5185364972927947

Significa que todo funciona correctamente en una situación normal (las garrapatas son de hoy, como deberían ser siempre). Las garrapatas se añaden, y el indicador se considera con moderación

 
Slava:

En cualquier caso, al sustituir, actualizar o eliminar barras, todos los indicadores se recalcularán desde cero. Esto está fuera de discusión.

La adición de ticks debería funcionar como de costumbre, es decir, los ticks son frescos, los de hoy, no los de ayer, los de antes de ayer.

Ejecute su Asesor Experto desde la descripción del error 11, luego ejecute el indicador con la impresión en cada OnCalculate

Aquí están los registros.

Significa que todo funciona correctamente en una situación normal (las garrapatas son de hoy, como deberían ser siempre). Las garrapatas se añaden, y el indicador se considera con moderación

¿Es esta una afirmación correcta?

Haga clic en la imagen para ver la animación.


Además, si son las 00:00:01, no podemos utilizar CustomTicksAdd para remodelar una barra de hace sólo dos segundos.

 
fxsaber:

¿Es esta una afirmación correcta?

Para el probador, el tick de anteayer es fresco, el tick de hoy de anteayer.

Ya veo lo que quieres decir. Su ejercicio con tics personalizados de hace seis meses es de una naturaleza claramente probadora. Su situación no es normal (en el sentido de la práctica normal)

Razón de la queja: