CopyTicksRange () no funciona correctamente en MQL5. a - página 4

 
Alexey Viktorov #:

Una línea de vuelta al diálogo:

La función debe funcionar como los desarrolladores pretenden, no como los usuarios quieren que funcione. Uno quiere una cosa, otro quiere otra y otro quiere tonterías.

Esta es la razón por la que los desarrolladores no te responden. Y no soy un abogado, estoy tratando de llevarle una simple verdad, no cargue a otros si no puede hacerlo usted mismo. Tú, en cambio, has encendido el "no......... ceder..." y te estás inventando mitos sobre las muletas.

Eso es realmente TODO... Los promotores no te responderán... no te hagas ilusiones.

Sé que lo harás, así que escribiré. La función debe funcionar como se describe en la documentación y nada más. Si hay matices, escríbelos en la documentación y no tendrás problemas.

No tengo ningún sentido para convencerte de nada. Será mejor que los desarrolladores sepan verdades sencillas. Estoy seguro de que nunca has trabajado en un equipo de programadores: eres el típico programador autodidacta sin una base sólida de conocimientos. Mientras he trabajado y gestionado proyectos serios. Solíamos despedir a la gente por comunicarnos con verdades comunes no respaldadas por la experiencia y el conocimiento. No te necesito como intermediario para comunicarte con los desarrolladores. Me contestaron hace unos dos años: "haz muletas, aquí todo funciona". Espero que el autor de esta frase haya sido ya despedido porque los programadores no son Dios y suelen cometer errores.

Teníamos un puesto de probador - no se puede imaginar cuántos errores se pueden encontrar en un par de páginas de código en un programador demasiado confiado e inexperto.

 
RusPro #:

En tu ejemplo funciona, porque las condiciones de llamada son diferentes - la hora de inicio es siempre igual al inicio de la barra existente (es decir, se sabe que existen ticks) y se lee todo el historial de ticks de la última barra a la vez.

Por cierto, una de mis muletas funciona de forma similar a la tuya. También obtengo el tiempo de las barras existentes al principio, y luego las divido en segmentos continuos máximos y obtengo los ticks. Pero ocurre otro problema - si no hay suficiente matriz de recepción para los datos, la reanudación del resto es un baile de pandereta (del que he hablado más arriba).

Además, trabajar con matrices dinámicas es mucho más lento y hay que tener en cuenta la posible fragmentación de la memoria.

¿Has leído todos los documentos hasta el final?

Примечание

Функция CopyTicksRange() предназначена для запроса тиков из строго указанного диапазона, например, за конкретный день истории.

Y todo funciona rápido con las matrices dinámicas.

Compara tu ping y olvídate de la velocidad de las matrices dyn. :)

No es un canal dedicado a MMB

Añadido por

Si necesitas velocidad, entonces por qué te "sentaste" en BCS, esos u--holes limitan deliberadamente la velocidad de la entrada estándar de FORTS

de 30 transacciones por seg. a 10 tr. por seg.

Añadido

Y es mejor escribir en la sección "Intercambio de divisas"

 
RusPro #:

En forex, los mismos errores. Broker Alpari, cuenta de prueba. Símbolo del EURUSD

El símbolo personalizado está hecho sobre la base de EURUSD, sólo dejó el nombre también

Si estamos hablando del funcionamiento de CopyTicks en el Probador de Estrategias, soy un incompetente, porque nunca he solicitado un historial de ticks en el Probador de Estrategias.

Sólo puedo hablar del modo batalla.

 
prostotrader #:

¿Lees los documentos hasta el final?

Sí, leo las descripciones de las funciones hasta el final y, si tengo dudas, también busco en los foros. Cada uno tiene una noción diferente de la rapidez. La dinámica es más lenta por definición porque hay una redistribución constante de la memoria. La segunda desventaja es la fragmentación - a veces te equivocas con la dinámica y entonces la memoria no es suficiente para cerrar el terminal :)))

El ping no tiene nada que ver, después de la primera descarga, los ticks se dan ya desde la base, en teoría, claro :) Me enseñaron que el programa debe ser acelerado por la optimización, pero no por la base de hardware - esto es automático. Y qué diferencia hay, cuál es la conexión - hoy es una, mañana otra - no depende del algoritmo.

Tengo mi propio corredor, por eso trabajo con ellos desde hace más de un año. Mi tarea ahora es probar las matemáticas en los ticks, no en el trading ni en el freelance.

 
RusPro #:

Además, trabajar con matrices dinámicas es mucho más lento y hay que tener en cuenta la posible fragmentación de la memoria.

Por favor, proporcione medidas para esta afirmación. Presto mucha atención a los problemas de rendimiento en los Asesores Expertos.

 
fxsaber #:

Si estamos hablando del funcionamiento de CopyTicks en el Probador, no soy competente, porque nunca he solicitado el historial de ticks en el Probador.

Sólo puedo hablar del modo de batalla.

No hablo del probador, sino de una cuenta demo. Porque es problemático comprobar en Alpari en una cuenta real en un fin de semana.

 
RusPro #:

No me refiero al probador, sino a la cuenta demo. El probador, no el probador, sino la cuenta demo.

Sí, si pides ticks en un intervalo en el que no había ninguno, no da cero, sino para todo el día.

Da la sensación de que está hecho a propósito. Pero no sé para qué.


La investigación ha demostrado que el problema se produce cuando From llega a la hora después del último tick de la semana comercial. Creo que es un error.

En los símbolos reales y personalizados se comporta de forma idéntica.


Obviamente, si solicito ticks desde el último tick de la solicitud anterior, el problema no se producirá. Pero si se realiza una solicitud con SymbolInfoTick_time_msc, puede producirse el error. Por lo tanto, es mejor no hacerlo todavía.

 

fxsaber #:

Pero si se hace una consulta con SymbolInfoTick_time_msc, el error puede aparecer. Por eso es mejor no hacerlo todavía.

¿Cuántas veces se ha probado?

Si no le gusta SymbolInfoTick, utilice

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, поставьте 1
   );
CopyTicks

de

[en] Fecha a partir de la cual se solicitan las garrapatas. Especificado en milisegundos desde el 01.01.1970. Si el parámetro from=0, se pasa la última cuenta de ticks.

 
Alexey Viktorov #:

¿Cuántas veces se ha comprobado esto?

No me gusta el uso de SymbolInfoTick

Gracias, es genial para trabajar con garrapatas. Eso no invalida la existencia del fallo.

 
Alexey Viktorov #:

¿Cuántas veces se ha comprobado esto?

No me gusta el uso de SymbolInfoTick

¡se ha probado durante dos años!

¡Qué terquedad! Lee lo que se ha escrito más arriba: CopyTicks también tiene fallos. Si te gusta buscar maneras de hacer que una función con errores funcione o encontrar soluciones con errores, entonces no te molestes - no se trata de eso

Razón de la queja: