Об одном применении ООП - страница 5

 
Dmitry Fedoseev:

А есть разница, вот так каждый раз писать:

SymbolInfoDouble(Symbol(),SYMBOL_ASK) 

или так:

s.Ask() 

А есть разница между:

а<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]; 

 

 А ведь есть интереснее, например:

с <- b*a

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

??????

Речь не об этом

Был МQL4 - язык прекрасно сбалансированный между простой и возможностями, так нет, куча кодеров начала рассуждать о "вкусностях" и никак не могут успокоиться. Вот и получили жОППу и НАСЛЕДОВАНИЕ убытков.

 
СанСаныч Фоменко:

А есть разница между:

а<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]; 

 

 А ведь есть интереснее, например:

с <- b*a

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

??????

Речь не об этом

Был МQL4 - язык прекрасно сбалансированный между простой и возможностями, так нет, куча кодеров начала рассуждать о "вкусностях" и никак не могут успокоиться. Вот и получили жОППу и НАСЛЕДОВАНИЕ убытков.

Некорректно сравнивать языки, оперирующие матрицами и числами. 
 
СанСаныч Фоменко:

А есть разница между:

а<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]; 

 

 А ведь есть интереснее, например:

с <- b*a

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

??????

Речь не об этом

Был МQL4 - язык прекрасно сбалансированный между простой и возможностями, так нет, куча кодеров начала рассуждать о "вкусностях" и никак не могут успокоиться. Вот и получили жОППу и НАСЛЕДОВАНИЕ убытков.

То, что было, все осталось. Не хотите, не используйте ООП. Можно не касаться ООП, не думать о нем, жить как раньше.

После вашего  "с <- b*a" до открытия позиции еще необходимо выполнить ряд действий, если выполнять их с применением ООП жизнь становится приятней и веселей. 

Почему бы вам не выразить недовольство создателям R или матлаба от того, что из этих программ невозможно позиции открывать и вообще, что они не завязаны непосредственно на выполнение сделок? Так же можно докалупаться до любого языка программирования, практически ни в одном языке нет действия с матрицами и т.п. Вы сравниваете вещи из разных категорий.

 
Dmitry Fedoseev:

То, что было, все осталось. Не хотите, не используйте ООП. Можно не касаться ООП, не думать о нем, жить как раньше.

После вашего  "с <- b*a" до открытия позиции еще необходимо выполнить ряд действий, если выполнять их с применением ООП жизнь становится приятней и веселей. 

Почему бы вам не выразить недовольство создателям R или матлаба от того, что из этих программ невозможно позиции открывать и вообще, что они не завязаны непосредственно на выполнение сделок? Так же можно докалупаться до любого языка программирования, практически ни в одном языке нет действия с матрицами и т.п. Вы сравниваете вещи из разных категорий.

Дополню, используя ООП, можно при необходимости создать класс CMatrix, реализующий матричные операции и переопределить в нем + - * / =

И все станет так же просто. Я думаю, даже создавать CMatrix не надо, все уже давно реализовано в какой-либо из библиотек.

CMatrix m1, m2;
// заполняем матрицы
CMatrix m3 = m1 + m2;

Кстати, ща мы огорчим Сан-Саныча )) Уважаемый, а вы в курсе, что в вашем любимом R также присутствуют аж две системы ООП?)))))))) Только не запейте с горя ))

R. Этот язык для статистического анализа данных также имеет 2 системы объектно-ориентированного программирования — S3 и S4. Обе унаследованы от языка S (что не удивительно, учитывая, что R — это open source реализация коммерческого S). S4 по большей части соотвествует реализациям ООП в современных мейнстримовых языках. S3 является более легковесным вариантом, элементарно реализуемым средствами самого языка: создаётся одна общая функция, диспетчеризирующая запросы по атрибуту «class» полученного объекта.

 
Alexey Volchanskiy:

Дополню, используя ООП, можно при необходимости создать класс CMatrix, реализующий матричные операции и переопределить в нем + - * / =

И все станет так же просто. Я думаю, даже создавать CMatrix не надо, все уже давно реализовано в какой-либо из библиотек.

Можно, но тут СанСанч ответит, что это будет сделано не лучшим способом, вроде как в этом R, как считает СанСаныч, эти матричные операции сделаны самым наилучшим способом, наверно кодированием на чистом ассемблере.

Разница с R еще в том, что в R все готовенькое, только бери и пользуйся, а тут самому все надо делать. 

 
Dmitry Fedoseev:
Можно, но тут СанСанч ответит, что это будет сделано не лучшим способом, вроде как в этом R, как считает СанСаныч, эти матричные операции сделаны самым наилучшим способом, наверно кодированием на чистом ассемблере.

Я дополнил свой предыдущий пост - оказывается, в R есть ООП. Ужасы ))

Кcтати, я пробовал этот R -  тормоз редкостный. ЧТо и неудивительно - интерпретатор. Так что никакого асма.

 
Alexey Volchanskiy:

Я дополнил свой предыдущий пост - оказывается, в R есть ООП. Ужасы ))

Кcтати, я пробовал этот R -  тормоз редкостный. ЧТо и неудивительно - интерпретатор. Так что никакого асма.

Не умеешь кошек готовить, молчи...

 

R. Этот язык для статистического анализа данных также имеет 2 системы объектно-ориентированного программирования 

Ну и что? Там еще много чего есть такого, чего нет в MQL. Ну и что?

Речь ведь не об этом. Алгоритмическое превосходство одного языка над другим вообще не имеет значения после некоторого порога возможностей по отношению к предметной области.

Жуете здесь кодеровскую вкусовщину, а лично я здесь ради торговли.

 

ПС.

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

 
Vasiliy Sokolov:

Вот пожалуйста. Иерархия торговых классов в стандартной библиотеке:

 Из нее следует, что модуль управления капиталом - это эксперт. Трейлинг стоп - это тоже эксперт. Эксперт включает в себя другие эксперты.  Такое противоречивое наследование получается из-за того, что и трейлингу и управлению капиталом требуется доступ к некоторым приватным данным и методам базового эксперта. 

Ну, это всего лишь недостаточная продуманность системы классов.

С другой стороны - мой шаблон советника - полностью построен на основе классов Стандартной Библиотеки, и я не вижу никаких особых проблем. Реализуется идеология "фабрики частей эксперта". Для пользователя классов написание советника состоит в написании этой самой фабрики, которая умеет создавать генератор входов, фильтры, дефайнеры СЛ-ТП, и прочие составляющие ТС.

 

 
СанСаныч Фоменко:
 

Был МQL4 - язык прекрасно сбалансированный между простой и возможностями, так нет, куча кодеров начала рассуждать о "вкусностях" и никак не могут успокоиться. Вот и получили жОППу и НАСЛЕДОВАНИЕ убытков.

Что-то я не пойму... Ну не используйте новшества MQL5, да и все.

Мне наследование и виртуальные функции очень нравятся. Но, когда требуется сделать по-быстрому что-то простое - я их не использую. В тоже время, когда требуется сложная обработка комплексных данных - с ООП это делается гораздо удобнее, и что главное - дальнейшая поддержка также весьма упрощается.

 
George Merts:

Что-то я не пойму... Ну не используйте новшества MQL5, да и все.

Мне наследование и виртуальные функции очень нравятся. Но, когда требуется сделать по-быстрому что-то простое - я их не использую. В тоже время, когда требуется сложная обработка комплексных данных - с ООП это делается гораздо удобнее, и что главное - дальнейшая поддержка также весьма упрощается.

Я с Вами полностью бы согласился, если бы не одно весьма неприятное для содержательного  трейдинга обстоятельство: в MQL ВООБЩЕ отсутствует инструменты для статистической обработки котировок. Особенно это заметно, имея дело с R. Любой пустяк требует программирования. А про модели я вообще помолчу.

Но это не все.

Запрещены внешние библиотеки, а следовательно R маркете. Если бы не это ограничение я бы просто обогатился без всякого риска на продаже очень качественных индикаторов.

Но и это не все.

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

Вот такой бэкграунд для ООП. А так, это дело вкуса