Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мужики!
Каждому свое.
Я предпочитаю некачественный код без ООП, но который приносит прибыль, "качественному" с ООП коду, который сливает депо вертикально.
Хотите понять? Юзайте R. Сравните... Но без меня. Влез, было свободное время...
Ага. Я такой крутой, бабло прет ко мне рекой... только время свободного нет.
СанСаныч, ну это же ведь вы сетовали на отсутствие векторной и матричной арифметики? Благодаря ООП можно обеспечить себя средствами позволяющими "написать а=в, если "а" и "в". вектора.
...
Чепуха.
Без всякого ООП разрабатывались проекты трудоемкостью несколько сот человеко-лет. Как я понимаю коллективы программистов численностью несколько сот человек в настоящее время большая редкость.
...
Прикольно, что СанСаныч пишет в другой ветке:
R декларативный язык программирования, с императивным не сравним и сравнивать как минимум глупо. Классы задач другие.
Действительно, глупо. R специализированный язык для разработки центральной части торговой системы - принятия торговых решений. А МКЛ вообще не имеет для этого средств.
Вот поэтому вам и не нужен ООП в MQL, вам от MQL нужен один раздел, торговые функции. Для вас MQL это лопата для выполнения рутинной операции. Могу копать могу не копать. А вот по поводу нужно ли копать, милости просим в R.
Для других же MQL основной язык программирования, и им без ООП никуда.
Без ООП крайне тяжело писать большие проекты, количество ошибок(логических и времени исполнения) будет расти квадратично(знаменитая формула errors = (more code)^2).
Чепуха.
Без всякого ООП разрабатывались проекты трудоемкостью несколько сот человеко-лет. Как я понимаю коллективы программистов численностью несколько сот человек в настоящее время большая редкость.
Чтоб организовать работу коллектива даже несколько десятков человек необходимо начинать с разработки проектной документации. Уже писал выше об этом. Собственно кодирование - это примерно 10% трудоемкости разработки больших программ. Как ООП упростит этап проектирования программы?
Вот поэтому больших коллективов больше и нет. С ООП отпала необходимость в больших коллективах. Разработка стала проще и быстрее. Я сейчас о разработке именно проектной документации. С ООП можно описать напрямую понятия для которых в процедурке потребовался бы коллектив и всякие трюки. Для примера математическая логика: множество А частично включено в множество Б. С ООП прям так и пишешь: класс Б наследуется от класса А, класс А кроме публичных данных имеем приватные.
ПС.
Может мне кто-нибудь объяснит, как ООП связан с качеством программирования?
Для меня качество программирования - это когда я беру через полгода-год текст программы и могу разобраться с тем что я лично там написал... и не только разобраться, но и внести изменения....
Этого эффекта я добиваюсь:
Где здесь ООП? А вот ГОСТ ЕСПД крайне полезен для получения качественного в моем смысле кода
А это вообще вопрос за гранью добра и зла. Для меня качественный код это тот который работает наиболее быстро и потребляет наименьше памяти по сравнением с другими реализациями. А вот сможете ли вы прочитать его через пол года год, это уже вопрос документирования (коменты ставить нужно не лениться) и профессионализма. Я вот без проблем читаю и двух трёх летние свои коды (хотя не имел тогда привычки коментировать, спасибо MQ приучили).
Ага. Я такой крутой, бабло прет ко мне рекой... только время свободного нет.
СанСаныч, ну это же ведь вы сетовали на отсутствие векторной и матричной арифметики? Благодаря ООП можно обеспечить себя средствами позволяющими "написать а=в, если "а" и "в". вектора.
Конечно можно с ООП, а можно и без ООП...
Для меня это старый разговор на этом сайте.
Еще когда только поднимался вопрос про МКЛ5 я был против и многократно об этом писал.
Суть моей аргументации состояла в следующем.
Если мы кладем на одну чашу весов квик+метасток, а на другую чашу весов МТ4 + МКЛ4, то разница колосальная, вообще невозможно сравнивать.
Если мы начнем сравнивать четверку и пятерку, то надо взять большую лупу, что разглядеть разницу, причем совершенно не понятно как эта разница влияет на результативность трейдинга - все это кодерские штучки.
Если про вектора.
Вот строка для линейной регрессии:
z = lm(x~y)
Эта строка относится к трейдингу. z - это класс типа lm, содержащий кучу сведений о результатах подгонки линейной регрессии с разными там коэффициентами, доверительными интервалами..... графиками и прочая, прочая..
А теперь напишите эту строчку на мкл4/мкл5. Для этого нужен ООП? Можно с ООП, прочитав кучу книг и затратив время на обучение тому, что непосредственно к трейдингу не относится. а можно и без ООП. Примерно тоже самое с точки зрения результата. Вот об этом речь. Или мы занимаемся делом, или же мы занимаемся бантиками и рюшечками.
1. Конечно можно с ООП, а можно и без ООП...
Для меня это старый разговор на этом сайте.
Еще когда только поднимался вопрос про МКЛ5 я был против и многократно об этом писал.
Суть моей аргументации состояла в следующем.
Если мы кладем на одну чашу весов квик+метасток, а на другую чашу весов МТ4 + МКЛ4, то разница колосальная, вообще невозможно сравнивать.
Если мы начнем сравнивать четверку и пятерку, то надо взять большую лупу, что разглядеть разницу, причем совершенно не понятно как эта разница влияет на результативность трейдинга - все это кодерские штучки.
2. Если про вектора.
Вот строка для линейной регрессии:
z = lm(x~y)
Эта строка относится к трейдингу. z - это класс типа lm, содержащий кучу сведений о результатах подгонки линейной регрессии с разными там коэффициентами, доверительными интервалами..... графиками и прочая, прочая..
А теперь напишите эту строчку на мкл4/мкл5. Для этого нужен ООП? Можно с ООП, прочитав кучу книг и затратив время на обучение тому, что непосредственно к трейдингу не относится. а можно и без ООП. Примерно тоже самое с точки зрения результата. Вот об этом речь. Или мы занимаемся делом, или же мы занимаемся бантиками и рюшечками.
1. Если сравнивать квик+метасток и МТ4 + МКЛ4. Разница действительно большая.
- квик+метасток - быстро программировать, но очень ограниченные возможности.
- возможности ограничены только собственной фантазией. Разумеется над реализацией фантазий надо поработать.
2. ООП позволяет такое же сделать.
СанСаныч, нескромный вопрос, а вы хоть два комплексных числа сможете самостоятельно перемножить?
А теперь напишите эту строчку на мкл4/мкл5. Для этого нужен ООП? Можно с ООП, прочитав кучу книг и затратив время на обучение тому, что непосредственно к трейдингу не относится. а можно и без ООП. Примерно тоже самое с точки зрения результата. Вот об этом речь. Или мы занимаемся делом, или же мы занимаемся бантиками и рюшечками.
ООП и нужен, чтобы не заниматься бантиками и рюшечками. Ваш R - это и есть ООП, а в МТ ООП нет, точнее в эмбриональном состоянии, на уровне конца 80-х. Классы, наследование и прочая лабуда, отнюдь не самоцель, а для того что бы матрицу a*b. И не думать об этом вообще.
Я придерживаюсь мнения, что MQL для сложных проектов в принципе непригоден, и должен служить не более чем интерфейсом между терминалом и внешним ПО. Сейчас из за отсутствия ООП, он таким интерфейсом полноценно служить не может. Отсюда разнообразные MQL библиотеки и кодебейсы, большинство функционала которых можно свободно получить подключив COM (ActiveX) функционал, что без танцев с бубном невозможно. Отсюда и необходимость хоть в каком-то подобии ООП. И мы сидим, и тупо творчески перерабатываем на МКЛ уже сто раз написанные библиотеки.
Короче, ООП, когда терминал сам является объектом и м.б свободно подключен к чему угодно и при этом управляем. Напомню, что ООП задумывалось для многократного и повсеместного использования уже написанного, а не переделывания с одного языка на другой, что для ООП нонсенс.
СанСаныч, нескромный вопрос, а вы хоть два комплексных числа сможете самостоятельно перемножить?
Вот поэтому вам и не нужен ООП в MQL, вам от MQL нужен один раздел, торговые функции. Для вас MQL это лопата для выполнения рутинной операции. Могу копать могу не копать. А вот по поводу нужно ли копать, милости просим в R.
Для других же MQL основной язык программирования, и им без ООП никуда.
Вот поэтому больших коллективов больше и нет. С ООП отпала необходимость в больших коллективах. Разработка стала проще и быстрее. Я сейчас о разработке именно проектной документации. С ООП можно описать напрямую понятия для которых в процедурке потребовался бы коллектив и всякие трюки. Для примера математическая логика: множество А частично включено в множество Б. С ООП прям так и пишешь: класс Б наследуется от класса А, класс А кроме публичных данных имеем приватные.
А это вообще вопрос за гранью добра и зла. Для меня качественный код это тот который работает наиболее быстро и потребляет наименьше памяти по сравнением с другими реализациями. А вот сможете ли вы прочитать его через пол года год, это уже вопрос документирования (коменты ставить нужно не лениться) и профессионализма. Я вот без проблем читаю и двух трёх летние свои коды (хотя не имел тогда привычки коментировать, спасибо MQ приучили).
Может быть я чего-то не понимаю в современном программировании?...
Описание любой программы - это описание действий над объектами, а не описание объектов. Откройте любой любой советник, индикатор, да откройте документацию на МКЛ: сплошные действия. Машка - это действие, которое порождает кривую по определенному алгоритму. Где Вы видели бы в описание "наследовалось"? Может поэтому я и не понимаю всех этих ООПов
Вот поэтому больших коллективов больше и нет
Это от убогости нашего бытия, как писал Абалкин в начале 90-х "примитивизации". В Майкрософт работает 30 000 программистов. А РФ просто не пишут больших программ. Завод, на котором я работал, такую программу заказал за бугром, а не разработал сам как это делали в СССР. Сначала пришла документация: отдел такой-то делает то-то, а такой-то - то-то. А потом пришла программа. Стадийность и порядок разработки в точном соответствии с нашим ГОСТом ЕСПД. Какой ООП? Все это мелкотравчатые штучки типа запрета goto.
Для меня качественный код это тот который работает наиболее быстро и потребляет наименьше памяти по сравнением с другими реализациями.
А что есть возможность сравнивать разные реализации? Вам что, делать нечего писать несколько вариантов алгоритмов советников? Вы можете соревноваться с компиляторами оптимизирующего типа? Вы сможете написать на МКЛ перемножение матриц, которое будет быстрее выполняться, чем на R? Вы считаете, что Ваша программа на МКЛ будет работать быстрее, чем моя на R с учетом того, что всегда могу загрузить все ядра при этом без моих специальных усилий и знаний использую вычислительноемкие алгоритмы, скорость которых максимальна?
Продолжать?
Поэтому, если брать очень узкую сферу - личный советник, то вопрос наглядности кода, легкости его модификации первостепенный.
Для балансировки информации, так как некоторые совсем уже не следят за корректностью фраз:
Только теоретики могут рассказывать сказки про "все могу, смотрите на C". К сожалению, большая часть С кода в мире - это жутко воняющая куча, которую предпочитают не трогать. Фактически эти завалы процедурного С абсолютно не поддерживаемы. Только переводом их на ООП/классы ты получаешь хоть минимальную гарантию инкапсуляции/защиты данных этого кода.
У нас нет костылей или промежуточных врапперов, теряющих скорость. Данные предоставляются автоматически, их инициализация и докачка производится асинхронно. Ну и плюс сотни прямых функций...
Квик и Метасток никогда не были быстрыми и уже не будут. Это одни из самых медленных систем с халтурными языками автоматизации. В реальности они давно уже технологические зомби. Tradestation тоже близок к могиле после перепродаж компании - там все очень печально с экономической стороны.
В ближайшие полгода вы увидите массу новых возможностей MetaTrader 5 - у нас высвобождаются ресурсы и мы нацелены на скорую реализацию своих задумок.