Хотя наверное это сложно. Неспроста ведь компилятор молчит о конфликтах между #property и .mqproj файлом (насколько я помню, он молча возьмет свойства из .mqproj и проигнорирует #property).
Ihor Herasko #: Сделки бывают двух видов: вход (DEAL_ENTRY_IN) и выход (DEAL_ENTRY_OUT). Скорее всего, берете сделку входа, у которой профит всегда 0. Проверьте у сделки свойство DEAL_ENTRY.
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
Такая же ошибка в строке 232 для первой точки графика.
Ещё баг в файле ChartCanvas.mqh:
При установке параметра grid(количество горизонтальных линий сетки) в 1 или меньше метода CChartCanvas::VScaleParams(const double max,const double min,const uint grid), обновление отображаемого графика CChartCanvas::DrawChart(void) зависает. И принудительное завершение индикатора с этим кодом не завершает зависший поток.
Vitaly Muzichenko #: все равно не видит результата в сделке Вот часть кода где считаю результаты прошлых сделок. Все считается: лоты, количество сделок, количество дней и тд, кроме суммы профитов А DEAL_ENTRY_OUT так понимаю. как фильтр только выступает, а не параметр вывода сделок из истории торгов
int startFor = HistoryDealsTotal() - 1;
int endFor = 0;
for (int Index = startFor ; Index >= endFor; Index--) {
Ihor Herasko #: Сделки бывают двух видов: вход (DEAL_ENTRY_IN) и выход (DEAL_ENTRY_OUT). Скорее всего, берете сделку входа, у которой профит всегда 0. Проверьте у сделки свойство DEAL_ENTRY.
Посмотрите мой ответ выше с моим кодом. Что надо исправить в коде что бы профит сделки считался?
Если что брокер RoboForex . На МТ4 все нормально считается. На МТ5 все выводит кроме профита сделки
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Может имеет смысл 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 все выводит кроме профита сделки