Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVIII): Отложенные торговые запросы - закрытие, удаление, модификации"
Привет, Артем, есть ли какая-то особая причина, по которой вы выделяете динамическую память под указатель для выполнения описанной ниже работы?
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq *req=new CPendingReq(); if(req==NULL) return WRONG_VALUE; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); delete req; return index; }
По моему скромному мнению, использование обычной локальной переменной позволило бы упростить метод и избавиться от лишнего кода обработки указателей.
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq req; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); return index; }
Мне интересно понять, почему вы выбрали первый подход... может быть, я упускаю какую-то лучшую практику?
/dima
Привет, Артём, есть ли какая-то конкретная причина, по которой вы выделяете динамическую память указателю для выполнения работы, описанной ниже?
По моему скромному мнению, использование обычной локальной переменной позволило бы упростить метод и избавиться от лишнего кода обработки указателей выше.
Мне интересно понять, почему вы выбрали первый подход... может быть, я упускаю какую-то лучшую практику?
/dima
Метод Search() работает с указателем на объект:
int Search( CObject* element // образец ) const
Ах да... но разве вы не можете вызвать метод и передать указатель локальной переменной?
int index=this.m_list_request.Search(GetPointer(req));
Ах да... но разве вы не можете вызвать метод и передать указатель локальной переменной?
Вы можете сделать это разными способами ... Я так и сделал... :)
Вы можете сделать это разными способами... Я так делал... :)
Круто, спасибо - это было просто для подтверждения моего понимания, так как я все еще читаю статьи и изучаю код ;-)
CEventsCollection*GetObject(void) { return &this;

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVIII): Отложенные торговые запросы - закрытие, удаление, модификации:
Это третья статья о концепции отложенных запросов. В ней мы завершим тестирование работы с отложенными торговыми запросами - создадим методы для закрытия позиций, удаления отложенных ордеров и модификацию параметров позиций и отложенных ордеров.
Это третья статья о концепции отложенных запросов. В ней мы завершим тестирование предложенной концепции, создав методы работы с отложенными торговыми запросами для закрытия позиций, удаления ордеров и модификации стоп-приказов позиций и параметров отложенного ордера, которые возможно модифицировать.
Также мы немного дополним класс абстрактного ордера — по какой-то неведомой мне причине я упустил возврат значений двух свойств ордеров и позиций, а именно — тип заливки ордера и тип его экспирации. Вот их мы и добавим. Код всех торговых методов базового кроссплатформенного торгового объекта был немного оптимизирован — описывать подробно изменения мы тут не будем, ограничимся одним примером какого-нибудь из изменённых методов.Автор: Artyom Trishkin