Tiki en tiempo real - página 6

 
Andrey Khatimlianskii:

Sustituya OnBookEvent en su código por OnTick, y compare el resultado.

No se pueden comparar los resultados :)

Es necesario ejecutar ambos EAs al mismo tiempo para comparar los resultados.

Pero ya sé que será lo mismo, PERO

pero si ejecuto OnTick(), a veces habrá un retraso en los resultados,

es decir, no en tiempo real.

 
prostotrader:

No se pueden comparar los resultados :)

Tienes que ejecutar ambos EAs para comparar los resultados.

Pero ya sé que será lo mismo, PERO

sólo si es OnTick(), habrá un retraso en los resultados,

es decir, no en tiempo real.

No habrá ningún retraso. Por el contrario, si se suscribe a muchos instrumentos para actualizar la pila, OnTick puede funcionar más rápido. No tengas pereza de comparar.

 
Andrey Khatimlianskii:

No habrá ningún retraso. Por el contrario, si se suscribe a las actualizaciones de las acciones en muchos instrumentos, OnTick puede trabajar más rápido. No tengas pereza de comparar.

¿Y por qué no suscribir todas las apuestas posibles?

Se te podría ocurrir otra cosa.

En una única herramienta con una única suscripción de ticks, OnBookEvent() se activa más a menudo que OnTick().

2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.930	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.016	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.280	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.392	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!

Llega un nuevo paquete de ticks - se activa OnBookEvent().

Si no te gusta mi versión, escribe la tuya.

Por cierto, el resultado es más alto, ¡con 84 vasos firmados en el real!

Añadido

Aquí hay más

//+------------------------------------------------------------------+
//|                                                  Test_freeze.mq5 |
//|                                     Copyright 2018, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
bool is_book;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    //int fr_level = int(SymbolInfoInteger(Symbol(), SYMBOL_TRADE_FREEZE_LEVEL));
   // Print(__FUNCTION__, ": ", Symbol(), " Freeze level is ", fr_level);
   is_book = MarketBookAdd(Symbol());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  if(is_book == true) MarketBookRelease(Symbol());
}
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnTick()
{
  Print(__FUNCTION__, " Tick is done!");
}
//---
void OnBookEvent(const string &symbol)
{
  if(Symbol() == symbol)
  {
    Print(__FUNCTION__, " Tick is done!");
  }
}


2020.01.30 19:31:11.112 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.113 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.132 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.192 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.199 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.219 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.249 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.261 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.309 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.323 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.414 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.539 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.667 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.703 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.789 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.802 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.809 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.821 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.949 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.950 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.049 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.122 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.201 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.292 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:12.293 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.314 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:12.315 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.336 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.350 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.372 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.412 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.491 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.577 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.740 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.799 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.862 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.992 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!

Añadido

¡Y dejémoslo por hoy!

Sólo tienes fantasías y suposiciones, y

Tengo 7 años de experiencia en la escritura de los robots y el comercio de éxito en FORTS +

Tengo un código de trabajo concreto.

Как заказать торгового робота на MQL5 и MQL4
Как заказать торгового робота на MQL5 и MQL4
  • www.mql5.com
Главным преимуществом торговых терминалов MetaTrader является возможность создания автоматических торговых систем, способных совершать торговые операции без вмешательства трейдера, что позволяет исключить влияние психологии на результаты торговли. Для этого нужно сформулировать торговую стратегию и реализовать ее в виде программы на языке MQL...
 

Había un error en el código.

Publicado con correcciones en la página 5

https://www.mql5.com/ru/forum/331060/page5#comment_14783678

Тики в реальном времени
Тики в реальном времени
  • 2020.01.30
  • www.mql5.com
Всем доброго времени суток. Появилась необходимость протестировать торговый алгоритм на реальных тиках брокера "Открытие...
 
prostotrader:

¿Por qué no apuntarse a todos los bombos posibles?

Puedes pensar en otra cosa.

En una herramienta con una única suscripción de vidrio, OnBookEvent() se activa más a menudo que OnTick()

¿Qué diferencia hay en el número de eventos OnBookEvent que llegan? Has dicho que cuando reciba los ticks ocurrirá antes que OnTick. Y sugerí comprobar esto, para dar salida al tiempo de recepción de un tick allí y allá (sólo que no en el mismo EA).


prostotrader:

¡Y terminemos ahí!

Sólo tienes fantasías y suposiciones, y

Y tengo 7 años de experiencia en la escritura de los robots y el comercio exitoso en FORTS +

Tengo un código de trabajo específico.

Tienes un aplomo que repercute en todos tus mensajes. Por qué ha decidido que FORTS sólo puede funcionar desde OnBookEvent - sólo usted lo sabe.

Pero el respeto al código. Cuando encuentre tiempo, publicaré el mío. Esta no es una tarea prioritaria.

 
Andrey Khatimlianskii:

¿Qué diferencia hay en el número de eventos OnBookEvent que llegan? Has dicho que cuando se reciba un tick en él, ocurrirá antes que en OnTick. Y te sugerí que lo comprobaras, la salida de la hora de recibir una garrapata allí y allá (sólo que no en el mismo EA).


Tienes un aplomo que reverbera en cada post. Por qué ha decidido que FORTS sólo puede funcionar desde OnBookEvent - sólo usted lo sabe.

Pero el respeto al código. Cuando encuentre tiempo, publicaré el mío. Esta no es una tarea prioritaria.

¡Puedes trabajar en lo que quieras!

He publicado mi solución, basada en mi experiencia trabajando en FORTS.

Estaría de acuerdo con usted si dijera que he sido demasiadoconfiado en mi comportamiento, en mi discurso.

Estaría de acuerdo contigo si no tuviera experiencia.

2020.01.30 19:31:11.112 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.113 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.132 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.192 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.199 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.219 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.249 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.261 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.309 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.323 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.414 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.539 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.667 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.703 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.789 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.802 Test_freeze (BR-3.20,M1)        OnTick Tick is done!

Hora del primer OnTick()2020.01.30 19:31:11.112

Hora del segundo OnTick()2020.01.30 19:31:11.802

Es decir, han pasado 690 ms, mientras tanto, entre el OnTick() de estos 690 ms

OnBookEvent() se activó 15 veces

¿Crees que estos desencadenantes no tienen nada que ver con las garrapatas?

Bien, lee la ayuda de OnBookEvent()

События BookEvent никогда не пропускаются и всегда ставятся в очередь, даже если в данный момент еще не закончена обработка предыдущего события BookEvent.
При этом необходимо иметь в виду, что события BookEvent доставляются сами по себе и не несут с собой состояния стакана заявок.
Это означает, что вызов MarketBookGet() из обработчика OnBookEvent() позволяет получить текущее актуальное состояние стакана на момент вызова,
а не то состояние стакана, которое вызвало отправку события BookEvent.
Для гарантированного получения всех уникальных состояний стакана функция OnBookEvent() должна быть максимально быстрой. 

Llega un nuevo lote de ticks - OnBookEvent() está garantizado para disparar - esto proporciona la oportunidad de obtener los ticks en tiempo real con CopyTicks().

Mientras que con OnTick() puedes obtener sólo los ticks del historial.

Los recibes todos y no falta nada, pero no en tiempo real.

Es muy extraño que tenga que explicar todo esto con tanto detalle a alguien con mucha experiencia.

Una vez más, cada uno es libre de elegir la programación y los métodos de negociación que le gusten.

Añadido

Hay otro punto importante que mucha gente olvida.

Es la velocidad con la que el EA toma una decisión al analizar los datos de entrada.

Usando OnBookEvent() en lugar de OnTick(), mi EA será más rápido que el tuyo.

 
prostotrader:

Hora del primer OnTick()2020.01.30 19:31:11.112

hora del segundo OnTick()2020.01.30 19:31:11.802

Es decir, han pasado 690 ms, mientras tanto, entre el OnTick() de estos 690 ms

OnBookEvent() se activó 15 veces

¿Crees que estos desencadenantes no tienen nada que ver con las garrapatas?

Por favor, imprima también los valores de las garrapatas. En el registro anterior no se puede ver que OnBookEvent haya captado un cambio en la estructura de MqlTick.

Poner SellLimit fuera del spread creará un evento OnBookEvent, pero no generará una operación o cambio de BestBid/BestAsk/BestVolume. Es decir, las cintas INFO y LAST tick (historial de CopyTicks) no se actualizarán.

 
fxsaber:

Imprima también los valores de las garrapatas, por favor. El registro anterior no muestra que OnBookEvent haya captado el cambio de la estructura MqlTick.

Si el SellLimit se establece fuera del spread, creará el evento OnBookEvent, pero no generará una operación o un cambio de BestBid/BestAsk/BestVolume. Es decir, las cintas INFO y LAST tick (historial de CopyTicks) no se actualizarán.

¿Por qué imprimirlo?

La primera línea de la descripción de OnBookEvent() dice

Вызывается в индикаторах и экспертах при наступлении события BookEvent.
Функция предназначена для обработки изменений стакана цен (Depth of Market).
 
prostotrader:

¿Por qué imprimirlo?

La primera línea de la descripción de OnBookEvent() dice

Si se mide cuántos eventos BookEvent ocurren en una hora y cuántos registros en CopyTicks, se puede sacar una conclusión.

 
fxsaber:

Si se mide cuántos eventos BookEvent se producen por hora y cuántas entradas en CopyTicks, se puede deducir.

El código está arriba, compruébalo tú mismo.

Hay un código de trabajo.

Creo que funciona en tiempo real y ciertamente más rápido,

que OnTick().

¿Cuál es el problema? Haz esto, haz aquello...

¡Tienes que publicar tu código de trabajo para demostrar o refutar algo!