Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Para probar algo, tienes que estar en el paradigma de lo que está pasando ))
Me he dado cuenta de que es más fácil para mí esbozar mi propia versión, ya que no estoy cerca del enfoque actual. En concreto, me parece que la clase CIndMSTF es una especie de superclase. Luego se crean un montón de clases indicadoras sobre su base. Creepy - el archivo IndMSTF.mqh es de 4 mil líneas de código )) Tomé el camino de usar una instancia de la clase CIndicators como una colección de indicadores . Es muy conveniente. No necesitas reinventar la rueda...
Entonces, ¿por qué la clase CIndMSTF debe almacenar los datos en buffers (SBuffer m_buffers[])? Los calculamos una vez en OnCalculate() y es suficiente. Es decir, lo tomamos como parámetro por referencia, lo calculamos y se lo damos...
Escribiré más tarde sobre lo que no estoy de acuerdo cuando termine mi versión...
Sí, me gusta que exista este mecanismo:
Por la extensibilidad - para que una vez calculados los datos estén en un array separado de la parte de cálculo. CopyBuffer copia un número determinado de barras en un array y redimensiona el array receptor para que quepan la cantidad de datos copiados. Es decir, si necesitas datos todo el tiempo, necesitas copiarlos del buffer de la parte de cálculo todo el tiempo.
Aquí hemos hecho que haya un array constantemente lleno con todos los datos, y los datos se obtienen de él por índice. Sin copiar. La copia se hace una vez al inicio, y luego sólo se añaden datos de dos en dos barras al final de la lista. Creo que la misma lógica se usa en SB en la clase que mencionas. Puedo olvidarlo y estar equivocado al respecto.
Debido a la extensibilidad - para mantener los datos calculados en un array separado de la parte de cálculo. CopyBuffer copia un número especificado de barras en el array y cambia el tamaño del array receptor para que se ajuste a la cantidad de datos copiados. Es decir, si necesitas datos todo el tiempo, debes copiarlos del buffer de la parte de cálculo todo el tiempo.
Aquí hemos hecho que haya un array constantemente lleno con todos los datos, y los datos se obtienen de él por índice. Sin copiar. La copia se hace una vez al inicio, y luego sólo se añaden datos de dos en dos barras al final de la lista. Creo que la misma lógica se usa en SB en la clase que mencionas. Puedo olvidarlo y estar equivocado al respecto.
Sí, hay llenado de matriz. Pero también hay un intento de acceso directo - el api-método CIndicator::GetData(), que llama directamente a la función nativa CopyBuffer().
El primer error en el registro del editor es ¿qué?
Un mensaje de los desarrolladores en el foro.
Recuerdo algo así sobre el 4, pero se me debió pasar sobre el 5....
Es extraño que estas cosas no sean configurables en el terminal. Y no se describen en la documentación.
Por favor, dime, ¿tu enfoque te permite obtener datos del buffer cero del TF superior en el primer tick?
Recuerdo algo así sobre el cuatro, pero sobre el cinco, al parecer me lo perdí....
Es extraño que esas cosas no se configuren en el terminal. Y no se describen en la documentación.
Por favor, dígame, ¿su enfoque permite obtener datos del búfer cero de la TF superior en el primer tick?