Спасибо за сообщение. Проблему нашли. В ближайшее время исправим
Опять HistorySelect() не работает.
MetaTrader 5 Client Terminal build 565
MetaTester: Исправлен запрос торговой истории при указании начальной и конечной даты.
Пример:
//+------------------------------------------------------------------+ #include <Trade\Trade.mqh> CTrade trade; MqlTick tick; datetime start,prevtime,Time[]; int total; //+------------------------------------------------------------------+ int OnInit() { start=TimeCurrent(); return(0); } //+------------------------------------------------------------------+ void OnTick() { CopyTime(_Symbol,PERIOD_CURRENT,0,1,Time); if(prevtime==Time[0]) return; prevtime=Time[0]; HistorySelect(start,TimeCurrent()); int TotalHistoryDeals=HistoryDealsTotal(); Print("HistorySelect start = ",start," end = ",TimeCurrent()," HistoryDealsTotal = ",TotalHistoryDeals); if(total>10) return; double rnd=MathRand()/32767.5; if(rnd>0.5) trade.Buy(0.1); if(rnd<0.5) trade.Sell(0.1); total++; if(total==5) start=TimeCurrent(); } //+------------------------------------------------------------------+
Вот что выдает тестер:
2011.12.25 19:09:40 Core 1 2011.12.23 20:30:00 HistorySelect start = 2011.12.23 02:00:00 end = 2011.12.23 20:30:00 HistoryDealsTotal = 12
2011.12.25 19:09:40 Core 1 2011.12.23 20:00:00 HistorySelect start = 2011.12.23 02:00:00 end = 2011.12.23 20:00:00 HistoryDealsTotal = 7
2011.12.25 19:09:40 Core 1 2011.12.23 19:30:00 HistorySelect start = 2011.12.23 02:00:00 end = 2011.12.23 19:30:00 HistoryDealsTotal = 12
2011.12.25 19:09:40 Core 1 2011.12.23 19:00:00 HistorySelect start = 2011.12.23 02:00:00 end = 2011.12.23 19:00:00 HistoryDealsTotal = 7
Если на каждом тике запрашивать историю, еще больше чехарда получается.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
HistorySelect() запрашивает историю сделок и ордеров за указанный период серверного времени, а HistoryDealsTotal() возвращает количество за указанный период.
В реальной жизни всё ОК, а в тестере эта связка не работает. Возвращает все имеющиеся(или на много больше чем заказывали).
Для проверки написал функцию, которая запрашивает количество сделок за последнюю минуту прошлого дня и первую минуту текущего:
P.S. Функция писалась для обхода проблемы перехода через 0 в банках, обозначенной в теме https://www.mql5.com/ru/forum/5548