Два несочетающихся понятия: Мультивалютник и Тестер...
Только реал-тайм.
Пробовал на:
EURUSD H1
Open prices / Ctrl Pts / Every tick
From: 2013.12.06 To: 2013.12.11
Visual (ON and OFF)
Остальные параметры (Expert Properties):
TestingBuy: true
str_t_open: 2013.12.09 00:00
str_t_close: 2013.12.10 00:00
Два несочетающихся понятия: Мультивалютник и Тестер...
Только реал-тайм.
...не мултьтивалютник в тестере - просто часть кода так выглядит так как взята из EA который деиствительно мульти. Но в примере вверху я просто пытаюсь проверить совпадают ли мои калькуляции MaximalDrawDown с тем что показывает Report. Как я уже сказал - тест сделан на EURUSD, единственый ордер - тоже на EURUSD и OrderCloseTime проверяю на том же ордере...
Прежде чем запрашивать информацию об ордере, его нужно ВЫДЕЛИТЬ (OrderSelect()). А искать его (в данном случае) в списке OrdersHistoryTotal().
Я думал что выделен, по крайней мере там где TestOrderCloseTime вызвана из PostCloseFunc он точно выделен... так как только что успешно прошел OrderClose. Но может бъть там не работает потому что там еще слишком рано - ордер только что закрыт и еще не считаеся как History?
A там где TestOrderCloseTime вызвана из start возможно вы правы и он не выделен... спасибо за подсказку, щас проверю.
Я думал что выделен, по крайней мере там где TestOrderCloseTime вызвана из PostCloseFunc он точно выделен... так как только что успешно прошел OrderClose. Но может бъть там не работает потому что там еще слишком рано - ордер только что закрыт и еще не считаеся как History?
A там где TestOrderCloseTime вызвана из start возможно вы правы и он не выделен... спасибо за подсказку, щас проверю.
Вы выделяете ордер в списке открытых ордеров и после его закрытия (этого ордера) ищите его в "списке живых". Для проверки нужно выделять так:
int li_Ticket = OrderTicket(); // Ticket закрытого ордера. OrderSelect (li_Ticket, SELECT_BY_TICKET, MODE_HISTORY);можно перед проверкой сделать небольшую паузу для надёжности.
Вы выделяете ордер в списке открытых ордеров и после его закрытия (этого ордера) ищите его в "списке живых". Для проверки нужно выделять так:
можно перед проверкой сделать небольшую паузу для надёжности.ааа... понял. Спасибо большое :)
То что особенно вводит в заблуждение, однако, ето то что GetLastError ошибки не выдает.... и к тому же и TestOrderOpenTime проходит и результат дает правильный... если бы там ошибки были то было бы гороздо логичнее. И легче найти свою ошибку.
и код то у меня ровненький, не в раскоряку(!!!!) ;) ... ну куда ни посмотри - отличник я! Только вот не работает, хаха... (впрочем уже работает)
Целовать дам только после того как доки доведете до кондиции! :P
...или хотя бы чтоб error во всех функциях был как описано. Я так думаю - активность в форуме спала бы по крайней мере на 50% если бы доки были получше. Ясно конечно что приоритетов много и доки не номер 1, но всетаки - ох как хотелось бы... Я вот МТ4 занимался сериозно лет 5-6 назад, потом приостановил (и у меня другие приоритеты были :)), думаю дай ка посмотрю как там да что... Улучшений наверное немало за ети годы но увы - не в документации... жаль... Хорошо что добрые люди на форуме не перевелись, "а то кто снес бы униженья века..."
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите разобратся, наблюдаю некую странную хрень и не пойму - баг в МТ4 (тестере?) или в моем коде? Наверное в коде но если судить по Print-ам вроде баг...
Открываю ордер. Проверяю OrderTicket --> 1.
Через один день закрываю.
OrderTicket опять таки 1, что правильно.
Теперь хочу взять OrderOpenTime и OrderCloseTime с только-что закрытого ордера.
OrderOpenTime дает верное время открытия ордера и GetLastError() = 0.
OrderCloseTime однако возвращает 0. Интересно что GetLastError() тоже дает 0 тоесть ошибки нету а время 1970 год??
В доках написано что единственная возможная ошибка в OrderCloseTime есть ERR_NO_ORDER_SELECTED (4105).
(MQL4 Reference - Program Run - Runtime errors)
У кого есть идеи почему так получается: ордер закрыт успешно, OrderSelect закрытый ордер нашел, ошибки от OrderCloseTime тоже нет а в результате фигня?
Вот сорс: