Помогаем проекту развиваться
OsEngine - наш общий проект

И на этой странице можно видеть как и куда развивался проект OsEngine. Кто вносит в него изменения и помогает проекту стать лучше.

Здесь Вы можете помочь нашему сообществу.

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

Программисты в свою очередь - смогут видеть востребованные задачи проекта. А также то, куда он идёт.

Уже в работе
Описание Тип проекта Делает Взято в работу Дней в работе
Коннектор к OKEX Расширение Denisqa 29
Скринеры. Позиций набирает больше, чем задано в параметре макс позиции Баг Алексей Ван 1

В проекте и обсуждении
Описание Тип проекта Добавлен (кем)
Разделить ServerMaster на три независимых Архитектура Алексей Ван Сделать
Добавить поддержку произвольного ТФ Расширение Ghost-mo Сделать
Неточности в учете объемов в реал-тайм Баг newst Сделать
Добавить TickAllCandleState в оптимизатор Расширение Garik89 Сделать
Подключение сервера Тинькофф Баг deem1967 Сделать
При включенных фильтрах оптимизатор выдаёт кривые результаты Баг Алексей Ван Сделать
коннектор Binance Spot Баг dzjandao Сделать
Коннектор Binance Marggin Баг Victorrrr54 Сделать
Ошибка при открытии позиции. Баг VPetrov Сделать
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." Баг max.tmv Сделать
Не качает данные 5 мин с BinanceFutures Баг Nikolas Сделать
В Оптимизатор - добавить ускорение (отключение прорисовки графика, как в Тестере) Расширение newst Сделать
Потеря позиций Баг Yuraskof Сделать
Динамический размер задержки между активацией коннектора и до возможности открытия первых ордеров Расширение Алексей Ван Сделать
Неверный размер портфеля на Бинанс Баг newst Сделать
Ошибка в Оптимизаторе из-за символа доллара ($) в имени оптимизируемого параметра Баг newst Сделать
Коннектор к брокеру Алор Расширение max.tmv Сделать
Ограничение кол-ва позиций в Глобальный риск-менеджер Расширение newst Сделать
Не скачивается последний день тиковых данных с Бинанс Баг Boris-ka Сделать
Оса жужжит и жалит, но меда не дает Архитектура karuzzo Сделать
Эмулятор биржи Баг Алексей Ван Сделать
+

Завершенные проекты
Описание Тип проекта Кто предложил Кто реализовал
Время жизни позиции в журнал Расширение Алексей Ван Алексей Ван
При пустом журнале, чарт максимальной просадки иногда падает Баг Алексей Ван Алексей Ван
Добавить на чарт максимальной просадки отметку времени Расширение Алексей Ван Алексей Ван
Индикатор Объём в скрипты Расширение Алексей Ван tlqm
Риск - менеджер в тесте Баг PandaC# Denisqa
Фикс NullReferenceExeption при повторном запуске скринера Баг Yuraskof Yuraskof
В журнале иногда не показывается комиссия Баг Алексей Ван Deniska
Добавить в индекс возможность выбрать сразу несколько инструментов или все, как это сделано в дате Расширение Nikolas Алексей Ван
System.NullReferenceException: в OsEngine.Market.Servers.Binance.Spot.BinanceClient.GetNonce() Баг Lexuz77 Lexuz77
Поставить оповещение если стоп ставится выше цены Баг Алексей Ван Алексей Ван
Сделать чарт облегчённого интерфейса возможность сворачивать выпадающие меню Расширение Алексей Ван Алексей Ван
Краш коннектора Finam при ошибках http Баг tlqm tlqm
NullReferenceExeption в Скринере если при не подключенном сервере открыть Журнал Баг newst Алексей Ван
Скринеры. При перезагрузке сбрасываются настройки индикаторов Баг Алексей Ван Алексей Ван
При первом открытии окна из скринера. Не формируется окно редактирования индикатора Баг Алексей Ван Алексей Ван

Топ реализаций
ЛК Телеграмм Фиксы багов Архитектура Расширения

https://t.me/alex_wang_osengine 5 0 4

https://t.me/bit_kenobe 1 0 0

https://t.me/Denis_skugar 1 0 0

https://t.me/colexar 1 0 1

1 0 0

1 0 0

Топ предложений
ЛК Телеграмм Фиксы багов Архитектура Расширения

https://t.me/alex_wang_osengine 5 0 4

1 0 0

https://t.me/bit_kenobe 1 0 0

0 0 1

https://t.me/colexar 1 0 0

1 0 0

1 0 0

Что мы делаем

Друзья! Данная страница призвана помочь проекту развиваться и соединить наших пользователей и программистов.

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


Программисты смогут их реализовывать, пополняя своё резюме и помогая себе и вселенной.


Всем должно быть от этого – хорошо.


Но есть ещё и третья сторона силы – руководитель проекта и человек который его вёл долгие годы – Алексей Ван. У меня есть определённый вижн относительно того в какую сторону должен идти проект. И я не могу позволить его уводить в сторону. Чтобы сохранить то что у нас есть и преумножить наше совместное наследие в будущем.


И этот текст – про это. Про мой ВИЖН будущего OsEngine. Чтобы мы могли двигаться вместе в одну сторону.


Самое важное об OsEngine (программистам)


Стабильность


Это немного смешное слово, которое вызывает не однозначные ассоциации (в РФ точно). Но в этом есть соль. Я очень трепетно отношусь к слоям совместимости которые были написаны многие годы назад и не трогаю их. Не изменяю имена переменных, даже если в их написании ошибки. Не меняю схемы взаимодействия слоёв. Не изменяю логику уже существующего функционала. Ибо такие изменения неизменно оттолкнут пользователей.


Когда-то, существовала такая библиотека, которая называлась СтокШарп. Это был прекрасный, законченный продукт, уже законченный в 2012 году. Однако – усилями программистов из офиса этой компании, слои совместимости и создания роботов менялись ежемесячно. И поддержка роботов превращалась у кошмар. Из-за этого от них ушли как физ-лица, так и корпоративные клиенты. Я – такого не допущу!


1 МЫ НЕ ИЗМЕНЯЕМ СУЩЕСТВУЮЩИЙ ФУНКЦИОНАЛ! – МЫ РАСШИРЯЕМ ЕГО!


2 ОХОТА НОВЫЙ ФУНКЦИОНАЛ – РАЗБЕРИ И УСЛОЖНИ СЛОЙ НИЖЕ СЛОЁВ РАЗРАБОТКИ БОТОВ! ВЫВЕДИ НАВЕРХ ГОТОВЫЙ ФУНКЦИОНАЛ!


Ориентация на пользователей


Уже торгующие и зарабатывающие пользователи – те для кого этот проект делается и развивается. Тот костяк из нескольких сотен человек которые открывают каждое утро терминалы, запускают OsEngine и включают роботов – они здесь главные. Для них разрабатывается OsEngine. Для них делаются гайды и инструкции. Для них расширяется Ютуб-канал. Они – энергия и сила проекта.

В связи с этим:


1) Мы не гонимся за всемирной славой и не пытаемся поразить азиатских трейдеров. Зарубеж – не приоритет и английский в проекте для галочки.
2) Также не стоит задачи поразить авторитетных программистов. КрасОты и изящности распределённой архитектуры – для СтокШарп.
3) Те, кто торгуют руками – также не в приоритете. Мы будем делать для них расширения и двигаться в их сторону. Но они здесь не главные


Главные пользователи проекта – зарабатывающие русскоговорящие алго-трейдеры. В большинстве – это люди с очень богатым трейдинговым опытом. И очень не богатым опытом программирования. Это – даже не джуниоры. Они – разрабатывают ботов строго в слое их создания. И любое изменение инфраструктуры – будет воспринято ими болезненно.


3 НЕ УСЛОЖНЯЙ ЖИЗНЬ АЛГО-ТРЕЙДЕРАМ! УПРОЩАЙ ЕЁ!


Лёгкость фреймворка


Один проект. Одна платформа. Один поддерживающийся тип ОС. Один язык программирования. Один слой создания роботов для тестов и торговли. Одно кольцо чтобы править всеми И т.д.

Наш проект – простой. С ним может справится почти любой выпускник школы – и это прекрасно! И надо на это ориентироваться.


Нужно делать так – чтобы человек, только что прочитавший книгу «СиШарп для чайников» - тут же понимал как у нас устроен тот или иной класс в библиотеке. К этому нужно стремиться.


Примеры того, что не прекрасно:
1) Увеличение уровня языка СиШарп внутри кода с усложнением синтаксиса – не приветствуется
2) Замена цикла for на использование библиотек Linq – не приветсвуются
3) Использование Task повсеместное – не приветствуется
4) Использование РеШарпера для работой над всем проектом, с его фиксингом многоуровневым – не приветствуется
5) Использование синтаксического сахара – не приветствуется
6) И т.д.


4 МЫ НЕ ПОВЫШАЕМ УРОВЕНЬ ВХОЖДЕНИЯ В OSENGINE! МЫ ЕГО ПОНИЖАЕМ!


О недооценённых предложениях (пользователям)


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


Нам не нужны чужие граали


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


5 ЕСЛИ ТВОЯ ИДЕЯ ЧТО-ТО СТОИТ – ОСТАВЬ ЕЁ ПРИ СЕБЕ


Программисты делают то что хотят


Как официальная команда проекта, так и фрилансеры из сообщества – все работают над OsEngine по любви. И заставить их взять какую-то работу внепланого можно только через финансирование.


6 ЕСЛИ ПРЕДЛОЖЕНИЕ СРОЧНОЕ – ИЩИТЕ ПРОГРАММИСТА ЗА ДЕНЬГИ


Ну и самое главное


Когда мы упоминаем про СтокШарп и СофтАлготрейд (Это конкуренты OsEngine по версии 2016 года). Я своё участие в их грустной участи оцениваю скромно.


И абсолютно точно понимаю, что это не OsEngine их победил. Это они совершили СУИЦИД САМИ.


И самое простое в этом случае – не совершить суицид самим. Отсюда у нас родились дополнительные правила:


1 Увеличивать сложность проекта по мере увеличения кол-ва программистов в основном офисе


Камрады программисты. Товарищи пользователи.


OsEngine – выполняет свои обязанности по торговле уже сегодня. И обеспечивает своим приоритетным пользователям прибыль с торговли уже сейчас.


Его улучшение и усложнение возможно только в случае, если новый функционал будет кому поддерживать. Поэтому не все предложения будут одобрены. На данном этапе, пока у нас над OsEngine в офисе трудится 2 программиста на постоянной основе. Усложнения не будет. Это самоубийство. И примеров такого самоубийства уже несколько. Не будем идти по их пути.


2 Не брать в проект партнёров, которые хотят взять творческий контроль себе


Это не очень к этому документу относится. Но я про это скажу. Ибо данная глава показывает насколько я дорожу проектом и люблю его.


Прошедшие годы, кроме бурного развития аудитории, запомнились мне ещё и тем что мне начали поступать предложения об инвестициях в проект. И до сих пор – у меня нискем не складывалось, ибо утратить творческий контроль за OsEngine – загубить проект. И никаких денег мне не хочется, если придётся с ним распрощаться. Я не принимаю деньги, даже десятки миллионов – если люди предлагающие их хотят проект усложнить или увести его в сторону от приоритетных пользователей. Вот именно настолько я суров в своём вижене.


Поэтому – не обижайтесь если я Ваше предложение отклонил. Или не принял Ваш исходный код в основной репозиторий.


Стратегическое развитие проекта


Далее поговорим про моё видение развития проекта. И тут же я отмечу – что оно может меняться и двигаться куда-то. В зависимости от текущей ситуации в мире и рынке. Но в целом – будет как-то так.


У меня есть идея уже несколько лет, относительно перехода OsEngine в другую категорию программ. Т.е. выхода его, из узкоспециализированной алгоритмической истории – больше в сторону трейдеров. Тех кто торгует руками.


В итоге – на выходе мы должны получить терминал, похожий на Ninja Trader. В котором не важно что Вы хотите делать. Торговать роботами, руками или же просто хотите сделать скринер акций. Это должно быть удобно для всех.


Без глобального финансирования и раздувания штата сотрудников – в рабочем ритме, спокойном – это будет выглядеть вот так. И займёт от полутора до двух с половиной лет.


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


Этап 1. Подготовка к переходу на новый уровень


1) Убрать связанность элементов

Этот пункт для программистов важен. Я вижу и понимаю проблематику OsEngine.

Это необходимо сделать, чтобы можно было одновременно запускать и тестер, и роботов и оптимизатор и OsData. Как не трудно догадаться, такое использование OsEngine раньше не предполагалось. И от этого много вопросов к архитектуре.

В целом - данная проблема возникла в момент создания OsEngine. От неопытности и молодости программиста который его начал писать. Сейчас - понятное дело, так бы я не сделал. Но имеем, то что имеем.

Кроме того, основные работы в этом направлении - уже завершены. Раньше было хуже. И с каждым годом связанность проекта только падает. Это - прекрасно.


2) Новые источники данных

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

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

Данные правки потребуют от разработчиков больших изменений в слое подключения к коннекторам. Отсюда следующие два пункта


3) Обновить коннекторы

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


4) Слой тестирования коннекторов

С увеличением числа источников для роботов, и расширением коннекторов - необходимо обеспечить 80% покрытие функционала коннекторов автоматическими тестами.


5) Интерфейсы

На базе новых источников - сделать новые пользовательские интерфейсы, которые будут вызываться из существующих. Т.е. будет расширять его функционал.



Этап 2. Переход на новый интерфейс



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


Этап 3. Улучшие и расширение функционала OsEngine 2


Ну и где-то в 2024 году. У нас с Вами будет новый терминал классный. В который можно будет без труда добавлять новые фичи. Конструкторы роботов. Модуль для опционщиков. И всё всё всё. Ибо OsEngine 2 – будет расширяем и гибким. Где-то тогда же мы добавим в него поддержку маркета. И будем работать в сторону автоследования.


В процессе начнут появляться и выявляться архитектурные геморрои различные. С которыми мы будем бороться на месте. И надеюсь в ВОСЬМОЙ раз мне OsEngine переписывать не придётся)))


Видимо с ним мы и будем, года до 2030. А там посмотрим)


Удачных алгоритмов!