Ошибка с стандартной библиотеке

 

Не знаю куда написать о данной ошибке.

В стандартной библиотеке присутсвует два файла Include\Trade\Trade.mqh и Include\Expert\ExpertTrade.mqh с классами class CTrade и class CExpertTrade : public CTrade соответственно.

С CExpertTrade разработчики заложили прекрасный функционал для методов Buy и Sell, который должен открывать сделку в зависимости от рычночных условий, и это может быть и вход по рынку, стоп и лимитная заявка.

Однако данные методы конфликтуют с методами, реализующими иное поведение в базовом классе CTrade. Но так как в классе CTrade данные методы не помеченны ключевым словом virtual, в CExpertTrade нельзя их по факту переопределять. В результате чего, комплиятор выдает предупреждение и по факту используется логика описанная в методах  CTrade, игнорирую реализацию методов в CExpertTrade.

 
Vladislav Vlastovskii:

Не знаю куда написать о данной ошибке.

В стандартной библиотеке присутсвует два файла Include\Trade\Trade.mqh и Include\Expert\ExpertTrade.mqh с классами class CTrade и class CExpertTrade : public CTrade соответственно.

С CExpertTrade разработчики заложили прекрасный функционал для методов Buy и Sell, который должен открывать сделку в зависимости от рычночных условий, и это может быть и вход по рынку, стоп и лимитная заявка.

Однако данные методы конфликтуют с методами, реализующими иное поведение в базовом классе CTrade. Но так как в классе CTrade данные методы не помеченны ключевым словом virtual, в CExpertTrade нельзя их по факту переопределять. В результате чего, комплиятор выдает предупреждение и по факту используется логика описанная в методах  CTrade, игнорирую реализацию методов в CExpertTrade.

Есть несколько тем, где проще всего достучаться до разработчиков платформы. К примеру:

https://www.mql5.com/ru/forum/1111

https://www.mql5.com/ru/forum/455977

Ошибки, баги, вопросы - Попробуйте через SymbolInfoTick или SymbolInfoDouble.
Ошибки, баги, вопросы - Попробуйте через SymbolInfoTick или SymbolInfoDouble.
  • 2010.06.02
  • www.mql5.com
то ордер по GBPUSD не открывается и в логе ошибка 26 Core 1 failed instant sell 1. И не подскажете как правильнее через SymbolInfoTick или SymbolInfoDouble. Написал такой код происходит что-то не понятное где может быть ошибка. Потому что отсутствуют операторы break между case спасибо
 
Vladislav Vlastovskii:

...В стандартной библиотеке присутсвует два файла Include\Trade\Trade.mqh и Include\Expert\ExpertTrade.mqh с классами class CTrade и class CExpertTrade : public CTrade соответственно.

С CExpertTrade разработчики заложили прекрасный функционал для методов Buy и Sell, который должен открывать сделку в зависимости от рычночных условий, и это может быть и вход по рынку, стоп и лимитная заявка.

Однако данные методы конфликтуют с методами, реализующими иное поведение в базовом классе CTrade. Но так как в классе CTrade данные методы не помеченны ключевым словом virtual, в CExpertTrade нельзя их по факту переопределять. В результате чего, комплиятор выдает предупреждение и по факту используется логика описанная в методах  CTrade, игнорирую реализацию методов в CExpertTrade.

А Вы ничего не путаете? Можно код в качестве доказательства, который заставляет компилятор генерировать предупреждения?

А пока для затравки:

bool CExpertTrade::Buy(double volume,double price,double sl,double tp,const string comment="")

bool CTrade::Buy(const double volume,const string symbol=NULL,double price=0.0,const double sl=0.0,const double tp=0.0,const string comment="")

Т.е. тут по сути методы Buy() - перегруженные методы, а не переопределённые...