Почему тестер закрывает незакрытые позиции по окончании теста изподтишка, а не через установку ордера на закрытие ?
Скорее всего время "end of test" больше TimeCurrent().
нуно как-то так:
HistorySelect(0,TimeTradeServer());
Скорее всего время "end of test" больше TimeCurrent().
нуно как-то так:
И что, это поможет выцарапать сделки, закрытые тестером принудительно ? Как, ЕСЛИ ИХ ВООБЩЕ НЕТ В ИСТОРИИ ?
Поможет. С какого, простите за мой французский, их вобще нет? Они таки есть :)
зы: поможет таки в OnTester. Почему при "end of test" не выполняется OnTrade(), это к разработчикам..
зыы: в OnDeinit помогает)
Поможет. С какого, простите за мой французский, их вобще нет? Они таки есть :)
зы: поможет таки в OnTester. Почему при "end of test" не выполняется OnTrade(), это к разработчикам..
Да, Вы правы, я так и считал, что раз в OnTrade "end of test" не обрабатывается , то и ордера не выставляются.
Сейчас проверил в деините
2010.08.07 18:57:02 Core 1 2010.08.05 23:59:59 HistoryOrdersTotal=1642
2010.08.07 18:57:02 Core 1 2010.08.05 23:59:59 HistoryOrdersTotal=1642
Выдаёт одно и то же значение с учётом ордеров 'end of test'. Странно.
HistorySelect(0,TimeCurrent()); Print("HistoryOrdersTotal=",HistoryOrdersTotal()); HistorySelect(0,TimeTradeServer()); Print("HistoryOrdersTotal=",HistoryOrdersTotal());
Да, Вы правы, я так и считал, что раз в OnTrade "end of test" не обрабатывается , то и ордера не выставляются.
Сейчас проверил в деините
2010.08.07 18:57:02 Core 1 2010.08.05 23:59:59 HistoryOrdersTotal=1642
2010.08.07 18:57:02 Core 1 2010.08.05 23:59:59 HistoryOrdersTotal=1642
Выдаёт одно и то же значение с учётом ордеров 'end of test'. Странно.
Да наверное нет ничего странного, просто все время в тестере (как я понял) приравнивается к TimeCurrent().
Исходя из этого нет ничего странного в том что результаты совпадают (уверен в том, что если заменить TimeCurrent на TimeGMT они тоже совпадут)...
Да наверное нет ничего странного, просто все время в тестере (как я понял) приравнивается к TimeCurrent().
Исходя из этого нет ничего странного в том что результаты совпадают (уверен в том, что если заменить TimeCurrent на TimeGMT они тоже совпадут)...
Да, это так. А вот функция TimeTradeServer() не совсем понятна. Что значит 'расчетное текущее время торгового сервера' ?
А странно не то, что они совпадают, а то что HistoryOrdersTotal в данном случае выдал результат с учётом сделок "end of test", хотя до этого мне не разу не удавалось.
Наверное, это связано с тем, что в данном прогоне эксперт работает не по тикам , а по таймеру.
- www.mql5.com
Да, это так. А вот функция TimeTradeServer() не совсем понятна. Что значит 'расчетное текущее время торгового сервера' ?
А странно не то, что они совпадают, а то что HistoryOrdersTotal в данном случае выдал результат с учётом сделок "end of test", хотя до этого мне не разу не удавалось.
Наверное, это связано с тем, что в данном прогоне эксперт работает не по тикам , а по таймеру.
В тестере, по окончании, TimeTradeServer() выдает время окончания теста 23:59:59. т.е. время end of test, а время последней котировки в пятницу обычно меньше..
HistorySelect(0,TimeCurrent()); это умело поставленные грабли :)
Ну что-ж, хоть первоначальный вопрос был задан неверно...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При мультивалютном тестировании желательно знать вклад каждой валюты в общий результат. Для этого в OnTrade() ведём подсчёт прибыли по отдельным инструментам, а в Deinit-е выводим окончательный результат. Так вот, те ордера и сделки, которые помечены в комментарии, как 'end of test', не входят ни в историю ордеров и сделок, ни в открытые позиции. И их невозможно учесть при окончательном расчёте прибыли. Почему бы не закрывать их аналогично стопам, а в комментарии оставить 'end of test' ?
Журнал тестера:
2010.08.07 13:57:53 Core 1 disconnected
2010.08.07 13:57:52 Core 1 log file "E:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20100807.log" written
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 All Profit = 106660.30
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 Profit EURAUD = 38487.71
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 Profit USDJPY = 11790.16
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 Profit AUDUSD = 37251.48
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 Profit EURUSD = 19130.95
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 HistoryOrdersTotal=1631
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 Balance=115340.25 Equite=115340.25 Profit=0.00
2010.08.07 13:57:52 Core 1 2010.08.05 23:59:59 Ошибок открытия: 0 Ошибок закрытия: 0 Ошибок модификации: 0 Реквоты: 2
Сделки в результатах тестера:
Разница между балансом и расчётом как раз на величину последних 3-х сделок.