Проект S#.ShellAdvanced
Atom Reply
6/9/2016


S#.Shell Advanced Edition - универсальный движок по запуску стратегий на S#.API, в развитии которого смогут принять участие заинтересованные участники сообщества.
Цель инициативы: создание и развитие универсального движка, с множеством различных компонентов и базовых стратегий, использование которого поможет участникам существенно ускорить внедрение собственных торговых идей на платформе на S#.API.

Для целей развития универсального движка мной зарегистрирован частный репозитарий
https://github.com/lebedevsrg/shelladvanced. Оплата репозитария будет за мой счет пока я остаюсь на платформе S#.

В настоящее время мной были внедрены следующие улучшения базовой версии S#.Shell, которыми я готов поделиться с сообществом в качестве первичного вклада в универсальный движок.
1. Базовая стратегия торговли по уровням (35% годовых в базовом варианте, но высокий риск ДД>60%).
2. Стратегия мониторинга общей просадки по счету за неделю и месяц с нотификацией по е-мейл в случае нарушения установленных лимитов просадки,
3. Отправка по е-мейл сообщений Лог-менеджера с выбранным уровнем критичности
4. Отправка смс-сообщений Лог-менеджера с выбранным уровнем критичности
5. Сворачивание программы в системный трей
6. Сохранение заявок/ордеров в указанную в настройках реляционную базу данных (на выбор: SQlLite, MSAccess) с последующим восстановлением при старте
7. Классы IndexFactory, ContinuousFactory, позволяющие "на лету" готовить индексные корзины и непрерывные склейки из инструментов, находящихся в директории Hydra, и использовать их в тестировании.
Кроме того, исправлен 101 баг исходного кода S#.Shell))
Ну как вы помните исправление багов начиналось еще тут (http://stocksharp.ru/forum/4045/S--Shell--Manual/)

Условия
Условия для включения в проект S#.ShellAdvanced:
1) статус «Трейдер» и статус «Слушатель S#» по классификации форума, и
2) 6+ месяцев участия в сообществе S# (отсчет с даты первого сообщения на форуме)
При этом важно желание и возможности участвовать в развитии проекта в виде алго-аналитика либо виде алго-разработка. Подробно суть ролей изложена в посте S#.PMO.
Если участник сообщества не соответствует указанным выше требованиям, но желает попасть в Проект – возможный путь подготовить ТЗ с интересной идей, реализовать ее на базовом варианте S#.Shell и опубликовать на форуме и в публичном репозитарии на github.com.

Идеи
Каждый Проекта участник Проекта может внести свою идею, как минимум изложив ее в виде тех.задания либо сделав самостоятельно как описание и так реализацию на практике. Под Тех.заданием здесь и далее подразумевается детальное изложение идеи в терминах S#.API.
В целом предполагается что реализация идей будет силами самих участников проекта. Но если участник сделал опубликовал интересную идею, то воплотить ее может и другой участник.
Платная реализация с привлечением центральной команды S# либо сторонних программистов тоже возможна, но только как исключение в случае если в Проекте нет разработчиков с необходимой компетенцией.

Со своей стороны вижу следующие направления развития S#.ShellAdvanced
1) базовая мультитаймфреймовая трейлинг-стоп стратегия,
2) базовая тренд-следящей стратегия на основе прорыва канала CCI,
3) базовая стратегия индексного (парного) трейдинга.

Прошу желающих принять участие, отписывать в этой ветке, с указанием ник-нейма на github.com. После проверки на соответствие вышеприведенным условиям вы будете добавлены как участник в частный репозитарий S#.ShellAdvanced.




13 Answers
Иван З.

Avatar
Training Articles author Donator
Date: 6/9/2016
Reply


Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 6/10/2016
Reply


Иван З. Перейти


Частный - это наверное private. Тоесть правильный перевод закрытый. Он не отображается публично пока не дадут доступ. У нас так же.
Thanks:

risty

Avatar
Programmer
Date: 6/13/2016
Reply


Мне даже инвайт приходил.
Но там page not found почему то, не разбирался.
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/14/2016
Reply


risty, это была тестовая отправка, когда я разбирался с функционалом github.com))
Topic starter
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/14/2016
Reply


ТЗ-1: Перевод компонентов Shell Advanced на Actipro WPF

Для дальнейшего интенсивного развития платформа нуждается в обновлении, соответственно первые 2 ТЗ будут достаточно техническими по сути (далее уже пойдут ТЗ на новые торговые компоненты).
Для реализации данного ТЗ в проект S#.ShellAdvanced ищется 1 разработчик.




Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 6/15/2016
Reply


lebedevsrg Перейти
ТЗ-1: Перевод компонентов Shell Advanced на Actipro WPF

Для дальнейшего интенсивного развития платформа нуждается в обновлении, соответственно первые 2 ТЗ будут достаточно техническими по сути (далее уже пойдут ТЗ на новые торговые компоненты).
Для реализации данного ТЗ в проект S#.ShellAdvanced ищется 1 разработчик.


1. Мы с Actipro перешли на DevExp. Субъективно последнее лучше как бизнес-компания + более широкое покрытие контролами.
2. Большинство из того, что требуется, в принципе было вынесено из Дизайнера и Терминала в Студию. Ну или на стадии вынесения.
3. Достаточно много вещей вне рамок задания, без которых продукт как ШеллАдвансед вряд ли будет сильно лучше текущего. Та же работа с историей, эмуляция, восстановление состояния.

Я думаю, что на текущем этапе, прежде чем начинать делать репу и созывать народ, надо хотя бы закончить ТЗ. Да, это труд, и необходимо описать его. Но это по крайней мере сильно приблизит конечный результат к реальному. Без такого папира можно 1) создать не то, что ожидается 2) банально не заинтересовать народ (раз автор даже документ поленился написать, то где гарантии, что не соскочит в середине процесса) 3) сделать новый Шелл с новыми проблема, которые потребует создание ШеллСуперАдвансед
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/16/2016
Reply


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

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

P.S: Вышеуказанное ТЗ возникло исключительно из-за того, что в xaml-редакторе VS2015 элементы Avalondoc перестали корректно отображаться.
Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 6/16/2016
Reply


lebedevsrg Перейти
а у нас тут вовсе не кружок любителей программировать на С#, основная тема у каждого из участников - развитие собственных торговых алгоритмов.


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

Текущий Шелл написан профессиональным программистом. Если вы хотите сделать силами людей, которые просто умеют программировать, то вы продукт получите хуже оригинального. Стоит ли тратить деньги.
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/18/2016
Reply


Михаил, я конечно предпочел бы ситуацию, в которой последние 3 года были бы потрачены основной командой S# не на развитие конкурентов Tradematic/TSlab в виде Studio&Designer, а на развитие движка S#.Shell силами профессиональных программистов))
Но ситуация сейчас именно такая, командой S# взяла и держит курс на "объектно-ориентированный конструктор", а те участники, которые наоборот перешли от аналогичных систем из-за их понятной ограниченности на S# (как я в 2013 ушел с Tradematic на S#), остаются без гибкого движка. И вынуждены в основном либо делать все с нуля на основе учебных примеров, либо нанимать сторонних программистов.
Topic starter
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/18/2016
Reply


Для читающих тему еще раз о сути в двух строках:
- универсальный движок поможет избежать участникам траты массы собственного времени на старт работы с собственными стратегиями на основе S# за счет переиспользования накопленных достижений других участников проекта,
- публикуемые тут мной ТЗ (и в дальнейшем будут от других участников), это не задания которые нужно кому-либо делать за деньги, - это "пропуск" в проект S#.ShellAdvanced для тех, кто еще не в проекте и хочет присоединиться.
Topic starter
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/18/2016
Reply


ТЗ-2: Дочерняя трейлинг-стоп стратегия на основе АТР

Базовые защитные стратегии StopLoss/TakeProfit в составе S#.APi не достаточно удобны для применения в реальных торговых алгоритмах, в силу нескольких причин :
1) стратегии работаю либо по фиксированным ценам, либо по фиксированым отступам, и не содержат алгоритмов, которые позволили бы шкалировать уровни с учетом мер текущей волатильности (н-р АТР),
2) стратегия StopLoss при использовании в качестве трейлинг-стопа не позволяет защитить прибыль в процентах от достигнутой.

Целью данного технического задания является создание новой дочерней защитной трейлинг-стоп стратегии на основе уровней АРТ, и позволяющей защитить указанный процент от прибыли.
Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 6/18/2016
Reply


lebedevsrg Перейти

Но ситуация сейчас именно такая, командой S# взяла и держит курс на "объектно-ориентированный конструктор",


Это не так.

lebedevsrg Перейти
И вынуждены в основном либо делать все с нуля на основе учебных примеров, либо нанимать сторонних программистов.


А это верно.

У нас концепция вся та же, что и 5 лет назад. Мы то как раз идет тем курсом, что наметили. А вот нам постоянно пытаются навязать или приклеить то, чего или никогда не было, или никогда не будет.
Thanks:

Лебедев Сергей

Avatar
Training
Date: 6/26/2016
Reply


Новость: Глобальное упрощение подключение новых стратегий

Базовый вариант S#.Shell содержит два документа, определяющих раскладку панелей для запуска: StrategyDocument и TestingDocument, и так же класс BaseShellStrategy содержит два набора свойств – один для исполнения, и другой для тестирования стратегии.

Данный подход к разделению запуска на тестирование и выполнение не особенно удобен, т.к. при подключение новых созданных стратегий в работу требуется:
- у каждой стратегии прописать два набора свойств (исполняемый и тестовый),
- в меню команд прописать две разные команды на создание стратегий,
- в классе MainWindow() создать два разных метода на инициацию стратегий,
- в классе SettingsEngine() создать две переменных для названия файла-контейнера и две пары разных методов на загрузку/восстановление стратегий,
и т.д. и т.п.

В силу сложности данного метода и с учетом 2х летнего опыта работы на платформе S#.Shell мной было принято решение о существенном упрощении подхода к подключение стратегий:
- полное удаление разделения свойств стратегий на исполняемые и тестовые,
- полное "выпиливание" из кода TestingDocument, с одновременным привнесением в StrategyDocument необходимый панелей, видимость которых динамически меняется в зависимости от базовых параметров.
При этом все параметры тестирования вынесены на отдельную вкладку, и настройки тестирования теперь сохраняются в виде отдельного настроечного сета, независимого от класса стратегии.
Переключение режима исполнения стратегий теперь происходит по выбору нужного значения в свойстве "Режим запуска".

В результате сделанных улучшений, время на подключение в работу новых стратегий сократилось более чем в два раза.
ShellAdv-p1.png 123.4KB (3)
Topic starter
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy