Кто и как использует стандартные MQL классы при написании экспертов? - страница 3

 
Vasiliy Sokolov:
Замечу, что на производительность в первую очередь влияет выбранный алгоритм. Есть определенный классы задач, которые могут быть решены только с помощью специфических алгоритмов, вроде словаря или списка. Любое другое решение, например простой перебор будет провальным в плане производительности. С другой стороны данные алгоритмы реализованы только в ООП. Поэтому писать на ООП не только проще, но и гораздо быстрее в плане производительности, при условии что задача эффективно решается только при использовании специфических алгоритмов.
И поэтому странно, почему в СБ до сих пор нет класса CHashTable, хотя он вами реализован  https://www.mql5.com/ru/articles/1334
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным
  • 2015.03.23
  • Vasiliy Sokolov
  • www.mql5.com
В данной статье описывается специальный алгоритм, позволяющий эффективно получать доступ к элементам по их уникальному ключу. В качестве ключа может быть использован любой базовый тип данных, например ключом могут быть строки или целочисленные переменные. Такой контейнер данных принято называть словарем или ассоциативным массивом. С его помощью решать многие задачи становиться гораздо проще и эффективней.
 
Alexey Volchanskiy:
И поэтому странно, почему в СБ до сих пор нет класса CHashTable, хотя он реализован участником форума https://www.mql5.com/ru/articles/1334
А для чЕго? Бери себе, и используй на здоровье. Зачем этот и пр. классы в СБ? Что это дает? Что ограничивает?
 
Yuriy Asaulenko:
А для чЕго? Бери себе, и используй на здоровье. Зачем этот и пр. классы в СБ? Что это дает? Что ограничивает?
Затем, что на то она и библиотека, чтобы содержать в себе все необходимое, а не искать где-то на стороне нужные классы или писать их самому. Вы же должны понимать, для чего нужна хеш - таблица.
 
Alexey Volchanskiy:
  Вы же должны понимать, для чего нужна хеш - таблица.

Я даже понятия не имею, что это.))) И, кстати, не особенно хочу. Пусть БД эти вопросы решает.

Давайте проведем опрос, - сколько здесь имеется народу, имеющих прибыльную реально работающую торговую систему? Ответ известен - практически ноль. Хотя, даже при анонимном опросе многие поставят птичку, что имеют.

Давайте потом, после опроса, взглянем на дискуссии на форуме.

 

cCanvas, просто по причине громадной экономии времени на написание чего-то похожего своего.

Остальное стараюсь не трогать, нервные клетки нужно беречь. 

 
Yuriy Asaulenko:

Я даже понятия не имею, что это.))) И, кстати, не особенно хочу. Пусть БД эти вопросы решает.

Давайте проведем опрос, - сколько здесь имеется народу, имеющих прибыльную реально работающую торговую систему? Ответ известен - практически ноль. Хотя, даже при анонимном опросе многие поставят птичку, что имеют.

Давайте потом, после опроса, взглянем на дискуссии на форуме.

Кто или что такое БД?

Проведите, ответ будет, как в анекдоте, когда компания мужиков и женщин отправилась на скачки )

 
Alexey Volchanskiy:

Кто или что такое БД?

Проведите, ответ будет, как в анекдоте, когда компания мужиков и женщин отправилась на скачки )

Она-же База Данных. В нормальных языках это (БД) организовывается в два притопа. Всегда использую неск связанных таблиц в памяти. Все эти ключи и пр. прибабахи - ответственность БД (ее объектов).
 
Yuriy Asaulenko:
Она-же База Данных. В нормальных языках это (БД) организовывается в два притопа. Всегда использую неск связанных таблиц в памяти. Все эти ключи и пр. прибабахи - ответственность БД (ее объектов).
А, ясно. Ну а хеш-таблица - это класс с двумя полями, ключ и значения, только в виде значения можно добавлять не только нативные типы, но и указатели на экземпляры классов. Я же сказал, сто вы это знаете, но не догадываетесь об этом ))
 
Vasiliy Sokolov:

Пример первый: торговые операции. С помощью класса CTrade можно просто купить или продать, не заботясь о том, как правильно нужно заполнить структуру MqlTradeRequest, а также о том, как правильно обработать ответ сервера. В процедурном стиле иногда до половины советника занимает код обрабатывающий эту структуру запроса.

Пример второй: контейнеры данных. Например можно добавлять в массив множество элементов, не утруждая себя переразметками этого массива и прочими необходимыми манипуляциями. 

Пример третий: есть специальные классы-контейнеры, доступ к данным которых происходит определенным образом. Например из словаря можно мгновенно достать элемент по его имени. А на основе списка сделать сверхбыстрый расчет индикатора по принципу FIFO. В процедурном стиле сделать это невозможно либо очень сложно. 

Alexey Volchanskiy:

Дополню, в .mqh может содержаться набор функций, подключения библиотек импорта и dll, defines, определения структур и классов.

Главное, не определять в .mqh файлах никаких данных вроде

data.mqh

Спасибо!

А класс  CTrade давно использую для закрытия позиции, если нет стопов и тейк профитов в алгоритме.

Причина обращения: