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
Sin embargo, cuando se trata de grandes cálculos, iBarShift es inapropiado ahí porque trabajamos con arrays. De hecho, iBarShift y otras funciones similares están pensadas para llamadas raras.Es irracional ponerlas en bucle. Simplemente cogemos el array en CopyTime y rápidamente encontramos todo. Por eso el ejemplo de prueba es de poca utilidad en la práctica real, a no ser, claro está, que el codificador sea un dummies ) Y no creo que merezca la pena molestarse por el bien de los dummies ).
Creo que es más lógico envolver tu función en una clase. Así no tendrás que comprobar el símbolo/periodo en cada llamada. Tendrás un objeto diferente para cada serie temporal.
No estoy discutiendo. Es sólo que estas funciones fueron creadas cuando no había iBarShift incorporado y Bars tenía fallos.
Personalmente, necesito estas funciones para controlar el programa y los gráficos con el ratón. También creo TFs sintéticos con escala logarítmica y estas funciones son muy útiles allí. Son necesarias para resolver el problema del reconocimiento de patrones y aceleran significativamente los cálculos. Un TF sintético de este tipo contiene toda la historia de un símbolo y contiene sólo 3000 barras.
Estoy decepcionado con las funciones Bars y iBarShift. MQ no consigue que estén a la altura. Curan una cosa y paralizan otra.
Me he dado cuenta de que son funciones rudimentarias y es mejor olvidarse de ellas como de un sueño terrible.
Que queden para estudiantes y conservadores.
Creo que es razonable utilizar la búsqueda del número de barra por tiempo mediante la búsqueda habitual en el array time[].
Por ejemplo, se puede hacer con la ayuda de una función de este tipo:
Sí, se necesita un array. Pero personalmente, siempre lo tengo a mano y se actualiza con cada tick. Por eso ni siquiera necesito formarlo.
Y esta función es diez veces más rápida que la iBarShift original.
Un ejemplo de búsqueda del número de barra por tiempo en un array de 100 000 elementos por el método de la división por la mitad:
Corrección. Si vas más allá de la historia existente, devuelve la posición incorrecta:
Resultado:
La función fBarShift() en este caso devuelve el número total de barras, que no es una posición correcta.Corrección. Si vas más allá de la historia existente, devuelve la posición incorrecta:
Resultado:
La función fBarShift() en este caso devuelve el número total de barras, que no es una posición correcta.No lo entiendo, devuelve -1, como debería ser.
A juzgar por el código, no hay búsqueda de la barra requerida, se calcula. ¿Y si se rompe el historial?
¿Qué quiere decir con "a juzgar por el código"?
¿Es sólo tu imaginación o lo has estudiado a fondo?
Hace mucho tiempo, pero si no recuerdo mal, sólo se calculaba cuando era apropiado, es decir, cuando el historial no está roto al 100% y no hay agujeros. Esto se verifica fácilmente comprobando la diferencia de tiempo entre barras. A costa de esto se gana en velocidad. Compruébelo si no me cree.
Ahora este código es más rápido que el iBarShift estándar, pero no significativamente (20-50%, antes era 10 veces más rápido). MQ ya ha corregido el código. Así que podemos decir que este código ya no es tan relevante.
No lo entiendo, devuelve -1 como debería.
Este es el código de retorno de la función CopyOpen()
Y aquí falta el cuarto parámetro:
¿Qué quieres decir con "a juzgar por el código"?
¿Es sólo su imaginación o lo ha estudiado a fondo?
Fue hace mucho tiempo, pero si no recuerdo mal, sólo se calculaba cuando procedía, es decir, cuando el historial es 100% ininterrumpido y no hay agujeros. Esto se verifica fácilmente comprobando la diferencia de tiempo entre barras. A costa de esto se gana en velocidad. Compruébelo si no me cree.
Ahora este código es más rápido que el iBarShift estándar, pero no significativamente (20-50%, antes era 10 veces más rápido). MQ ya ha corregido el código. Así que podemos decir que este código ya no es tan relevante.
He utilizado el código de la primera página. No hay ciclos, así que sólo cálculo (excluyendo variantes estúpidas). No digo que sea incorrecto, todo es correcto salvo una excepción.
He utilizado el código de la primera página. No hay bucles, así que sólo cálculo (excluyendo variantes estúpidas). No estoy diciendo que está mal, todo es correcto, salvo una excepción.
No necesita bucles allí, porque se utiliza la función estándar Bars(), y la esencia del algoritmo es minimizar su uso a través de cálculos con datos almacenados de llamadas anteriores a la función en variables estáticas.
Arreglé un error (cambié - por + en la función fBarShift). Resultó estar arreglado en mi código, pero debo haber olvidado publicarlo. Actualizado. Versión 1.04.
El propósito de este código era combatir el error que había en la función Bars(). El aumento de velocidad era un efecto "secundario". Ahora este bug ha desaparecido y han mejorado significativamente la velocidad. Así que ahora no tiene sentido esta librería.