Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее" - страница 9

 
Sergiy Podolyak:


Как и Вы я во главу угла ставлю читабельность программ, а не разные там ООПы.  

 

А теперь по сути Вашего поста о читабельности программ на разных языках.

Оставим С в покое - здесь не актуально 

Давайте по-простому, то, что встречается в практике.

Вот код на R:

a<- b + c

Как будет выглядеть код на МКЛ? Вообще не известно, так как для МКЛ необходимо уточнить что такое b и c.

Итак уточняю: вектора

Итак Ваш код №1

 

А потом я передумал и решил, что это матрицы. Как будет выглядеть Ваш код на МКЛ №2? На R код останется прежним и приведен выше, а что будет на МКЛ? А что будет с наглядностью?

 

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

А теперь Ваш код на МКЛ №3? 

 

МКЛ не имеет инструментов для обработки сложных объектов и я эту идею могу развивать здесь страницами в сторону усложнений. На R это будет несколько строчек, а вот на МКЛ... Если вообще не придется сложный объект делать из набора объектов.

Это по-поводу структур данных 

 

А теперь функционал. Не берем то, что вообще недоступно в МКЛ, а недоступно десятки тысяч функций. Возьмем то, что доступно. Случайные леса.

Итак код на R 

# подгонка и предсказание на наборе обучения целиком
        set.seed(849)
        rf              <- randomForest(trainX, trainY, 
                                                mtry    =       3,
                                                nodesize = 1,
                                                ntree   =       300); rf
        plot(rf)
        
        # ---------------------------------
        #  рисуем результат
        roc.plot(as.integer(as.factor(trainY))-1,
                 rf$votes[,2], main="")
        # ---------------------------------
        #  Предсказываем
                pred_rf         <-  predict(rf, 
                                                newdata = testX, 
                                                type = "response")
        # ---------------------------------
        #  сравниваем вне выборки
        table(pred_rf,  testY,       dnn = c("Предсказание", "Факт"))

А теперь Ваш ответ на алглиб, только не забудьте про аши. А может не будем копировать десятками страниц безумие из алглиб?

 

Приведенные Вами сравнения корректны в случае C и МКЛ и совершенно не корректны  в случае R. Безумие переписывать код с МКЛ на R. R имеет огромный инструментарий (8 тысяч пакетов и около 130 000 функций) и писать надо на R, предварительно изучив его возможности, а не тупо переписывать код с одного языка на другой. 

 

ПС.

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

 
Sergiy Podolyak:


Приведенные Вами сравнения совершенно не корректны.


R является алгоритмическим языком экстра класса и в нем имеется масса возможностей, которых нет в МКЛ. И причина очевидна. МКЛ рос из терминала, а R из статистики. По этой причине я противник каких-либо сравнений  алгоритмических возможностей этих двух языков - они предназначены для разных предметных областей.

Все что я пишу про R - это то, что R является дополнением для МКЛ, причем в самой важной части трейдинга - в принятии решений о позиции.  

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

Как и Вы я во главу угла ставлю читабельность программ, а не разные там ООПы.  

 

А теперь по сути Вашего поста о читабельности программ на разных языках.

.......

Сан-Саныч, дорогой, я - программист. Понимаете?

Нет, Вы не понимаете...

я - программист.

То есть я - человек, который не делает работу ДВАЖДЫ.

Само программирование, как и вся кибернетика, как и вся вычислительная математика, как и вся математика  - всё это родилось от лени - чтобы не делать работу дважды.

Поэтому я не буду учить ЕЩЁ ОДИН марсианский синтаксис какого-то там языка R.

Почему ? Да потому что я специально ленивый (читай: "опытный неглупый программист") и не падкий на новые синтаксисы и фреймворки, которых бесчисленное множество.

И второе: любой новый дурацкий или полу-дурацкий синтаксис нового фреймворка - ИСКАЖАЕТ моё незатуманенное математическое мышление. Понимаете?

Чем больше я буду купаться в новых фреймворках, которые написали неизвестно кто и с неизвестно каким мышлением, тем больше я буду ТУПЕТЬ от своих вопросов "почему так?". А  это нехорошо. Принимая новый синтаксис, Вы принимаете и способ мышления его автора, и это влияет на Ваше мировосприятие.  Автором английского языка является английский и американский народ - это в общем - то были тогда приличные люди. Автором языка Си и синтаксиса MQL4 является группа высококвалифицированных программистов. А автором синтаксиса R является безымянный анонимный автор, недо-физик, который может и маньяк-шизоид.

Язык Си (и MQL4-5) этим не страдает, он максимально близок к английскому, на котором и пишутся алгоритмы и математические тексты.

Поэтому пока все молодые быстро-быстро мечутся от одного фреймворка к другому, я медленно дожёвываю свою траву изучаю алгоритм, потом медленно спускаюсь с горы думаю, как это разбить на мелкие понятные подпрограммы, а потом ........ пишу работающую программу, которая служит мне верой и правдой 20+ лет.

В указанной мною ранее вверху вверху моей библиотеке подпрограмм OBz есть процедура решения систем линейных уравнений по Гауссу-Жордано, которую я написал на Си  примерно в 1998-1999 году, то есть 16-17 лет назад. Она работает как и раньше и там нечего менять. Точнее, при переносе с Си на MQL4 всё-таки обнаружилась одна ошибка, которая могла в очень редких случаях приводить к неточным результатам. Компилятор MQL4-5 выдал правильное предупреждение, которое не выдавал ни один компилятор, включая Watcom, Borland, Lattice C (MS Visual Studio), разных многих версий - ни разу за 16 лет.

Метаквотам спасибо.

 
СанСаныч Фоменко:
Приведенные Вами сравнения совершенно не корректны.


R является алгоритмическим языком экстра класса и в нем имеется масса возможностей, которых нет в МКЛ. И причина очевидна. МКЛ рос из терминала, а R из статистики. По этой причине я противник каких-либо сравнений  алгоритмических возможностей этих двух языков - они предназначены для разных предметных областей.

Все что я пишу про R - это то, что R является дополнением для МКЛ, причем в самой важной части трейдинга - в принятии решений о позиции.  

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

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

Право самостоятельного и независимого развития - самое дорогое право в жизни.

Вы рассуждаете с логикой человека который пришел к МQL из вне, будучи уже сформированным специалистом, я рассуждаю как человек, который "вырос" на MQL.

Нам друг друга не понять.

 

Да, я со стороны и не могу удержаться...

Вот как выглядит ниже приведенная цитата человека со стороны.

Итак цитата:

Право самостоятельного и независимого развития - самое дорогое право в жизни. 

Добавляю:

Сказал Маугли и изрек мудрость, которую он постиг за свои первые 16 лет:

"Мы с тобой одной крови" 

 

ПС.

Сначала хотел в виде ответа на предыдущий пост, но потом передумал, так как это относится к очень многим на этом форуме. 

 

ПСПС

Мужики!

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

Ведь делов-то: часа 3-4.. Мозги будут другие... А вот это дорогого стоит. 

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

Как и Вы я во главу угла ставлю читабельность программ, а не разные там ООПы.  

 

А теперь по сути Вашего поста о читабельности программ на разных языках.

Оставим С в покое - здесь не актуально 

Давайте по-простому, то, что встречается в практике.

Вот код на R:

a<- b + c

Как будет выглядеть код на МКЛ? Вообще не известно, так как для МКЛ необходимо уточнить что такое b и c.

Задам несколько вопросов.

1. Вы понимаете, что R написан на С++, R это по сути набор обёрток функций и классов С++? Это тоже самое, что собрать в кучу стат и мат библиотеки на С, оформить в классы и обозвать например D? 

2. Если Вы поняли о чем я спрашивал в первом вопросе, то вот второй: Понимаете, что матрицы, вектора или что либо ещё на MQL могут выглядеть так:

a=b+c; 

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

Да, я со стороны и не могу удержаться...

Вот как выглядит ниже приведенная цитата человека со стороны.

Итак цитата:

Право самостоятельного и независимого развития - самое дорогое право в жизни. 

Добавляю:

Сказал Маугли и изрек мудрость, которую он постиг за свои первые 16 лет:

"Мы с тобой одной крови" 

 

ПС.

Сначала хотел в виде ответа на предыдущий пост, но потом передумал, так как это относится к очень многим на этом форуме. 

 

ПСПС

Мужики!

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

Ведь делов-то: часа 3-4.. Мозги будут другие... А вот это дорогого стоит. 

Покажите Ваш личный результат использования языка R.

Покажит свой талант, а не талант разработчиков R.

Можете?

Человеку с талантом, нужна задача, человеку без таланта - решение.

 
Реter Konow:

Покажите Ваш личный результат использования языка R.

Покажит свой талант, а не талант разработчиков R.

Можете?

Человеку с талантом, нужна задача, человеку без таланта - решение.

Хороший вопрос. Присоединяюсь.
 
Реter Konow:

Покажите Ваш личный результат использования языка R.

Покажит свой талант, а не талант разработчиков R.

Можете?

Человеку с талантом, нужна задача, человеку без таланта - решение.

Что значит "показать"?

У меня есть ПАММ из-за фунта сейчас не работает...

Дело ведь не в этом....

Вот пишу о моделях, но дело не в моделях - дело как всегда в деньгах, а точнее в уверенности их получения в будущем.

По мне главная проблема торговых систем на финансовых рынках не в применении или не применении сложных математических моделей, а в переобученности (сверх подгонки) этих самых ТС. Переобученность проявляется в том, что со временем (если не сразу) ТС теряет свои показатели по отношению к своему обучению. 

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

Я занят этим. Все необходимые инструменты для решения этой задачи имеются в R с избытком. Соответствующих инструментов в МКЛ нет вообще. 

 

Посмотрите ветку  Бурнакова про машинное обучение. Там я подробно на эту тему постил. Кстати  не я один.

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

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

Я занят этим. Все необходимые инструменты для решения этой задачи имеются в R с избытком. Соответствующих инструментов в МКЛ нет вообще. 

Вам говорят о том, что Вы используете готовые решения для своих задач, довольствуетесь тем что сделали другие, Вы не создадите ничего нового сверх того что уже есть в R (талант разрабов R). А что бы иметь уверенность в выделенном жирным нужно побольше, чем готовые решения в R, нужно иметь хотя бы возможность посмотреть внутрь того что создали другие, нужно уметь и иметь возможность это изменить или создать новое. Иначе уверенности не будет никогда.  
Причина обращения: