Tiki in tempo reale - pagina 6

 
Andrey Khatimlianskii:

Sostituisci OnBookEvent nel tuo codice con OnTick e confronta il risultato.

Non si possono confrontare i risultati :)

È necessario eseguire entrambi gli EA allo stesso tempo per confrontare i risultati.

Ma so già che sarà lo stesso, MA

ma se eseguo OnTick(), a volte ci sarà un ritardo nei risultati,

cioè non in tempo reale.

 
prostotrader:

Non si possono confrontare i risultati :)

Devi eseguire entrambi gli EA per confrontare i risultati.

Ma so già che sarà lo stesso, MA

solo se è OnTick(), ci sarà un ritardo nei risultati,

cioè non in tempo reale.

Non ci sarà un ritardo. Al contrario, se si sottoscrivono molti strumenti per aggiornare lo stack, OnTick può funzionare più velocemente. Non siate pigri a confrontare.

 
Andrey Khatimlianskii:

Non ci sarà nessun ritardo. Al contrario, se si sottoscrive l'aggiornamento delle azioni su molti strumenti, OnTick può funzionare più velocemente. Non essere troppo pigro per confrontare.

E perché non iscriversi a tutte le puntate che sono possibili?

Potresti inventarti qualcos'altro.

Su un singolo strumento con una singola sottoscrizione di tick, OnBookEvent() viene attivato più spesso di 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!

Arriva un nuovo pacchetto di zecche - OnBookEvent() si attiva.

Se non ti piace la mia versione, scrivi la tua.

Tra l'altro, il risultato è più alto, con 84 tumbler firmati sul serio!

Aggiunto

Qui c'è di più

//+------------------------------------------------------------------+
//|                                                  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!

Aggiunto

E chiudiamo la giornata!

Avete solo fantasie e supposizioni, e

Ho 7 anni di esperienza nella scrittura di robot e nel trading di successo su FORTS +

Ho un codice concreto e funzionante.

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

C'era un errore nel codice.

Pubblicato con correzioni a pagina 5

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

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

Perché non iscriversi a tutti i tumbler possibili?

Si potrebbe pensare a qualcos'altro.

Su uno strumento con una singola sottoscrizione di vetro, OnBookEvent() è attivato più spesso di OnTick()

Che differenza fa quanti eventi OnBookEvent arrivano? Hai detto che quando riceve i tick accadrà prima di OnTick. E ho suggerito di controllare questo, di emettere il tempo di ricezione di un tick là e là (solo non nello stesso EA).


prostotrader:

E finiamola qui!

Avete solo fantasie e supposizioni, e

E ho 7 anni di esperienza nella scrittura di robot e nel trading di successo su FORTS +

Ho un codice specifico che funziona.

Hai l'aplomb che si riverbera in tutti i tuoi messaggi. Perché avete deciso che FORTS può funzionare solo da OnBookEvent - solo voi lo sapete.

Ma il rispetto del codice. Quando troverò il tempo, posterò il mio. Questo non è un compito prioritario.

 
Andrey Khatimlianskii:

Che differenza fa quanti eventi OnBookEvent arrivano? Avete dichiarato che quando un tick viene ricevuto in esso, avverrà prima che in OnTick. E ti ho suggerito di controllare, emettere il tempo di ricevere un tick lì e lì (solo non nello stesso EA).


Hai un aplomb che si riverbera in ogni post. Perché avete deciso che FORTS può funzionare solo da OnBookEvent - solo voi lo sapete.

Ma il rispetto del codice. Quando troverò il tempo, posterò il mio. Questo non è un compito prioritario.

Puoi lavorare su quello che vuoi!

Ho postato la mia soluzione, basata sulla mia esperienza di lavoro su FORTS.

Sarei d'accordo con te se dicessi che sono stato troppofiducioso nel mio comportamento, nel mio discorso.

Sarei d'accordo con te se non avessi esperienza.

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!

Ora del primo OnTick()2020.01.30 19:31:11.112

Ora del secondo OnTick()2020.01.30 19:31:11.802

Cioè, sono passati 690 ms, nel frattempo, tra gli OnTick() di questi 690 ms

OnBookEvent() è stato attivato 15 volte

Pensate che questi fattori scatenanti non abbiano nulla a che fare con le zecche?

Bene, leggete l'aiuto per OnBookEvent()

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

Arriva un nuovo lotto di tick - OnBookEvent() è garantito che si inneschi - questo fornisce l'opportunità di ottenere i tick in tempo reale con CopyTicks().

Mentre con OnTick() potete ottenere solo i tick dalla storia.

Li ricevi tutti e non manca nulla, ma non in tempo reale.

È molto strano che io debba spiegare tutto questo in modo così dettagliato a qualcuno con molta esperienza.

Ancora una volta, ognuno è libero di scegliere la programmazione e i metodi di trading che preferisce!

Aggiunto

C'è un altro punto importante che molte persone dimenticano.

Questa è la velocità con cui l'EA prende una decisione analizzando i dati di input.

Usando OnBookEvent() invece di OnTick(), il mio EA sarà più veloce del tuo.

 
prostotrader:

Ora del primo OnTick()2020.01.30 19:31:11.112

tempo del secondo OnTick()2020.01.30 19:31:11.802

Cioè, sono passati 690 ms, nel frattempo, tra gli OnTick() di questi 690 ms

OnBookEvent() è stato attivato 15 volte

Pensate che questi fattori scatenanti non abbiano nulla a che fare con le zecche?

Si prega di stampare anche i valori delle zecche. Non si può vedere dal log di cui sopra che OnBookEvent ha catturato un cambiamento nella struttura MqlTick.

Mettere il SellLimit al di fuori dello spread creerà un evento OnBookEvent, ma non genererà una negoziazione o un cambiamento di BestBid/BestAsk/BestVolume. Cioè INFO e LAST tick tapes (storia di CopyTicks) non saranno aggiornati.

 
fxsaber:

Stampate anche i valori delle zecche, per favore. Il log di cui sopra non mostra che OnBookEvent ha catturato il cambiamento della struttura MqlTick.

Se SellLimit è impostato al di fuori dello spread, creerà l'evento OnBookEvent, ma non genererà una negoziazione o un cambiamento di BestBid/BestAsk/BestVolume. Cioè INFO e LAST tick tapes (storia di CopyTicks) non saranno aggiornati.

Perché stamparlo?

La prima linea della descrizione di OnBookEvent() dice

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

Perché stamparlo?

La prima linea della descrizione di OnBookEvent() dice

Se misurate quanti eventi BookEvent accadono all'ora e quanti record in CopyTicks, potete trarre una conclusione.

 
fxsaber:

Se si misura quanti eventi BookEvent si verificano ogni ora e quante voci in CopyTicks, si può dedurre.

C'è il codice qui sopra, controllate voi stessi.

C'è un codice funzionante.

Credo che funzioni in tempo reale e certamente più velocemente,

di OnTick().

Qual è il problema? Fai questo, fai quello...

Devi postare il tuo codice funzionante per provare o confutare qualcosa!

Motivazione: