Custom symbols. Errors, bugs, questions, suggestions. - page 3

 

Please do not show the current zero price of the custom symbol on the chart unless a tick has been thrown into the Market Watch


 

Bug 06.

The tester on some custom symbols behaves completely inadequately in real ticks mode.


Attached is a file with json and tick/bar history. Create a symbol based on these files and run the test on real ticks. The output will be this mess.

TESTER_EURUSD.rann_RannForex: history data begins from 2019.03.01 00:00
TESTER_EURUSD.rann_RannForex: ticks data begins from 2019.03.01 00:00
agent process started
connecting to 127.0.0.1:3000
connected
authorized (agent build 2007)
TESTER_EURUSD.rann_RannForex,M1 (MetaQuotes-Beta): testing of Experts\fxsaber\TesterTickCheck.ex5 from 2019.03.01 00:00 to 2019.03.14 00:00
common synchronization completed
TESTER_EURUSD.rann_RannForex: history for 2018 year synchronized
TESTER_EURUSD.rann_RannForex: ticks synchronized already [87 bytes]
MetaTester 5 started on 127.0.0.1:3000
initialization finished
login (build 2007)
3860 bytes of account info loaded
1482 bytes of tester parameters loaded
1724 bytes of input parameters loaded
675 bytes of symbols list loaded
expert file added: Experts\fxsaber\TesterTickCheck.ex5. 21663 bytes loaded
5659 Mb available, 70 blocks set for ticks generating
initial deposit 10000.00 EUR, leverage 1:100
successfully initialized
22 Kb of total initialization data received
Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
TESTER_EURUSD.rann_RannForex: symbol to be synchronized
TESTER_EURUSD.rann_RannForex: symbol synchronized, 3464 bytes of symbol info received
TESTER_EURUSD.rann_RannForex: load 71 bytes of history data to synchronize in 0:00:00.000
TESTER_EURUSD.rann_RannForex: history synchronized from 2019.03.01 to 2019.03.13
TESTER_EURUSD.rann_RannForex: ticks synchronization started
TESTER_EURUSD.rann_RannForex: load 78 bytes of tick data to synchronize in 0:00:00.000
TESTER_EURUSD.rann_RannForex: history ticks synchronized from 2019.03.01 to 2019.03.13
TESTER_EURUSD.rann_RannForex: start time changed to 2019.03.02 00:00 to provide data at beginning
TESTER_EURUSD.rann_RannForex,M1: history cache allocated for 13776 bars and contains 1429 bars from 2019.03.01 00:00 to 2019.03.01 23:54
TESTER_EURUSD.rann_RannForex,M1: history begins from 2019.03.01 00:00
TESTER_EURUSD.rann_RannForex,M1 (MetaQuotes-Beta): generating based on real ticks
TESTER_EURUSD.rann_RannForex,M1: testing of Experts\fxsaber\TesterTickCheck.ex5 from 2019.03.01 00:00 to 2019.03.14 00:00 started with inputs:
  BeginTime=1551484800
  EndTime=1552176000
  inFlags=false
TESTER_EURUSD.rann_RannForex : 2019.03.04 23:59 - real ticks absent for 2 minutes out of 1430 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.04 23:59 - real ticks discarded for 1425 minutes out of 1430 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.04 00:22 - 2019.03.04 23:59  4 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.04 23:59 - 62003 tick prices mismatch for 1428 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.05 23:59 - real ticks absent for 2 minutes out of 1437 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.05 23:59 - real ticks discarded for 1418 minutes out of 1437 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.05 00:29 - 2019.03.05 23:59  2 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.05 23:59 - 56107 tick prices mismatch for 1421 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.06 23:59 - real ticks absent for 1 minutes out of 1436 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.06 23:59 - real ticks discarded for 1428 minutes out of 1436 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.06 05:18 - 2019.03.06 23:59  3 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.06 23:59 - 67510 tick prices mismatch for 1431 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.07 23:59 - real ticks absent for 2 minutes out of 1436 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.07 23:59 - real ticks discarded for 1427 minutes out of 1436 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.07 01:40 - 2019.03.07 23:59  4 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.07 23:59 - 67626 tick prices mismatch for 1428 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.08 23:59 - real ticks absent for 6 minutes out of 1435 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.08 23:59 - real ticks discarded for 1423 minutes out of 1435 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.08 23:59 - 70706 tick prices mismatch for 1425 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.11 23:59 - real ticks absent for 2 minutes out of 1433 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.11 23:59 - real ticks discarded for 1426 minutes out of 1433 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.11 00:17 - 2019.03.11 23:59  2 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.11 23:59 - 54732 tick prices mismatch for 1428 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.12 23:59 - real ticks absent for 1 minutes out of 1435 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.12 23:59 - real ticks discarded for 1429 minutes out of 1435 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.12 04:14 - 2019.03.12 23:59  5 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.12 23:59 - 57023 tick prices mismatch for 1429 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.13 23:59 - real ticks discarded for 1427 minutes out of 1437 total minute bars within a day
TESTER_EURUSD.rann_RannForex : 2019.03.13 00:35 - 2019.03.13 23:59  3 minute bars absent within a day while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.13 23:59 - 54368 tick prices mismatch for 1432 minute bars
TESTER_EURUSD.rann_RannForex : real ticks begin from 2019.03.01 00:00:00
TESTER_EURUSD.rann_RannForex : 2019.03.02 00:00 - 2019.03.14 00:00  real ticks absent for 16 minutes of 11479 total minute bars, every tick generation used
TESTER_EURUSD.rann_RannForex : 2019.03.02 00:00 - 2019.03.14 00:00  real ticks discarded for 11403 minutes of 11479 total minute bars, every tick generation used
TESTER_EURUSD.rann_RannForex : 2019.03.02 00:00 - 2019.03.14 00:00  23 minute bars absent in total while real ticks present
TESTER_EURUSD.rann_RannForex : 2019.03.02 00:00 - 2019.03.14 00:00  tick volumes not matched for 51 minute bars
TESTER_EURUSD.rann_RannForex : 2019.03.02 00:00 - 2019.03.14 00:00  tick prices of 490075 ticks not matched for 11422 minute bars
final balance 10000.00 EUR
TESTER_EURUSD.rann_RannForex,M1: 761877 ticks, 11470 bars generated. Test passed in 0:00:02.019 (including ticks preprocessing 0:00:00.297).
222 Mb memory used including 0.94 Mb of history data, 64 Mb of tick data
log file "C:\Program Files\ICMarkets - MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20190314.log" written
connection closed

But what's even cooler, the ticks will not be fed from the imported history, but from the ceiling.

Interestingly, if this history data is imported into another json, the tester will work correctly on it.

Please correct it, because it turns out that Tester is sending absolutely wrong ticks. And then you wonder why the results are different.


This trailer contains an Expert Advisor that helps me check correctness of Tester's ticks comparing them with those in Terminal. I have never thought it would come to this.

 
fxsaber:
Custom symbols on the real are for information only, not for trading. You can trade on them only in the Tester.
How do they work in the Strategy Tester?

For example EURUSD-GBPUSD

If I buy this synthetic candlestick,
EURUSD will be bought at EURUSD Ask price, and GBPUSD will be sold at GBPUSD Bid price ?
 
multiplicator:
How do they work in the Strategy Tester?

For example: EURUSD-GBPUSD

If I buy this synthetic,
then EURUSD will be bought at EURUSD ask price and GBPUSD will be sold at GBPUSD bid price?

The given synthetic formula only calculates its prices.

Trading in the Tester goes by these calculated prices and has nothing to do with how they were calculated.

 
fxsaber:

The given synthetic formula only calculates its prices.

Trading in the Tester is done at these calculated prices and has nothing to do with how they were calculated.

So spreads will not be taken into account during testing?
 
multiplicator:
so spreads will not be taken into account in the test?

There will be full symbol testing with their previously calculated prices.

 
fxsaber:

There will be a full character test with its previously calculated prices.

Meaning,

if I use the EURUSD-GBPUSD synthetic,

it will calculate Ask and Bid prices:

Bid - bid(EURUSD)-bid(GBPUSD)
Ask - ask(EURUSD)-ask(GBPUSD)


And then, when I execute the buy operation, I will open at Ask(EURUSD)-ask(GBPUSD) price.


But this is not right!
Because if I want to buy this synthetic, then EURUSD should be bought at Ask price and GBPUSD should be sold at Bid price.


 
multiplicator:

But that's not right!

"Trading" in Tester synthetics is not what you have imagined it to be.

 
fxsaber:

"Trading in" synthetics in the Tester is not something you have imagined.

I didn't make it up. it has to be that way, normally.

Otherwise, what the hell is it for if it doesn't take spreads into account?
Reason: