Библиотека методов "ServiceLib"

Автор: AleksandrGanov

Библиотека методов "ServiceLib" - Sun Aug 08 2021 07:41 AM

Сервисная библиотека "ServiceLib"

Ранее уже выкладывал данную библиотеку при работе с кубиками, развиваю дальше и решил сделать по ней отдельный пост, т.к. в ней есть функционал, связанный не только с кубиками. Я не супер-программист, поэтому за код прошу "не пинать", что знаю и умею внедряю, вижу где можно оптимизировать - оптимизирую. Дисклеймер: Библиотека предоставляется "as is", но с обязательным тестированием и проверкой всех данных вручную. При выявлении багов просьба писать в телеграмм: @AleksandrGanov

В библиотеку добавлены 2 метода-расширения для IContext:
  • Метод построения гистограммы распределения
  • Метод построения точечной диаграммы распределения. В данный момент есть ограничение по количеству точек 600шт (остальные точки не будут отображены)



Автор: NORD

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 09:08 AM

Приветствую! Александр, у меня с этой новой библиотекой перестал работать Блок: Period Statistic.
ТСЛаб пишет ошибку:
System.MetodExcepcion: Метод не найден: "Void GanovCubes.FileLogger.WriteLog(TSLab.Script.Handlers.IContext)".
в CubesLib.PeriodStatistic.LastBarAlgorithm(ISecurity sec)
............
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 09:17 AM

пора стало быть кубик обновить PeriodStatistic. Прилагаю в закрепе, это очередная промежуточная версия, но весь старый функционал работает + ускорил некоторые методы в приличное кол-во раз. Попробуйте, должно работать
Автор: NORD

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 10:56 AM

Спасибо, с новым кубиком PeriodStatist ошибок нет, но и дополнительная панель с графиками не выводится. В оптимизацию также информация не выводится (
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 10:58 AM

должна выводиться, бывает такое что ТСЛаб просто не отображает панель, надо в правой части окна сверху нажать на стрелочку и там будут все панели
Автор: NORD

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 11:18 AM

В правой части экрана на стрелочке также нет скрытой панели. Пробовал с чистым скриптом, также не выводится панель. Версия ТСЛаб 2.1.15
У кубика появился выход, раньше его не было, может с этим связано и надо выход кубика цеплять куда-нибудь?
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 12:18 PM

Спасибо за такое быстрое тестирование. Прилагаю нужную версию, мой косяк blush Вот именно с выходом и связано, что самое интересно для меня это было неожиданно, что если я вообще не укажу кол-во выходов полагая что раз их ноль, то можно не указывать, то ТСЛаб воспримет это совсем по-другому. "Замут" был именно в этом
Автор: NORD

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 12:49 PM

Все заработало, спасибо)
Автор: NORD

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 02:03 PM

Немного потестировал новый кубик статистики, время оптимизации не уменьшилось и оперативная память стало гораздо больше нагружаться, примерно на 30-50%, как во время оптимизации, так и без оптимизации
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 02:15 PM

в процессе доработки.... в кубике есть один самый тяжелый метод - это расчет просадок, над ним работаю, он жрет 80% процентов времени обработки. Уменьшил время на построение эквити по фиксированной и нефиксированной прибыли - на большой выборке за 10 лет прирост скорости обработки данных в методах до 400 раз, а вот по оптимизации метода просадок пока работаю. Как допилю выложу новую версию. В кубик добавлено приличное кол-во разных расчетов: Pessimistic Reduce Rate, SQN, новые поля и т.д., пока не было времени все это дело задокументировать и описать, скорее всего именно поэтому есть доп.загрузка памяти. Честно говоря, на память особо не обращаю внимание, т.к. у меня на машине ее 80ГБ, пока больше интересует скорость расчетов, т.к. на длинных выборках даже 28ми ядерный комп немного "расстраивается" из-за обилия данных
Автор: NORD

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 02:33 PM

Спасибо Вам большое Александр за возможность делать наиболее правильный анализ в ТСЛаб.
У меня бары 15мин строятся из тиковых данных, я работаю с торговой статистикой и оперативная память хорошо из-за этого загружается. На компе оперативки около 200Гб и дополнительные расчеты в кубике статистики сильно ее загружают. Самое ценное это расчет просадок MaxDDD и расчет профита по периодам
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sun Aug 08 2021 03:33 PM

мне не жалко :-). это всего лишь инструмент и я совершенно не против им поделиться. сам также получаю обратную связь от группы ТСЛаб по разным вопросам, за что очень благодарен - это помогает в изучении
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Wed Aug 18 2021 02:41 PM

Обновление библиотеки:
1. Добавлен метод заполнения коллекции одинаковыми данными (GetValueTypeCollection). При работе в ТСЛаб очень часто нужно сделать список одинаковых значений, например, чтобы вывести константу на график. Чтобы каждый раз не писать цикл, то же самое сделано в методе, чтобы заполнение коллекции для пользовательского кода было максимально коротким
2. Добавлен метод получения адреса папки дополнительных данных ТСЛаб (GetTSLabAddDataDirectory). Данный метод используется в других кубиках, когда необходимо что-либо писать на диск. Получаем папки дополнительных данных и пишем в нее необходимый файл. По умолчанию папка дополнительных данных располагается по адресу: C: \Users\UserName\AppData\Local\TSLab\TSLab 2.0\DataStorage\.
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Thu Aug 19 2021 07:12 PM

Originally Posted By: AleksandrGanov
  • Метод построения точечной диаграммы распределения. В данный момент есть ограничение по количеству точек 600шт (остальные точки не будут отображены)

Обновление библиотеки:
  • Ограничение 600 точек изменено на 25000 точек, можно и больше, но способности ТСЛаб не безграничны и уже при таком кол-ве точек ощущаются заметные подтормаживания.

Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Tue Aug 24 2021 01:40 AM

Обновление библиотеки:
  • Обновлен метод построения гистограммы частотного распределения. Увеличена разрядность округления данных, ранее использовалось 2 знака после запятой, что на сделках с доходами в процентах ниже единицы приводило к некорректному расчету диапазонов распределения
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sat Dec 04 2021 09:36 PM

Обновление библиотеки:
  • перекомпилирована под под Net 5.0 для возможности использования в ТСЛаб 2.2
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Fri Feb 04 2022 03:12 PM

Обновление кубика:
  • мелкие доработки (переименование методов, добавление методов чтения из маркет-данных файла и кэша ТСЛаб, добавление метода ConvertDateTimeToTSLabTimeFormat, который конвертирует время в формате DateTime в формат ТСЛаб и т.д.)
  • перекомпилирован под под Net 6.0 для возможности использования в ТСЛаб 2.2.
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sat Apr 02 2022 03:22 PM

Обновление кубика:
  • Мелкие незначительные доработки и улучшения
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sun Apr 17 2022 04:47 AM

Обновление библиотеки:
  • добавлен класс "ExtDates" с методами работы с временем. Класс включается как методы-расширения, так и обычные методы для решения следующих задач: конвертация даты и времени ТСЛаб в формат DateTime и обратно, разбиение интервала, заданного начальной и конечной датой на месяцы и дни, получение последнего дня временного периода, сравнение дат баров без времени и т.д., то есть простые задачи, которые периодически возникают в процессе работы с ТСЛаб
  • внесены мелкие доработки в имеющиеся ранее методы, в том числе изменены названия некоторых методов
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Thu Aug 25 2022 08:56 AM

Обновление библиотеки:
  • Произведено дальнейшее упорядочение структуры библиотеки
  • Внесены доработки в существующие методы, в том числе доработаны необходимые комментарии
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Sat Sep 03 2022 06:39 PM

Обновление библиотеки:
  • исправлена ошибка в получения пути к файлам логов в папке пользователя ТСЛаб
  • добавлены методы работы с текстом
Автор: AleksandrGanov

Re: Библиотека методов "ServiceLib" - Mon Sep 05 2022 12:57 AM

Обновление библиотеки:
  • Библиотека полностью реструктурирована. Разбита на неймспейсы исходя из функционального назначения. Добавлены новые типы: обработчик параметров, обработчик среднего времени работы, перечисления и т.д. Константы вынесены в отдельные классы "Constants" и включены в состав соответствующих неймспейсов. Все вспомогательные методы для каждого неймспейса помещены в классы "AuxMethods.
ВНИМАНИЕ: данная версия библиотеки не совместима ни с одним кубиком, написанным до даты реструктурирования библиотеки. По мере доработки кубиков они будут исправляться для работы с текущей версией ServiceLib и выкладываться на форуме в раздел с соответствующим кубиком.