¿Cuándo tiene sentido mantener parte del código del robot en un indicador? - página 34

 
TheXpert:

Concepto erróneo #1: se puede prescindir de IndicatorCounted()

Un indicador con él:

Sin ella, por el principio de hrenfx

A continuación, aplicamos los índices al gráfico y emulamos la pérdida de conexión mientras el autómata está en marcha. Resultado:




Es así. Por lo tanto, evito usar características que no serán útiles más adelante (cuando se desarrolle un EA).

No creo en la electricidad y prefiero hacerlo todo yo mismo. Y esta función no la entiendo.

 
sergeev:


¿Y puede publicar la investigación y las comprobaciones de esta conjetura?

Sólo se han realizado algunos experimentos en los que ha fallado la conexión. No hice un análisis completo de la basura de los desarrolladores. Era tan molesto como largo (tenía que hacerlo no durante un minuto o dos, sino durante al menos una docena o dos). Mi versión de EA maneja sin problemas las breves interrupciones de la conexión. Sin embargo, la investigación ha demostrado que el corto plazo (para M1) no son horas, sino minutos (< 10).

Puedes profundizar en este tema con experimentos sencillos. Todavía no puedo afirmar el 100%. Tal vez, no deberíamos llamar a un indicador vacío al principio, sino al indicador con llamada de IndicatorCounted().

Se me ocurrió una forma rápida de investigar: poner en marcha varios terminales a la vez (necesitaré menos de cinco) y en cada terminal una variante diferente de investigación. Corta la comunicación durante una hora y luego restablece. Consigue unas cuantas variantes diferentes a la vez. A partir de ellos, obtendrá la imagen correcta.

P.D. Necesita terminales diferentes, no gráficos diferentes. Debe excluir la variante de que IndicatorCounted() se calcule una vez para todos los indicadores del terminal.

P.P.S. Esta misma porquería ha sido muy modificada en las construcciones > 380. Y, a juzgar por las respuestas, se cambiará muchas veces. Por lo tanto, casi no tiene sentido realizar un estudio. Debemos preguntar directamente a los desarrolladores qué ocurre con el indicador (que contiene la llamada de IndicatorCounted()) durante el primer tick después de una larga pausa de comunicación.

P.P.P. Preguntado.

 
Integer:


No seas ridículo. Es que aún no has aprendido a escribir indicadores.

Después de tal herejía:

podría abstenerse de opinar en este hilo.


Bueno, quién y qué ha aprendido a escribir, creo que se verá desde fuera, en cuanto a la herejía - el nivel de su pensamiento, creo que, según todos los indicios, se parece a la lógica de los fanáticos religiosos, con los que es inútil y absolutamente innecesario discutir. Incluso con esta herejía, los expertos trabajan tres veces más rápido. Pero personalmente no tengo ningún deseo de ir a los extremos, para demostrar algo a alguien, y más aún para justificarme. La calificación de mi mente es demasiado cara como para desperdiciarla de una manera tan miserable y derrochadora.
 
Los respetados gurús (todos ellos) quieren pedirles que se traten con más respeto. ¿Qué enseñará a los jóvenes?
 
TheXpert:

Falacia de desacreditación #1: se puede prescindir de IndicatorCounted()

Un indicador con él:

Sin ella, por el principio de hrenfx

A continuación, aplicamos los índices al gráfico y emulamos la pérdida de conexión mientras el autómata está en marcha. Resultado:




IMHO: La comparación no es correcta: un algoritmo con recursividad, en igualdad de condiciones, siempre será más lento. En aras de la pureza del experimento, es mejor utilizar el mismo algoritmo en el indicador y en el Asesor Experto.

¿Qué impide que el Asesor Experto calcule la última barra calculada y, si la diferencia entre el número actual de barras y la última barra calculada es superior a 1, recalcule desde la posición adecuada, como hace el indicador?

 
GODZILLA:

Bueno, quien y lo que aprendió a escribir, creo, se verá desde fuera, sobre la herejía - el nivel de su pensamiento, creo que, por todos los indicios, se asemeja vívidamente a una lógica de los fanáticos religiosos, con los que es inútil y absolutamente innecesario para discutir. Incluso con esta herejía, los expertos trabajan tres veces más rápido. Pero personalmente no tengo ningún deseo de ir a los extremos, para demostrar algo a alguien, y más aún para justificarme. La calificación de mi mente es demasiado cara como para desperdiciarla de una manera tan miserable y derrochadora.

Es con esta cosa

//---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ
  int NewSize = iBars(symbol, timeframe);
  //----  Проверка на смену нулевого бара
  if(ArraySize(Ind_Buffer0) < NewSize)
    {
      //---- Установить прямое направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, false);
      ArraySetAsSeries(Ind_Buffer1, false);
      ArraySetAsSeries(Ind_Buffer2, false);
      //---- Изменить размер эмулируемых индикаторных буферов 
      ArrayResize(Ind_Buffer0, NewSize); 
      ArrayResize(Ind_Buffer1, NewSize); 
      ArrayResize(Ind_Buffer2, NewSize); 
      //---- Установить обратное направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, true);
      ArraySetAsSeries(Ind_Buffer1, true);
      ArraySetAsSeries(Ind_Buffer2, true); 
    } 
//----

¿tienes a los expertos trabajando rápido? ¿Quién es un fanático después de eso? Si lo compruebas, puedes utilizar el buscador del foro.

 
granit77:
Los respetados gurús (todos ellos) quieren pedirles que se traten con más respeto. ¿Qué enseñará a los jóvenes?

Personalmente, no me ofende en absoluto la acusación de fanatismo religioso, porque sé muy bien quién y qué soy. Además, esa acusación es un buen indicador del nivel de pensamiento del otro bando, un indicador exhaustivo.
 
GODZILLA:
Bueno, quien y lo que han aprendido a escribir, creo, desde el exterior será más visible

Sí, lo veo perfectamente. Su credibilidad a mis ojos está cayendo tres veces más rápido que antes :)

VladislavVG:

IMHO: La comparación no es correcta: un algoritmo con recursividad, en igualdad de condiciones, siempre será más lento. En aras de la pureza del experimento, es mejor utilizar el mismo algoritmo en el indicador y en el Asesor Experto.

La comparación es correcta, pues no se hace para comparar la velocidad, sino para mostrar claramente la incorrección del trabajo.

¿Qué impide que el Asesor Experto calcule la última barra calculada y, si la diferencia entre el número actual de barras y la última barra calculada es superior a 1, la recalcule desde la posición adecuada, como hace el indicador?

¿Por qué no lo pruebas?


El EA en el primer tick después de la aparición del enlace se comporta de manera muy diferente al indicador derivado del EA.

La captura de pantalla anterior muestra que después de la ruptura de la conexión el EA (no el indicador del EA) se compara con iCustom. La avería de la conexión pasa sin problemas por ahí.

Te equivocas de nuevo. El Asesor Experto se comporta de manera similar. Simplemente no puede analizar correctamente sus propios registros. Ya he explicado el error, no quiero repetirlo.

Sugerencia: Busque algunos valores después de la pausa.

granit77:

Respetados gurús (todos ellos) me gustaría pedirles que se traten con más respeto. ¿Qué enseñará a los jóvenes?

Los maîtres no deben cargar con herejías, eso es uno, y deben ser capaces de admitir errores, eso es dos.
 
TheXpert:

Te equivocas de nuevo. El concejal se comporta de manera similar. Simplemente no puede analizar correctamente sus propios registros. Ya he explicado cuál es el error, no quiero repetirlo.

Sugerencia: Mira varios valores después del hueco.

Sí, sólo he dado una captura de pantalla para un valor después de la pausa. Por supuesto, vi todos los valores y más allá (no hago trampas y mucho menos tan tontas). La coincidencia es completa (no ha llegado a la captura de pantalla).

Lamentablemente, los desarrolladores siguen sin entender la posible utilidad de IndicatorCounted() para los EAs (a juzgar por su respuesta).

El indicador y el EA en el primer tick después del gap (especialmente uno largo) no se comportan de la misma manera. Puede comprobarlo fácilmente si lo desea.

 
Integer:

Personalmente no me ofende en absoluto que me acusen de fanatismo religioso, porque sé muy bien quién y qué soy. Además, esa acusación es un buen indicador del nivel de pensamiento del otro bando, un indicador exhaustivo.

¿Considera que su pensamiento es adecuado y no fanático, para el caso? No basta con que no hayas conseguido demostrar tu hipótesis-creencia de que el mismo código en un indicador siempre será más rápido que en un EA, sino que has iniciado una competición absolutamente poco clara y sin sentido (por cierto, ha sido buena, porque ha llevado a una solución interesante de fallo de comunicación en el EA). Por cierto, no he notado en ninguna parte de nuestro sitio que el código de los asesores deba escribirse preferentemente en un indicador para la aceleración del rendimiento, por lo que esta afirmación suena extraña, al menos, y creo que estarás de acuerdo con ella.

Mi suposición se basaba en la simple lógica de que llamar a una función externa pasándole una copia del buffer y los parámetros lleva más tiempo que sin ella; por qué tratas de negar eso no estoy seguro.

Razón de la queja: