Tiki en tiempo real - página 13

 
Roman:

O tal vez para el tiempo real, en lugar de

utilice

¿Por qué copiar cuando se puede obtener inmediatamente el precio actual?
En teoría, CopyTicks tiene en sus entrañas comprobaciones extra de parámetros, aumentando así la longitud del código en el cuerpo de la función.
Pero SymbolInfoTick no tiene parámetros adicionales, y en teoría, la implementación de esta función debería contener menos código.
Menos código significa una ejecución más rápida.

Lo único malo es que la función SymbolInfoTick no tiene una documentación detallada similar a la de CopyTicks y no está completamente claro cómo funciona.
¿Se almacena en caché o devuelve los datos en bruto inmediatamente?

Sólo el cristal está disponible inmediatamente, todo lo demás se comprueba adicionalmente.

Nadie revelará la documentación detallada: es un secreto tras los 7 sellos ))))

 
Sergey Chalyshev:

Sólo se entrega el cristal directamente, todo lo demás se comprueba adicionalmente.

Nadie revelará la documentación detallada: es un secreto tras siete sellos ))))

SymbolInfoTick() en principio no puede dar la pila, creo que nos referimos a BestBid, BestAsk.
¿No está la estructura de MqlTick completamente llena de BestBid, BestAsk?
¿Qué le hace pensar que otros miembros de la estructura necesitan un control adicional?

struct MqlTick 
{ 
   datetime     time;          // Время последнего обновления цен 
   double       bid;           // Текущая цена Bid 
   double       ask;           // Текущая цена Ask 
   double       last;          // Текущая цена последней сделки (Last) 
   ulong        volume;        // Объем для текущей цены Last 
   long         time_msc;      // Время последнего обновления цен в миллисекундах 
   uint         flags;         // Флаги тиков 
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью 
};

Si desea obtener el vaso completo para todos los bancos, debe utilizar

bool  MarketBookGet( 
   string        symbol,     // символ 
   MqlBookInfo&  book[]      // ссылка на массив 
   );

Devuelve una matriz de estructuras MqlBookInfo que contienen entradas del símbolo especificado.

 
Roman:

SymbolInfoTick() no puede dar la copa, tal vez te refieres a BestBid, BestAsk.
¿No está la estructura de MqlTick completamente llena de BestBid, BestAsk?
¿Por qué cree que el resto de miembros de la estructura necesitan un control adicional?

Y si quieres obtener el tumblr completo de todas las bandas, debes usar

Devuelve una matriz de estructuras MqlBookInfo, que contiene registros de una pila de precios de un símbolo especificado.

No sé a qué te refieres.

OnBook y OnTick son hilos diferentes, si MQ los sincroniza es muy malo.

A juzgar por la imagen que he dado más arriba no están totalmente sincronizados.

La prueba de fxsaber también inspira confianza:

El resultado es malo: en OnTick/OnBookEvent, los ticks recibidos usando diferentes métodos muy a menudo no coinciden dentro de una función On. Y no se puede saber qué método para conseguir la garrapata es relevante y cuál no. Una terrible vaguedad.

Entonces, quién quiere qué:

- si necesita mejores precios - OnBook,

- si necesitas un trozo de ofertas - CopyTick,

- y si no necesitas nada - OnTick, puede saltar ticks y retrasar el flujo de información, porque trabaja en un proceso en línea con otras funciones On.


p.d. Todo lo que he escrito aquí se refiere sólo a las cuentas de cambio, a los forexistas no les importa (no hay diferencia), los forexistas pasan de largo.

fxsaber
fxsaber
  • www.mql5.com
Опубликовал пост TesterPortfolio - портфель ТС Опубликовал пост "Out-Of-Sample" - где расположить, справа или слева? Когда-то в паблике столкнулся с мнением, что OOS должен располагаться только справа. Т.е. расположение его слева от интервала Оптимизации - ошибка. Я с этим был категорически не согласен, т.к. не видел разницы. Теперь вижу...
 
Andrey Khatimlianskii:

Por un momento ha parecido que tienes ganas de entender y eso te ayudará a domar tu orgullo.
No, sólo lo parecía.

La pregunta está resuelta, y cualquiera puede revisar los códigos tuyos, los de fxsaber y los míos y sacar conclusiones.
Contigo dejo de dialogar, no viene nada más que gritos de tu parte, y al recibir la información tu cerebro no funciona en absoluto.

Buena suerte en los FORTS.

¡Andrey!

Te ofendes erróneamente por mis comentarios sobre el FOREX, no tienen nada que ver contigo.

Siempre hemos tenido diálogos constructivos, pero si te ha ofendido de alguna manera, entonces

Le pido disculpas personalmente.

 
Sergey Chalyshev:

No sé a qué te refieres.

OnBook y OnTick son hilos diferentes, si MQ los sincroniza es una pena.


De mis pruebas recientes (después de arreglar un error en el código),

está muy claro que OnTick() se activa antes o al mismo tiempo que OnBookEvent(),

pero en las impresoras OnTick() es siempre la primera.

Parece que cuando llega una nueva tanda de garrapatas,

entonces la función que los maneja primero "tira" de OnTick() y luego "cuela" los datos

donde tiene que ir :)

 
Roman:

O tal vez para el tiempo real, en lugar de

utilice

¿Por qué copiar cuando puedes obtener el precio actual inmediatamente?

¿Qué mercado le interesa?

 
prostotrader:

De mis pruebas recientes (después de arreglar un error en el código),

está muy claro que OnTick() se activa antes o al mismo tiempo que OnBookEvent(),

pero en las impresoras OnTick() es siempre la primera.

Parece que cuando llega una nueva tanda de garrapatas,

entonces la función que los maneja primero "tira" de OnTick() y luego "envía" los datos

donde tiene que ir :)

Sí, más o menos lo mismo.

El terminal es asíncrono de un solo hilo, procesa todos los eventos por turnos.

Para la pureza del experimento, que es más rápido OnBook o OnTick, debemos ejecutar dos terminales en un corredor.

En un EA sóloOnBook sinOnTick .

En el otro,sóloOnTick sin OnBook.

Y sumar los precios con la hora local en milisegundos en un archivo. Entonces se verá la verdadera diferencia.

De lo contrario, sin tiempo de almacenamiento, es imposible entender la diferencia.

 
Sergey Chalyshev:

Sí, eso es lo mismo que pensar.

El terminal es asíncrono de un solo hilo, maneja todos los eventos por turnos.

Para la pureza del experimento, que es más rápido OnBook o OnTick, debemos ejecutar dos terminales en un corredor.

En un EA sóloOnBook sinOnTick .

En el otro,sóloOnTick sin OnBook.

Y sumar los precios con la hora local en milisegundos en un archivo. Entonces se verá la verdadera diferencia.

De lo contrario, sin tiempo de almacenamiento, no se puede entender la diferencia.

No hay problema, intentaré ejecutarlo el lunes (tengo tres terminales en real).

 
Sergey Chalyshev:

No sé a qué te refieres.

OnBook y OnTick son hilos diferentes, si MQ los ha sincronizado es una pena.

A juzgar por la imagen que he dado más arriba, no están totalmente sincronizados.

También la prueba de fxsaber inspira confianza:

Entonces, quién quiere qué:

- si necesita mejores precios - OnBook,

- si necesitas un trozo de ofertas - CopyTick,

- y si no necesita nada - OnTick, puede saltar ticks y retrasar el flujo de información, porque trabaja en un proceso en línea con otras funciones On.


p.s. Todo lo que he escrito aquí se refiere sólo a las cuentas de cambio, a los comerciantes de divisas no les importa (no hay diferencia), los comerciantes de divisas pasan.

Me refería aSymbolInfoTick, has escrito que " Sólo la copa se da inmediatamente, el resto se comprueba adicionalmente".
Te he dado la estructura de MqlTick para que veas en qué consiste, no hay copa, sólo mejores precios. Y no hay controles adicionales.
Por lo tanto, me sorprende lo que ha escrito, tal vez haya expresado incorrectamente la idea.
El OnBook y el OnTick son sockets diferentes, porque en cualquier protocolo de intercambio las operaciones se realizan en un socket, y el Level2 (mercado) en otro.
Esto significa que sólo se envía al socket OnTick la mejor oferta, la última oferta, etc. Por lo tanto el OnTick tiene su propio manejador para este socket.
Para el nivel 2, la toma de corriente es diferente y, por lo tanto, tiene un gestor diferente. En idea, no deben sincronizarse forzosamente en el lado del terminal.

Muy bien, usamos exactamente lo que queremos, las operaciones enSymbolInfoTick o CopyTick, vidrio en MarketBookGet.

 
prostotrader:

¿Qué mercado le interesa?

No utilizo el dealing forex.
En el ejemplosólo se obtiene un último elemento de la estructura deCopyTick, de hecho, sólo los mejores precios.
Así que pensé, por qué copiar los datos de un espacio de memoria a otro,
, cuando hay
SymbolInfoTick que da los mejores precios sin copiar en ninguna parte. Puede que me equivoque sobre cómo funcionan las funciones, es sólo una suposición mía.
Aunque es posible que estas dos funciones trabajen de la misma manera, la única diferencia es que
CopyTick puede solicitar un rango de ticks.
Y
es innecesarioutilizar bucles para procesar los ticks.

Razón de la queja: