![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Cuando no es cero Desde dentro CopyTicks está buscando (probablemente búsqueda binaria) lugar para empezar - índice en la base interna.
Por favor, añada una función que devuelva el índice en la base de datos por tiempo. Entonces, esta tarea se podrá resolver de forma óptima
¿Cuál es el algoritmo óptimo (más rápido) para obtener los ticks de_tiempo a_tiempo?
Por una buena razón, el tema "¿Qué es una garrapata?" ha sido eliminado. Daré algunas de mis respuestas a partir de la historia sobreviviente
В парадигме MT тик - это то, что пришло от биржи. Единица стрима(-ов). Поэтому два подряд идущих тика могут полностью совпадать (MqlTick), но при этом не обозначать одно и то же событие. Помимо MqlTick-данных есть еще номер тика, который не показывается в MT. И есть MT-нюанс с тиками, когда сама история тиков переписывается задним числом из-за нескольких источников получения тиков.
dos ticks seguidos (que provocan un evento Tick/Calculate) pueden ser idénticos en la estructura MqlTick (todos los precios y volúmenes y el tiempo y las banderas son iguales), pero en realidad son diferentes. Bid/Ask es siempre un múltiplo de TickSize. Last (no en la bolsa) puede no ser un múltiplo de TickSize. TickSize puede ser muchas veces mayor que Point (mira RTS, por ejemplo). Así que no es del todo correcto hablar de Punto en este caso.
Puede ser útil. SymbolInfoTick es una función no sincronizada. Esto significa que puede devolver diferentes ticks en diferentes lugares de OnTick. Además, aunque llame a SymbolInfoTick al principio de OnTick, el tick resultante no será el iniciador del evento Tick para el que se activa OnTick. Los campos de su estructura MqlTick no serán iguales al tick procedente de la bolsa, ya que estos campos son sintetizados por el propio terminal y son iguales a los valores de Marketwatch.
{
static bool FirstRun = true;
if (FirstRun)
{
MqlTick Ticks[1];
if (SymbolInfoTick(_Symbol, Ticks[0]))
Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
FirstRun = false;
}
}
Resultado
Debería devolver cero, pero devuelve uno. Ticks[] no cambia. ¡Bicho!
Lanzamiento de un Asesor Experto en el Probador de Estrategias
{
static bool FirstRun = true;
if (FirstRun)
{
MqlTick Ticks[1];
if (SymbolInfoTick(_Symbol, Ticks[0]))
Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
FirstRun = false;
}
}
Resultado
Debería devolver cero, pero devuelve uno. En este caso, Ticks[] no cambia. ¡Bicho!
¿Podría ser el fin de semana?
De la ayuda. CopyTicks La función obtiene el ticks_array de los ticks acumulados por el terminal durante la sesión de trabajo actual.
¿Podría ser el fin de semana?
Del archivo de ayuda. CopyTicks La función obtiene los ticks acumulados por el terminal durante la sesión de trabajo actual en la matriz ticks_array.
Problema de rendimiento de CopyTicks.
Robo
BCS
Se trata de datos de indicadores de garrapatas. En ambos casos hay 2-3 mil garrapatas cargadas. Pero en los robots es más de un orden de magnitud más rápido.
En el mercado de divisas se observaron las mismas velocidades durante el día - el mercado era más ágil entonces. Copitix parece estar frenando una vigilancia activa del mercado.
El único gráfico y el único indicador en ambos casos. Y kopitix seguro que ya tenía las cotizaciones subidas en la base/caché.
1) ¿las pilas estaban en ambos?
2) ¿los ticks de comercio/información estaban separados en sus hilos originales? Los hilos complejos requieren un recálculo y la emisión simple
3) ¿cuál era la petición real?
4) ¿en cuántas consultas se validaron los resultados? Se han seguido y se han cumplido exactamente las normas de la prueba: contabilización del arranque en frío, descarte de los valores atípicos, repetibilidad de los resultados por serie, código de reproducción.
En general, los resultados numéricos deben ir precedidos de un código exacto para que cualquiera pueda repetirlos. De lo contrario, no tiene sentido discutirlo.
1) ¿las pilas estaban en ambos?
2) ¿los ticks de comercio/información estaban separados en sus hilos originales? Los hilos complejos requieren un recálculo y la emisión simple
3) ¿cuál era la petición real?
4) ¿en cuántas consultas se validaron los resultados? Se han seguido y se han cumplido exactamente las normas de la prueba: contabilización del arranque en frío, descarte de los valores atípicos, repetibilidad de los resultados por serie, código de reproducción.
En general, los resultados numéricos deben ir precedidos de un código exacto para que cualquiera pueda repetirlos. Si no, no tiene sentido discutirlo.
Te he dado un enlace con el código exacto.
Lo comprobaremos.
Pero sobre la falta de un vaso en uno de los servidores, hay grandes dudas. No importa que el bombo no esté renderizado. Si un símbolo lo tiene, sus datos están siempre presentes y un algoritmo de emisión más complejo funciona cuando se solicitan ticks.