Библиотеки: Virtual - страница 7

 
Sergey Seriy:

Высылаю лог-файл одиночного прогона в режиме "все тики".

Из Вашего лога

CP      0       19:41:35.119    127.0.0.1       login (build 1940)
RH      0       19:41:35.123    Tester  account info found with currency USD
JN      0       19:41:35.149    Tester  expert file added: Experts\fxsaber\TestEA.ex5. 210126 bytes loaded
LP      0       19:41:35.228    Tester  initial deposit 5000.00 USD, leverage 1:100
IE      0       19:41:35.233    Tester  successfully initialized
DN      0       19:41:35.233    Network 205 Kb of total initialization data received
HF      0       19:41:35.234    Tester  Intel Pentium  N3540 @ 2.16GHz, 8071 MB
LP      0       19:41:35.914    History USDCHF: load 27 bytes of history data to synchronize in 0:00:00.000
LD      0       19:41:35.914    History USDCHF: history synchronized from 2014.01.01 to 2018.11.09
NJ      0       19:41:36.684    History USDCHF,M5: history cache allocated for 214971 bars and contains 134871 bars from 2016.01.04 00:00 to 2017.10.19 23:55
HH      0       19:41:36.702    History USDCHF,M5: history begins from 2016.01.04 00:00
FL      0       19:41:36.705    Tester  USDCHF,M5 (ICMarkets-Demo): every tick generating
EE      0       19:41:36.705    Tester  USDCHF,M5: testing of Experts\fxsaber\TestEA.ex5 from 2017.10.20 00:00 to 2018.11.11 00:00 started with inputs:
LH      0       19:41:36.705    Tester    VirtualTester=true
RS      0       19:41:36.705    Tester    ReverseDeals=false
KJ      0       19:41:36.705    Tester    inAmountDeleteIntervals=0
IP      0       19:41:36.705    Tester    inMinPips=40
OM      0       19:41:36.705    Tester    inPeriodAvg=5
DD      0       19:41:36.705    Tester    inPeriodSize=3
LM      0       19:41:36.705    Tester    inMultSize=5
KM      0       19:41:36.705    Tester    inAddSize=30
DJ      0       19:42:05.146    TestEA (USDCHF,M5)      2018.11.09 23:56:59   
KS      0       19:42:05.146    TestEA (USDCHF,M5)      2018.11.09 23:56:59   BestInterval Action(true - single pass & MT4-style is required) = false
DS      0       19:42:05.146    Tester  final balance 5000.00 USD
HE      0       19:42:05.146    Tester  OnTester result 20198
HE      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   Amount of Delete Intervals = 1 (2017.10.19 - 2018.11.10), 11:00 - 10:00, CountHours = 22
HQ      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   00:00:00 - 10:18:36 : Profit = 5694.00 (32.89%), Total = 82 (64.63%), PF = 1.68, Mean = 69.44, DD = 1850.00, RF = 3.08
CK      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   10:33:40 - 23:59:59 : Profit = 11616.00 (67.11%), Total = 249 (63.86%), PF = 1.51, Mean = 46.65, DD = 2779.00, RF = 4.18
OI      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   SUMMARY: 00:00:00 - 23:59:59 : Profit = 17310.00 (100.00%), Total = 331 (64.05%), PF = 1.56, Mean = 52.30, DD = 3124.00, RF = 5.54
RR      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   Amount of Delete Intervals = 2 (2017.10.19 - 2018.11.10)
EN      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   00:00:00 - 03:11:26 : Profit = 2688.00 (14.06%), Total = 19 (73.68%), PF = 2.92, Mean = 141.47, DD = 604.00, RF = 4.45
GG      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   03:48:39 - 10:18:36 : Profit = 4812.00 (25.17%), Total = 56 (66.07%), PF = 1.98, Mean = 85.93, DD = 1060.00, RF = 4.54
OQ      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   10:33:40 - 23:59:59 : Profit = 11616.00 (60.77%), Total = 249 (63.86%), PF = 1.51, Mean = 46.65, DD = 2779.00, RF = 4.18
PG      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   SUMMARY: 00:00:00 - 23:59:59 : Profit = 19116.00 (100.00%), Total = 324 (64.81%), PF = 1.66, Mean = 59.00, DD = 2743.00, RF = 6.97
NM      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   Amount of Delete Intervals = 3 (2017.10.19 - 2018.11.10)
DD      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   00:00:00 - 03:11:26 : Profit = 2688.00 (12.85%), Total = 19 (73.68%), PF = 2.92, Mean = 141.47, DD = 604.00, RF = 4.45
JN      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   03:48:39 - 10:18:36 : Profit = 4812.00 (23.01%), Total = 56 (66.07%), PF = 1.98, Mean = 85.93, DD = 1060.00, RF = 4.54
RG      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   10:33:40 - 15:37:26 : Profit = 3309.00 (15.82%), Total = 95 (67.37%), PF = 1.36, Mean = 34.83, DD = 1531.00, RF = 2.16
DQ      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   16:01:32 - 23:59:59 : Profit = 10102.00 (48.31%), Total = 142 (65.49%), PF = 1.87, Mean = 71.14, DD = 1250.00, RF = 8.08
NG      0       19:42:05.147    TestEA (USDCHF,M5)      2018.11.09 23:56:59   SUMMARY: 00:00:00 - 23:59:59 : Profit = 20911.00 (100.00%), Total = 312 (66.67%), PF = 1.77, Mean = 67.02, DD = 2220.00, RF = 9.42
PL      0       19:42:05.176    Tester  USDCHF,M5: 29530795 ticks, 78804 bars generated. Environment synchronized in 0:00:00.109. Test passed in 0:00:29.952 (including ticks preprocessing 0:00:04.056).
PK      0       19:42:05.176    Tester  USDCHF,M5: total time from login to stop testing 0:00:30.061 (including 0:00:00.109 for history data synchronization)
OH      0       19:42:05.176    Tester  796 Mb memory used including 12 Mb of history data, 576 Mb of tick data
JR      0       19:42:05.176    Tester  log file "C:\Program Files\ICMarkets - MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20181113.log" written
GL      3       19:42:05.804    127.0.0.1       MetaTester 5 forced to stop
QI      0       19:42:42.433    127.0.0.1       login (build 1940)
MS      3       19:42:42.434    127.0.0.1       MetaTester 5 forced to close
DG      0       19:42:44.371    Server  MetaTester 5 stopped

Лог показывает, что виртуальная торговля прошла, как положено: 331 позиция, прибыль = 17310.


Вас, видимо, ввело в заблуждение отсутствие сделок в самом MT5-тестере. Но их и не должно быть, т.к. торговля шла виртуально.

 
fxsaber:

Из Вашего лога

Лог показывает, что виртуальная торговля прошла, как положено: 331 позиция, прибыль = 17310.


Вас, видимо, ввело в заблуждение отсутствие сделок в самом MT5-тестере. Но их и не должно быть, т.к. торговля шла виртуально.

Теперь все стало понятно. Большое спасибо за разъяснение!
 
Причина, почему виртуальная торговля в Тестере может отличаться от реальной торговли в Тестере.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.11.13 12:09

Еще больше убедился, что исследования ТС нужно проводить только на кастомных символах. Ведь эти уровни стопов/заморозки никакого отношения не имеют в рыночным закономерностям. Но эти стопы иногда такие огромные искажения создают, что Тестер начинает просто врать своим результатом.

Virtual откровенно плюет на запреты торговых символов. И это правильно.

 
Sergey Seriy:
Теперь все стало понятно. Большое спасибо за разъяснение!

Рекомендую обновить Virtual и запустить этот советник

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
#define BESTINTERVAL_ONTESTER // Критерий оптимизации - прибыль лучшего интервала.
#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577
#include <fxsaber\BestInterval\BestInterval.mqh> // https://www.mql5.com/ru/code/22710

#define REPORT_TESTER // В тестере будут автоматически записываться отчеты
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

#include <..\Experts\fxsaber\TesterEA\TesterEA.mq4> // https://www.mql5.com/ru/code/22770

В нем добавлены две выделенные строки. Входные параметры станут такими


После запуска одиночного прогона в логе будет следующая строка

2018.11.09 23:54:57   C:\Program Files\ICMarkets - MetaTrader 5\Tester\Agent-127.0.0.1-3006\MQL5\Files\Reports\TesterEA_Report.htm - Done!


Это путь, по которому лежит полный отчет Тестера в нормальном виде. Если Virtual будет true, он все равно будет формироваться, т.к. никто не знает (включая Report.mqh), что работает с виртуальным окружением, а не с реальным. В этом и фишка Virtual, что можно любой код на нем запускать без изменений, будто все реально.

 

Переделал TesterEA (не будет опубликован) на работу через лимитные и TP, чтобы показать особенность MT5-тестера и Virtual в режиме Тестера. Два отчета (Virtual = false/true) в приложении, вот куски из них


Virtual = true

166-1672018.11.09 21:47:21.837buy0.10 (22 672.50)EURUSD1.133661.133592018.11.09 22:00:00.1571.13359-0.70-700:12:38.320
167-1682018.11.09 22:00:00.157sell0.10 (22 671.00)EURUSD1.133591.133512018.11.09 22:00:09.2021.13351+0.80+800:00:09.045
168-1692018.11.09 22:00:09.202buy0.10 (22 670.00)EURUSD1.133511.133492018.11.09 22:05:14.3341.13349-0.20-200:05:05.132
169-1702018.11.09 22:05:14.334sell0.10 (22 668.70)EURUSD1.133491.133382018.11.09 22:06:33.6221.13338+1.10+1100:01:19.288
170-1712018.11.09 22:06:33.622buy0.10 (22 666.70)EURUSD1.133381.133292018.11.09 22:29:56.8061.13329-0.90-900:23:23.184
171-1722018.11.09 22:29:56.806sell0.10 (22 664.50)EURUSD1.133291.133162018.11.09 22:40:39.0051.13316+1.30+1300:10:42.199
172-1732018.11.09 22:40:39.005buy0.10 (22 665.80)EURUSD1.133161.133422018.11.09 22:56:02.9151.13342+2.60+2600:15:23.910
173-1742018.11.09 22:56:02.915sell0.10 (22 670.80)EURUSD1.133421.133662018.11.09 23:50:03.2451.13366-2.40-2400:54:00.330
17.30 (3 925 013.40)0.00-71.80-718

Virtual = false

1663332018.11.09 21:47:21.837buy0.10 (22 672.50)EURUSD1.133661.133592018.11.09 22:00:00.1571.13359-0.40-0.70tp 1.13359-700:12:38.320
1673352018.11.09 22:00:00.157sell0.10 (22 671.00)EURUSD1.133591.133512018.11.09 22:00:09.2021.13351-0.40+0.80tp 1.13351+800:00:09.045
1683372018.11.09 22:00:09.202buy0.10 (22 670.00)EURUSD1.133511.133492018.11.09 22:05:14.3341.13349-0.40-0.20tp 1.13349-200:05:05.132
1693392018.11.09 22:05:14.334sell0.10 (22 668.50)EURUSD1.133491.133382018.11.09 22:06:33.6221.13336-0.40+1.30 (+1.10)tp 1.13338+13 (+11)0, +200:01:19.288
1703412018.11.09 22:06:33.622buy0.10 (22 666.70)EURUSD1.133361.133292018.11.09 22:29:56.8061.13331-0.40-0.50 (-0.90)tp 1.13329-5 (-9)+2, +200:23:23.184
1713432018.11.09 22:29:56.806sell0.10 (22 664.60)EURUSD1.133311.133162018.11.09 22:40:39.0051.13315-0.40+1.60 (+1.30)tp 1.13316+16 (+13)+2, +100:10:42.199
1723452018.11.09 22:40:39.005buy0.10 (22 665.90)EURUSD1.133151.133422018.11.09 22:56:02.9151.13344-0.40+2.90 (+2.60)tp 1.13342+29 (+26)+1, +200:15:23.910
1733472018.11.09 22:56:02.915sell0.10 (22 670.90)EURUSD1.133441.133662018.11.09 23:50:03.2451.13365-0.40-2.10 (-2.40)tp 1.13366-21 (-24)+2, +100:54:00.330
1743492018.11.09 23:50:03.245buy0.10 (22 671.40)EURUSD1.133652018.11.09 23:54:57.4461.13349-0.40-1.60 (-1.70)end of test-16 (-17)+1, 000:04:54.201
1753492018.11.09 23:51:11.960sell limit0.10EURUSD1.133771.133612018.11.09 23:54:57.4461.1334900:03:45.486
17.40 (3 947 682.20)-69.600.00-48.60 (-73.50)-486 (-735)+249 (+24.90)


Обратите внимание, что длительность сделок (правый столбец) совпадает. И все бы хорошо, но в MT5-тестерном варианте какие-то лишние цифры. Дело в том, что MT5-тестер исполняет с положительным проскальзыванием лимитники/TP. В отчете это отражается. Например, выделенные "+2, +1" - было скольжение на +2 пипса при открытии и на +1 пипс при закрытии. Выделенные в этой же строке "-21 (-24)" говорит о том, что прибыль -21 за счет скольжения, но если бы не скользило, было бы -24. Т.е. MT5-тестер нам просто подарил 3 пипса. Выделенные "-2.10 (-2.40)" показывают, что прибыль в валюте счета был -2.1 за счет скольжения, но без скольжения было бы -2.4. Т.е. подарок на 0.3.


Наконец, нижняя красная строка показывает, что прибыль -485 пипсов, но это со скольжением. А вот если бы без него, то было бы -735 пипсов. В отчтете показано, что суммарное скольжение +249 пипсов.

Это MT5-тестер так работает. А вот Virtual (отчет выше) подобных скольжений не допускает, поэтому соответствующий отчет их и не содержит.


Еще раз, MT5-тестер завышает прибыль, Virtual - нет.

Так же обратите внимание, что Virtual не формирует комиссию и свопы.

Файлы:
 
fxsaber :

Переделал TesterEA (не будет опубликован) на работу через лимитные и TP, чтобы показать особенность MT5-тестера и Virtual в режиме Тестера. Два отчета ( Virtual = false/true ) в приложении, вот куски из них

...


Еще раз, MT5-тестер завышает прибыль, Virtual - нет .

Так же обратите внимание, что Virtual не формирует комиссию и свопы.

Это не нормально, ваш TP всегда срабатывает по точной цене, вероятно, то же самое для вашего открытия. Вы должны проверить реальные тики на ForexTimeFXTM-Demo01.

Например, эта торговля с вашим виртуальным неверна:

173 -174 2018.11.09 22: 56: 02.915 продавать 0,10 (22 670,80) EURUSD 1,13342 1,13366 2018.11.09 23: 50: 03.245 1,13366 -2,40 -24 00: 54: 00,330


Цена предложения на 2018.11.09 22: 56: 02.915 была 1.13344, поэтому ваша открытая цена 1.13342 неверна.



И цена спроса (продажа закрыта) на 2018.11.09 23: 50: 03.245 была 1.13365. Поэтому Тестер стратегий прав и ваша потребность исправить ваш «виртуальный» код.

 
Alain Verleyen:

Это не нормально, ваш TP всегда срабатывает по точной цене, вероятно, то же самое для вашего открытия. Вы должны проверить реальные тики на ForexTimeFXTM-Demo01.

Очень хорошо, что Вы проверили реальные тики. Потому что отчет был проведен по ним.


У меня есть некоторые опыт реальной торговли с лимитными ордерами. Да, они имеют положительное проскальзываниые иногда, но они имеют и реджекты. И вот реджекты - это головная боль, не позволяющая на реале показывать такие красивые картинки, как делает Тестер.


Если Вам нужен Тестер для красивых картинок и цифр, то текущий MT5 подойдет. Но если Вам нужна близкая к реалу картина, то никаких скольжений быть не должно.


Я был бы очень рад, если бы на реале было так, как показывает Тестер. Но статистика показывает, что это не так.


ЗЫ

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Статистика проскальзываний лимитных ордеров на бирже

fxsaber, 2018.04.03 11:17

Этот пример оказался гораздо круче. Зареджектился TP, выставленный самим брокером! И почти сразу (ждал аж 115 мс - баг MT5, видимо) после реджекта брокер выставил следующий TP, который исполнился. На скрин комментарии к ордерам не попали. Зеленый цвет - ORDER_REASON_TP. И у reject-ордера, соответственно, даже ORDER_POSITION_ID имеется.

Т.е. TP реджектится и ЖДЕТ следующего тика, чтобы перевыставиться. Сразу не ставится.

 
fxsaber :

Очень хорошо, что Вы проверили реальные тики. Потому что отчет был проведен по ним.


У меня есть некоторые опыт реальной торговли с лимитными ордерами. Да, они имеют положительное проскальзываниые иногда, но они имеют и реджекты. И вот реджекты - это головная боль, не позволяющая на реале показывать такие красивые картинки, как делает Тестер.


Если Вам нужен Тестер для красивых картинок и цифр, то текущий MT5 подойдет. Но если Вам нужна близкая к реалу картина, то никаких скольжений быть не должно.


Я был бы очень рад, если бы на реале было так, как показывает Тестер. Но статистика показывает, что это не так.


ЗЫ

Конечно, вы никогда не сможете работать с тестером, как на реальном рынке.

Ваша точка зрения заключается в том, что проскальзывание с MT5 Strategy Tester всегда положительное?

Но похоже, что у вашего виртуального нет проскальзывания вообще?

Извините, очень интересно, но не легко понять языковой барьер.

 
Alain Verleyen:

Ваша точка зрения заключается в том, что проскальзывание с MT5 Strategy Tester всегда положительное?

Оно всегда неотрицательное для Limits/TP. И всегда не положительное для Stops/SL.

Но похоже, что у вашего виртуального нет проскальзывания вообще?

Limits/TP - 0. Stops/SL - как в MT5-Тестере (не положительное).

 
fxsaber:

It is always non-negative for Limits / TP. And always not positive for Stops / SL.

Limits / TP - 0. Stops / SL - as in the MT5 Tester (not positive).

Understood, thanks.
Причина обращения: