Новая версия платформы MetaTrader 5 build 5260: улучшения в Algo Forge, расширение OpenBLAS и новые правила наследования в MQL5 - страница 8
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Может имеет смысл warnings добавить?
Может имеет смысл warnings добавить?
Сделки бывают двух видов: вход (DEAL_ENTRY_IN) и выход (DEAL_ENTRY_OUT). Скорее всего, берете сделку входа, у которой профит всегда 0. Проверьте у сделки свойство DEAL_ENTRY.
Интересно, можно ли заметить ускорение при отказе от виртуальных функций...
Интересный.
С C++
for ( int i = 0 ; i < 1e7; i++) a->Func1(); Execution time: 22580 microseconds
for ( int i = 0 ; i < 1e7; i++) a->Func2(); Execution time: 22902 microseconds
Баг в файле Include\Canvas\Charts\LineChart.mqh в строке 244:
Не учитывается смещение графика. Там такая строка:
А должно быть так:
Такая же ошибка в строке 232 для первой точки графика.
Ещё баг в файле ChartCanvas.mqh:
При установке параметра grid(количество горизонтальных линий сетки) в 1 или меньше метода CChartCanvas::VScaleParams(const double max,const double min,const uint grid), обновление отображаемого графика CChartCanvas::DrawChart(void) зависает. И принудительное завершение индикатора с этим кодом не завершает зависший поток.
Вот часть кода где считаю результаты прошлых сделок. Все считается: лоты, количество сделок, количество дней и тд, кроме суммы профитов
А DEAL_ENTRY_OUT так понимаю. как фильтр только выступает, а не параметр вывода сделок из истории торгов
int startFor = HistoryDealsTotal() - 1;
int endFor = 0;
for (int Index = startFor ; Index >= endFor; Index--) {
ulong posTicket = HistoryDealGetTicket(Index);
ulong posMagic = HistoryDealGetInteger(posTicket, DEAL_MAGIC);
string symb = HistoryDealGetString(posTicket, DEAL_SYMBOL);
if(posTicket > 0) {
if (symb == Symbol()) {
string orderComment = HistoryDealGetString(posTicket, DEAL_COMMENT);
if(magic != "" && isMagicContain(orderComment, magic) == false) continue;
string type = HistoryDealGetInteger(posTicket, DEAL_ENTRY);
if (type != DEAL_ENTRY_OUT) continue;
double lot = HistoryDealGetDouble(posTicket, DEAL_VOLUME);
double posProfit = HistoryDealGetDouble(posTicket, DEAL_PROFIT);
profitToday += posProfit;
levelsDealsNum++;
levelsDealsContract += lot;
}
}
}
Сделки бывают двух видов: вход (DEAL_ENTRY_IN) и выход (DEAL_ENTRY_OUT). Скорее всего, берете сделку входа, у которой профит всегда 0. Проверьте у сделки свойство DEAL_ENTRY.
Если что брокер RoboForex . На МТ4 все нормально считается. На МТ5 все выводит кроме профита сделки