Обсуждение статьи "Универсальный торговый эксперт: индикатор CUnIndicator и работа с отложенными ордерами (часть 9)" - страница 2

 
Titika:

Только начала изучать UnExpert. Все было хорошо до сегодняшнего дня и вдруг, посыпались ошибки в различных файлах библиотеки Message, Dictionary, Sessioninfo и других. Что могло произойти?

Это изменения в языке, которые больше не разрешают некоторых вольностей. Правится легко.

 
fxsaber:

Это изменения в языке, которые больше не разрешают некоторых вольностей. Правится легко.

Посмотрел свой код и обомлел. У некоторых методов был не указан возвращающий тип. Странно что до этого компилировалось.

 
Vasiliy Sokolov:

Посмотрел свой код и обомлел. У некоторых методов был не указан возвращающий тип. Странно что до этого компилировалось.

Да вот как-то даже в свежей статье такое оказалось

В ZIP-библиотеке, если память не изменяет, такой же случай был и работал раньше.

 

Сеодня написалсвой первый советник, основанный на Универсальном Движке. Хочу сказать Вай и выразить автору большую благодарностьза проделанную работу.

Советник удалось написать всего за один день, на практике разбирая основные классы и функции. Сейчас подал заявку на его размещение в CodeBase, но не уверен что его пропустят, так как без основной библиотеки Универсального Движка он не проходит последний тест на компилируемость. Написал модератотрам, может пропустят.

Очень мне напоминает библиотеку S#.Shell с платформы StockSharp, но проект гораздо эффективней и оптимальней.

Небольшие замечания

1. Класс CTrailingMoving по-хорошему тоже нужно перевести на использование CUnIndicator. раз уже он введен

2. Метод Modify() класса CTrailingClassicдействительно работает неверно, это было замечано еще в обсуждение статьи "Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6) ( ссылка), но осталось не исправленным.

Правильное завершение метода должно включать проверку на превышение значения m_step_modify:

   if(m_position.Direction()==POSITION_TYPE_BUY)
      {
         n_sl=extremum-m_diff_extremum;
         if(n_sl-m_position.StopLossValue()>m_step_modify) return m_position.StopLossValue(n_sl);
      }
   else
      {
         n_sl=extremum+m_diff_extremum;
         if(m_position.StopLossValue()-n_sl>m_step_modify) return m_position.StopLossValue(n_sl);
      }

3. Стоп-лосс нужно ставить сразу, а не в SupportBuy/SupportSell, н-р если советник планово работает на М15, то позиция быдет 15 мин без СЛ, это не хорошо.

В текущей версии Универсального Движка это можно достич двумя спсобами:

а) сделать метод RebuildPositions класса CStrategy публичным,

в) сделать рабочим ТФ М1, а все ТФ всех используемых исдикаторов отвязать от ТФ Советника.

НО это все мелочи.

Глобально

Хочу автору пожелать продолжить работу над развитием Универсального движка, тем более что запросы от сообщества есть.

Уже год не было ни одного обновления. Некто Artyom Trishkin накатал уже статей на тему альтернативной универсальной библиотеки, но все равно даже сейчас он не вышел на уровень Универсального движка - так жалкий аналог, не покрывающий даже 1/3 реализованных в последней версии УД функций (полную совместимость его библиотеки с МТ4 плюсом вообще не считаю - это уже реально никому не нужно).

 
Sergey Lebedev:
...

Уже год не было ни одного обновления. Некто Artyom Trishkin накатал уже статей на тему альтернативной универсальной библиотеки, но все равно даже сейчас он не вышел на уровень Универсального движка - так жалкий аналог, не покрывающий даже 1/3 реализованных в последней версии УД функций (полную совместимость его библиотеки с МТ4 плюсом вообще не считаю - это уже реально никому не нужно).

У этого "некто" несколько иная задача, чем "сразу и сейчас" дать всем инструмент лёгкого написания программ. Проект развивается, и это только скорее всего десятая его часть. Так что не судите объект по его зародышу - рано - не родился он ещё.

 
Вполне могу поверить, что через +80 статей ваш проект существенно перегонит проект Универсального Движка, но вот на этих выходных когда я сравнивал оба проекта я сделал выбор в сторону УД, ваш пока в той фазе что потребуется много времени догнать.
Наличие конкурентных универсальных платформ хорошо когда они одновременно развиваются сообществом, а не замораживаются после потери автором интереса к проекту. Ведь вы сделав 100+ статей также прекратите поддерживать свой проект??? Интерес ведь не может поддерживаться постоянно! А после вас появится еще один универсализатор со своим собственным уникальным видением универсальной библиотеки и с планом на 200+ статей???
Соответственно я бы предложил подумать над тем зачем эти аналоги нужны конечным пользователям, и по каким кардинальным причинам вам потребовалось все писать с нуля, вместо развития созданного к моменту начала ваших работ Универсального Движка и создания за это время 19-20 его новых улучшений/классов?
 
Sergey Lebedev:
Вполне могу поверить, что через +80 статей ваш проект существенно перегонит проект Универсального Движка, но вот на этих выходных когда я сравнивал оба проекта я сделал выбор в сторону УД, ваш пока в той фазе что потребуется много времени догнать.
Наличие конкурентных универсальных платформ хорошо когда они одновременно развиваются сообществом, а не замораживаются после потери автором интереса к проекту. Ведь вы сделав 100+ статей также прекратите поддерживать свой проект??? Интерес ведь не может поддерживаться постоянно! А после вас появится еще один универсализатор со своим собственным уникальным видением универсальной библиотеки и с планом на 200+ статей???
Соответственно я бы предложил подумать над тем зачем эти аналоги нужны конечным пользователям, и по каким кардинальным причинам вам потребовалось все писать с нуля, вместо развития созданного к моменту начала ваших работ Универсального Движка и создания за это время 19-20 его новых улучшений/классов?

Вы за то, чтобы всем ездить на одной марке авто, летать одной авиакомпанией на единственной марке самолёта, и т.д., и т.п. ?

И, да, я не стараюсь "догнать и обогнать", и засадить всё кукурузой... Я делаю свой самостоятельный проект.

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

И с чего вы взяли, что я, затеяв огромную работу, вот так просто и в одночасье возьму и заброшу её? Конечно же нет. И потенциала для развития очень много.

 
Sergey Lebedev:

...

Глобально

Хочу автору пожелать продолжить работу над развитием Универсального движка, тем более что запросы от сообщества есть.

Уже год не было ни одного обновления. Некто Artyom Trishkin накатал уже статей на тему альтернативной универсальной библиотеки, но все равно даже сейчас он не вышел на уровень Универсального движка - так жалкий аналог, не покрывающий даже 1/3 реализованных в последней версии УД функций (полную совместимость его библиотеки с МТ4 плюсом вообще не считаю - это уже реально никому не нужно).

Добрый день. Спасибо за Ваш отзыв. Оптимальным видится размещение кодов УТЭ в публичную систему контроля версий (Git или МТ'шную). В этом случае, пользователи самостоятельно смогут фиксить ошибки и вносить доп. изменения/улучшения в код после моего code review. Думается такая система развития проекта для open source оптимальная, т.к. тащить все в одиночку никому не под силу.

Что касается самого УТЭ, то считаю что основной его функционал сформирован. Он покрывает большинство наиболее частых торговых функций. Поэтому развитие УТЭ в том же направлении не даст принципиально новых вещей. Однако, глобальный толчок в развитии УТЭ может внести функциональный фреймворк для работы с данными. Идея в том, что бы оперировать с системными структурами в объектном стиле а работать с коллекциями (в т.ч. системными) в функциональном. При этом будет стерта четкая грань между системными и пользовательскими типами данных а запросы по их обработки будут создаваться "на лету" самими пользователями (что-то вроде LINQ в C#). К сожалению языковые ограничения не позволяют написать этот фреймворк на раз два, поэтому это пока еще только идея. 

 

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

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

Заранее спасибо...

 
Олег, может быть у вас будет желание привнести свой вклад в разитвие Универсального Торгового эксперта, и выложите в Codebase примеры ваших работ на основе УТЭ.