Новая версия платформы MetaTrader 5 build 5260: улучшения в Algo Forge, расширение OpenBLAS и новые правила наследования в MQL5 - страница 9

 
Sergei Samokhin #:
Посмотрите мой ответ выше с моим кодом. Что надо исправить в коде что бы профит сделки считался?

Если что брокер RoboForex . На МТ4 все нормально считается. На МТ5 все выводит кроме профита сделки

string type = HistoryDealGetInteger(posTicket, DEAL_ENTRY);

Это не string должен быть

 
Sergei Samokhin #:
Посмотрите мой ответ выше с моим кодом. Что надо исправить в коде что бы профит сделки считался?

Если что брокер RoboForex . На МТ4 все нормально считается. На МТ5 все выводит кроме профита сделки

Андрей выше уже правильно подметил - неправильный тип переменной для типа сделки. Таким образом, строка получения типа сделки должна быть следующей:

ENUM_DEAL_ENTRY type = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(posTicket, DEAL_ENTRY);

Также еще немного уточню по поводу своего предыдущего поста, просто для того, чтобы быть точным. Типов сделок не два, а четыре. На netting-счетах есть еще сделка разворота (DEAL_ENTRY_INOUT). Такое происходит, когда при имеющейся позиции совершается противоположная по направлению операция с бОльшим (по сравнению с имеющейся) объемом. Например, есть Sell 1 лот, а совершается операция Buy 3 лота. В таком случае Sell закрывается и открывается Buy 2 лота.

Также на hedge-счетах возможна сделка встречного закрытия - DEAL_ENTRY_OUT_BY. Она возникает, когда операция закрытия основана на взаимном гашении позиций противоположных типов. В таком случае можно закрыть обе позиции не двумя торговыми операциями (заплатив два спреда), а одной (заплатив при этом только один спред).

 
Sergei Samokhin #:
На МТ4 все нормально считается. На МТ5 все выводит кроме профита сделки
Пишите сразу кроссплатформенный код.
 
Sergei Samokhin #:

Вы не забыли запросить историю, иначе работать не будет?

HistorySelect(0, TimeCurrent());
    for(int i=HistoryDealsTotal() - 1; i>=0; i--) {
 
Aliaksandr Hryshyn #:

Баг в файле 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) зависает. И принудительное завершение индикатора с этим кодом не завершает зависший поток.

Добрый день! Приложите пожалуйста более кокретный код на котором вы словили ошибки.

При вызове CChartCanvas::VScaleParams(const double max,const double min,const uint grid) 

  • grid = 0 метод игнорирует такой вызов
  • grid = 1 метод работает нормально на простых примерах
 
Andrey Barinov #:

string type = HistoryDealGetInteger(posTicket, DEAL_ENTRY);

Это не string должен быть

Разбирался с этим Дил_Энтри. 
Оказалось что в цикле у меня идёт проверка на комментарий в котором я сравниваю коммент сделки с комментом при создании сделки определенным для каждой стратегии. У меня несколько стратегий работают одновременно на одном терминале, и разграничиваю их коментами вида "xxx_yyy_zzz". 
Но что оказалось, что ХисториГет выдает сделки и с комментами и без комментов. Пока до конца не разобрался, но судя по всему просто дублированные исторические сделки но без комментов. Те я на торговал в сумме по всем системам 300 сделок, а Хистори выдает 600 сделок, но половину с комментами моими, половина без комментов. Где без комментов там Профит присутствует!🙈🙈 А где коммент нудный есть то присутствует все кроме профита 🙈🙈😂 
В итоге пока ресерч оф ситуэшн на этом закончился. Потому что из Хистори ордеров нужные ордера с нужными комментами не  содержат итоговый Профит. 

По поводу Дил_Интри не понимаю зачем они на Форексе? Если хисториордер содержит как вход так и выход. Так было как минимум в мт4. Переиграли в мт5 как типа на биржах бумаг? Те есть сделка открывающая, есть закрывающая? 

Как тогда вытаскивать из истории нужные ордера для статистики ?

Пока не понял зачем  Дил_Интри_Аут использовать, потому что он вообще отсекает все ордера.
Возможно не правильно его использую. 

П.С. пришла мысль, возможно в ордерах где нет коммента можно получать тикет или ещё какой нибудь АйДи сделки и потом искать по АйДи среди тех где есть комменты для сравнения и при нахождении считать что Профит с этим АйДи равен сделке с искомым комментом? Тогда получается систему Хистори ордеров усложнили и извратили до уровня бреда🙈🐺  ))
Подскажите плиз кто нибудь где ошибаюсь или не прав в рассуждениях))

П.п.с. ещё одна мысль появилась, что в комментариях при выставлении ордера присутствует точки с цифрами, типа "3000.0_5000.0_1500.0" возможно такой формат выдает внутренний эксэпшн в запросах Хистори? Но в платформе и компиляторах не было алерта по этому поводу.


Спасибо что почитали этот длинный текст вопрос😁 
Просто уже не понимаю куда копать.
Вроде простой запрос а так система работы с Хистори изменилась что голова кругом😁






 
Ihor Herasko #:

Андрей выше уже правильно подметил - неправильный тип переменной для типа сделки. Таким образом, строка получения типа сделки должна быть следующей:

Также еще немного уточню по поводу своего предыдущего поста, просто для того, чтобы быть точным. Типов сделок не два, а четыре. На netting-счетах есть еще сделка разворота (DEAL_ENTRY_INOUT). Такое происходит, когда при имеющейся позиции совершается противоположная по направлению операция с бОльшим (по сравнению с имеющейся) объемом. Например, есть Sell 1 лот, а совершается операция Buy 3 лота. В таком случае Sell закрывается и открывается Buy 2 лота.

Также на hedge-счетах возможна сделка встречного закрытия - DEAL_ENTRY_OUT_BY. Она возникает, когда операция закрытия основана на взаимном гашении позиций противоположных типов. В таком случае можно закрыть обе позиции не двумя торговыми операциями (заплатив два спреда), а одной (заплатив при этом только один спред).

Выше написал длинный коммент по поводу ситуации.
Если есть мысли как решить напишите плиз
 
Vitaly Muzichenko #:
Написал выше коммент по этой истории. Прав в рассуждениях по поводу комментариев? 
 
Sergei Samokhin #:
Разбирался с этим Дил_Энтри. 
Оказалось что в цикле у меня идёт проверка на комментарий в котором я сравниваю коммент сделки с мэджиком определенным для каждой стратегии. У меня несколько стратегий работают одновременно на одном терминале, и разграничиваю их коментами вида "xxx_yyy_zzz". 
Но что оказалось, что ХисториГет выдает сделки и с комментами и без комментов. Пока до конца не разобрался, но судя по всему просто дублированные исторические сделки но без комментов. Те я на торговал в сумме по всем системам 300 сделок, а Хистори выдает 600 сделок, но половину с комментами моими, половина без комментов. Где без комментов там Профит присутствует!🙈🙈 А где коммент нудный есть то присутствует все кроме профита 🙈🙈😂 
В итоге пока ресерч оф ситуэшн на этом закончился. Потому что из Хистори ордеров нужные ордера с нужными комментами не  содержат итоговый Профит. 

По поводу Дил_Интри не понимаю зачем они на Форексе? Если хисториордер содержит как вход так и выход. Так было как минимум в мт4. Переиграли в мт5 как типа на биржах бумаг? Те есть сделка открывающая, есть закрывающая? 

Как тогда вытаскивать из истории нужные ордера для статистики ?

Пока не понял зачем  Дил_Интри_Аут использовать, потому что он вообще отсекает все ордера.
Возможно не правильно его использую. 

П.С. пришла мысль, возможно в ордерах где нет коммента можно получать тикет или ещё какой нибудь АйДи сделки и потом искать по АйДи среди тех где есть комменты для сравнения и при нахождении считать что Профит с этим АйДи равен сделке с искомым комментом? Тогда получается систему Хистори ордеров усложнили и извратили до уровня бреда🙈🐺  ))
Подскажите плиз кто нибудь где ошибаюсь или не прав в рассуждениях))

П.п.с. ещё одна мысль появилась, что в комментариях при выставлении ордера присутствует точки с цифрами, типа "3000.0_5000.0_1500.0" возможно такой формат выдает внутренний эксэпшн в запросах Хистори? Но в платформе и компиляторах не было подарила по этому поводу.


Спасибо что почитали этот длинный текст вопрос😁 
Просто уже не понимаю куда копать.
Вроде простой запрос а так система работы с Хистори изменилась что голова кругом😁






В справке всë есть.