Почему таг стоит "торговые системы" в разделе статей? здесь же нет ТС
Весь раздел "торговые системы" забит вашими статьями, по итогу
Почему таг стоит "торговые системы" в разделе статей? здесь же нет ТС
Весь раздел "торговые системы" забит вашими статьями, по итогу
Потому, что библиотека создаётся в частности и для создания торговых систем.
Потому, что библиотека создаётся в частности и для создания торговых систем.
в этом есть некоторое логическое противоречие
в этом есть некоторое логическое противоречие
Boa noite!
Saudações aqui do Brasil.
Estou tendo impedimento na hora de compilar o código e como meu conhecimento de mql5 é muito básico, resta pedir sua ajuda para superar os problemas na compilação...não sei resolver.
Quero aproveitar e parabenizá-lo pelo trabalho brilhante, seus códigos me ajudam muito.
Boa noite!
Saudações aqui do Brasil.
Estou tendo impedimento na hora de compilar o código e como meu conhecimento de mql5 é muito básico, resta pedir sua ajuda para superar os problemas na compilação...não sei resolver.
Quero aproveitar e parabenizá-lo pelo trabalho brilhante, seus códigos me ajudam muito.
В файле Trading.mqh нужно некоторые методы перенести в защищённую секцию - чтобы к ним был доступ из производных классов. Сейчас же они находятся в приватной секции класса. Эта ошибка была допущена мною по невнимательности, но старый компилятор её пропустил. После обновления терминала эта ошибка стала обнаруживаться.
В строках 84 - 89 файла Trading.mqh нужно сделать такие изменения:
In the Trading.mqh file, some methods need to be moved to a protected section so that they can be accessed from derived classes. Now they are in the private section of the class. This mistake was made by me inadvertently, but the old compiler missed it. After updating the terminal, this error began to be detected.
In lines 84 - 89 of the Trading.mqh file, you need to make the following changes:
//--- Возвращает направление ордера по типу операции ENUM_ORDER_TYPE DirectionByActionType(const ENUM_ACTION_TYPE action) const; //--- Устанавливает торговому объекту нужный звук void SetSoundByMode(const ENUM_MODE_SET_SOUND mode,const ENUM_ORDER_TYPE action,const string sound,CTradeObj *trade_obj); protected: //--- Устанавливает цены торгового запроса template <typename PR,typename SL,typename TP,typename PL> bool SetPrices(const ENUM_ORDER_TYPE action,const PR price,const SL sl,const TP tp,const PL limit,const string source_method,CSymbol *symbol_obj); private: //--- Возвращает флаг проверки разрешённости по дистанции (1) StopLoss, (2) TakeProfit, (3) цены установки ордера от цены по уровню StopLevel bool CheckStopLossByStopLevel(const ENUM_ORDER_TYPE order_type,const double price,const double sl,const CSymbol *symbol_obj); bool CheckTakeProfitByStopLevel(const ENUM_ORDER_TYPE order_type,const double price,const double tp,const CSymbol *symbol_obj); bool CheckPriceByStopLevel(const ENUM_ORDER_TYPE order_type,const double price,const CSymbol *symbol_obj,const double limit=0);
и в строках 155 - 181 сделать аналогичные правки:
//--- Возвращает метод обработки ошибки ENUM_ERROR_CODE_PROCESSING_METHOD ResultProccessingMethod(const uint result_code); //--- Корректировка ошибок ENUM_ERROR_CODE_PROCESSING_METHOD RequestErrorsCorrecting(MqlTradeRequest &request,const ENUM_ORDER_TYPE order_type,const uint spread_multiplier,CSymbol *symbol_obj,CTradeObj *trade_obj); protected: //--- (1) Открывает позицию, (2) устанавливает отложенный ордер template<typename SL,typename TP> bool OpenPosition(const ENUM_POSITION_TYPE type, const double volume, const string symbol, const ulong magic=ULONG_MAX, const SL sl=0, const TP tp=0, const string comment=NULL, const ulong deviation=ULONG_MAX, const ENUM_ORDER_TYPE_FILLING type_filling=WRONG_VALUE); template<typename PR,typename PL,typename SL,typename TP> bool PlaceOrder( const ENUM_ORDER_TYPE order_type, const double volume, const string symbol, const PR price, const PL price_limit=0, const SL sl=0, const TP tp=0, const ulong magic=ULONG_MAX, const string comment=NULL, const datetime expiration=0, const ENUM_ORDER_TYPE_TIME type_time=WRONG_VALUE, const ENUM_ORDER_TYPE_FILLING type_filling=WRONG_VALUE); private: //--- Возвращает индекс объекта-запроса в списке по (1) идентификатору, //--- (2) тикету ордера, (3) тикету позиции в запросе int GetIndexPendingRequestByID(const uchar id); int GetIndexPendingRequestByOrder(const ulong ticket); int GetIndexPendingRequestByPosition(const ulong ticket); public:
После этого всё будет компилироваться.
Исправленный файл прилагаю к этому посту.
After that, everything will compile.
The corrected file is attached to this post.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Прочие классы в библиотеке DoEasy (Часть 66): Класс-коллекция Сигналов MQL5.com:
В статье создадим класс-коллекцию сигналов Сервиса Сигналов MQL5.com с функциями управления подписанными сигналами, а также доработаем класс объекта-снимка стакана цен для отображения общего объёма стакана на покупку и на продажу.
Скомпилируем советник и запустим его на графике символа, предварительно задав в настройках работу на текущем символе/таймфрейме и установив флаг необходимости работы с торговыми сигналами сервиса Сигналы MQL5.com:
Во вкладке "Общие" окна настроек советника обязательно нужно установить галочку на пункте "Разрешить изменение настроек Сигналов":
Без этого советнику будет запрещено работать с сервисом Сигналов MQL5.com.
После запуска советника, в журнал будет выведено сообщение об успешном создании коллекции сигналов и её краткое описание:
Автор: Artyom Trishkin