Проект S#.ShellAdvanced

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


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.


< 1 2 
JaguarFX

Avatar
Date: 6/18/2016
Reply


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

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

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

Mikhail Sukhov

Avatar
Date: 6/18/2016
Reply


lebedevsrg

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


Это не так.

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


А это верно.

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

JaguarFX

Avatar
Date: 6/26/2016
Reply


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

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

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

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

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

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

loading
clippy