Discussion of article "The algorithm of ticks’ generation within the strategy tester of the MetaTrader 5 terminal" - page 20

 
Later I will post Dukascopy, alpari, GKFX ticks in a visual form.
 

Forum on trading, automated trading systems and testing trading strategies

Beta version of MetaTrader 4 IDE including new MQL4 compiler and editor

Urain, 2013.09.12 13:18

You naively believe that by trading on higher TFs you get away from the curse of incorrect tick generation, it is not true. Crossing close to a certain level does not depend on the TF. It permeates all timeframes. And on W1 close crosses the same level as on M1.

Here's an example:


Horizontal sections are the best points for opening/closing (in terms of execution), the price is standing, there is enough volume in the market that the market is gradually picking (that's why the price is standing), the risk of getting requotes is minimal.

But the tester will generate this section as a comb of ticks (up down), so in real life you will open on any TF confidently enough (if there is a signal, for example close crossed the indicator line), but in the tester on these sections you will get a lot of false positives and pay 8 spreads, and then after another 100 ticks you will pay another 8 spreads. This is how the generation of false ticks will kill a normal TS, and all the rubbish will remain, and the optimiser will have to choose what to give you as the winning monkey.

By the way, there are many such sites in real life.

Forum on trading, automated trading systems and testing trading strategies.

Beta version of MetaTrader 4 IDE, including new MQL4 compiler and editor.

Urain, 2013.09.12 14:13

There are ticks. In real life, ticks are generated by the event of changing the state of the stack.

That is, there are four types of ticks: bid changed, ask changed, both bid and ask changed, and finally there was no change in prices but the volume in the stack changed.

It is just the fourth type that gives a straight line, and it and changes in ask are inadequately generated by the tester.


To the last post: ...

This is how the generation of false ticks will kill a normal TS, and all the rubbish will remain, and the optimiser will have to choose from it what to give you as the winning monkey.

How exactly do monkeys get ahead... in real life a sharp jump, which will not open, and in the tester a smooth rise in prices that did not exist, on such a rise tester monkeys quite show a profit, although they lose in real life.


Forum on trading, automated trading systems and testing trading strategies.

Beta version of MetaTrader 4 IDE, including new MQL4 compiler and editor.

Urain, 2013.09.12 14:21

I'm not asking now by example, when you write a programme, you think about possible variants.

Now the question is the adequacy of modelling in specific situations. I gave a link to an example, but the situation may well happen on any instrument at any broker.

ZY out of 4 situations leading to tick generation, 2 of them are handled inadequately.

Of the remaining two, the situation with the change of both prices (bid and ask) is not always processed correctly.

For example, the situation with a sharp change in prices leads to the appearance of false prices.

In summary, only one situation is always processed correctly - bid changes.

ntchk




 

Slightly tweaked the Expert Advisor for recording tester ticks from the article.

//+------------------------------------------------------------------+
//|Write_Ticks_mod.mq5 |
//| Copyright Copyright 2010, MetaQuotes Software Corp. | |
//| https://www.mql5.com |
//+------------------------------------------------------------------+

input datetime start = D'2013.09.06 14:29:00';
input datetime end   = D'2013.09.06 14:31:00';

//+------------------------------------------------------------------+
//| Expert tick function|
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   datetime time=TimeCurrent();
//---
   SymbolInfoTick(Symbol(),tick);
   //Print(time,tick.bid);
   Print(time,", ",tick.bid,", ",tick.ask); // added ask
//---
   if(time>end) ExpertRemove();
//---
  }


http://www.gkfx.ru/trade_specs/tick_history.html

http://www.dukascopy.com/swiss/russian/marketwatch/historical/

https://www.alpari.ru/ru/login/ (ticks in my personal cabinet), http://ticks.alpari.org/


All files + xlsx in the trailer

 

Свеча в 14:30 (время в MetaTrader 5) объёмом в 39 тиков, в альпари она равна 86 на ECN и 136 тиков на стандарт,

but it is absolutely not important (number of ticks), because the principle of tick generation will be the same, just the ticks will be denser.


In the MetaTrader 5 tester, you can see that the price on this candle monotonically, evenly and without jerks for 36 seconds rises to the maximum, then there is a small pullback.

And on the futures (stock ticks) you can see that the price jumped sharply, in a fraction of a second, and then the normal trading started.


On other news/statistics with sharp jumps of quotations the principle will be the same.

https://www.mql5.com/ru/forum/1031/page19#comment_597854


The difference between real FOREX and futures ticks is quite small because there is arbitrage between them and there is filtering and aggregation of ticks on FOREX.

+ When making real deals the delay in execution of orders is different, because at some futures brokers all orders are stored on the exchange and are executed in several microseconds unlike FOREX.

https://www.mql5.com/ru/forum/10454/page88#comment_584876


This is also why the arbitrary delay (option in the tester) is not relevant, because the exact time (milliseconds, seconds) of forming highs or lows or pullbacks within the M1 candlestick is not taken into account when generating tester ticks.

Or it (arbitrary delay) should be set manually more than 1 minute, but there is no such possibility (again there will be a decrease in accuracy in other cases).

Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5"
Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5"
  • www.mql5.com
Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5".
 
Can you give us a sample of code on the algorithm of ticks’ generation. I am very curious about this algorithm and How calculated the time corresponding each Tick generated by the Algorithm of Ticks’ Generation? Thanks!!!
 
Hi guys, I think I need some help.

I have an indicator for micro scalping. It gives very good results on the Tester M1 time frame - Every tick
When it goes live the results are poor!

After banging my head against the wall for several days, I came down to the conclusions that the difference is due to this "algorithm of ticks’ generation".

Any suggestions?
For example, could I filter the live data? if yes, how?

thanks for your help.

ugo
 
ugo:
Hi guys, I think I need some help.

I have an indicator for micro scalping. It gives very good results on the Tester M1 time frame - Every tick
When it goes live the results are poor!

After banging my head against the wall for several days, I came down to the conclusions that the difference is due to this "algorithm of ticks’ generation".

Any suggestions?
For example, could I filter the live data? if yes, how?

thanks for your help.

ugo
Scalper (relying on tick data) are probably not testable with the Strategy Tester.
 
angevoyageur:
Scalper (relying on tick data) are probably not testable with the Strategy Tester.

If you do not use any additional indicators you could catch the auto generated ticks from the saved history bars, throw them away and insert the ticks for the same minute from a previous saved tick feed.

A binary tick feed saved to disc takes about 50 MBytes for one currency  for one week so I think that only small periods are testable (if you do have to save your own tick data and cannot get ticks data from other sources).

But this may be enough to verify your algorithms.

Good luck, ugo58

 
ugo58:

If you do not use any additional indicators you could catch the auto generated ticks from the saved history bars, throw them away and insert the ticks for the same minute from a previous saved tick feed.

A binary tick feed saved to disc takes about 50 MBytes for one currency  for one week so I think that only small periods are testable (if you do have to save your own tick data and cannot get ticks data from other sources).

But this may be enough to verify your algorithms.

Good luck, ugo58

Hi, thanks to you all!

Not sure I understand: " ... insert the ticks for the same minute". Do you mean to manually see what were the real tick values at the same opening and closing times or there is a way to run the Strategy Tester from a disk saved history? I undersood from angevoyageur that this is not possibile .

ugo

 

Right, the MQL5 strategy tester does not allow the use of a different history than the prices provided by the broker. But if you program your own EA you could handle this as long as you do not need any prefabricated indicators.

With the new MQL4 as far as I understand you could write code identical to MQL5. If you take care of the different way of order handling you could test there your EA with a history provided by you. 

 ugo58