You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Читал Ваш пост в телеграмме про намерение написать библиотеку по улучшению backtrader. Не нашел иного источника связи с Вами, поэтому напишу сюда свои мысли по этой теме. Сам занят чем-то похожим.
Numpy-pandas. Они хоть и написаны на си, но к сожалению не предназначены, для realtime, где нужно часто добавлять данных в конце массива. Хотя, конечно, можно найти обходные пути - например иметь отдельный датафрейм для тела массива и его хвоста и обновление бара реализовывать на хвосте, и при необходимости дополнять тело. Это приемлемый алгоритм для одного инструмента. Но если используются много инструментов, то могут быть тормоза.
Далее про различие между numpy и pandas. Тут тоже не все просто. Numpy пошустрее и numpy можно очень сильно оптимизировать с помощью jit-компилятора numba. Но зато в pandas есть индексация по столбцу, однако, часто индикаторы нужно пересчитывать по барам, и индексация в таких алгоритмах может быть и не нужна вообще. И обновлять крайнее значение при приходе нового тика на датафрейме с индексом может быть неоптимально (о чем выше написал).
Я довольно долго обдумывал способы как построить свой торговый движок вокруг numpy-pandas и пришел к тому, что ни то не другое не предназначены для этого. Но и то и другое вполне приемлемо, если использовать их в отдельных сценариях, нежели чем в монолитной системе, что я у себя и делаю.
Для универсального же движка типа backtrader стоит присмотреться к cython. Возможно, c помощью cython даже есть смысл сам backtrader переделать. Хотя лично мне его архитектура не дает той свободы, которой хотелось бы, и там слишком много "метамагии" в коде движка. Но тем не менее, backtrader это самый продуманный из всех имеющихся движков на python, который "оброс" неплохими плагинами. Cython мог бы его очень хорошо ускорить, но объем работы мне сложно оценить.
Про графику. Хочу обратить внимание на finplot. Она поинтереснее чем то, что на bokeh написано. Но она к сожалению - не про realtime. Про realtime - implot/dearpygui.
The text was updated successfully, but these errors were encountered:
kv-gits
changed the title
Улучшение библитеки
Улучшение библиотеки
Jun 8, 2022
Извиняюсь за долгий ответ, только вернулся из разъездов. Пока я только присматриваюсь к возможности доработки BT, никаких резких изменений делать не планирую. Ваши идеи также проработаю.
Читал Ваш пост в телеграмме про намерение написать библиотеку по улучшению backtrader. Не нашел иного источника связи с Вами, поэтому напишу сюда свои мысли по этой теме. Сам занят чем-то похожим.
Далее про различие между numpy и pandas. Тут тоже не все просто. Numpy пошустрее и numpy можно очень сильно оптимизировать с помощью jit-компилятора numba. Но зато в pandas есть индексация по столбцу, однако, часто индикаторы нужно пересчитывать по барам, и индексация в таких алгоритмах может быть и не нужна вообще. И обновлять крайнее значение при приходе нового тика на датафрейме с индексом может быть неоптимально (о чем выше написал).
Можно еще глянуть на что-то типа того https://github.com/modin-project/modin
Я довольно долго обдумывал способы как построить свой торговый движок вокруг numpy-pandas и пришел к тому, что ни то не другое не предназначены для этого. Но и то и другое вполне приемлемо, если использовать их в отдельных сценариях, нежели чем в монолитной системе, что я у себя и делаю.
Для универсального же движка типа backtrader стоит присмотреться к cython. Возможно, c помощью cython даже есть смысл сам backtrader переделать. Хотя лично мне его архитектура не дает той свободы, которой хотелось бы, и там слишком много "метамагии" в коде движка. Но тем не менее, backtrader это самый продуманный из всех имеющихся движков на python, который "оброс" неплохими плагинами. Cython мог бы его очень хорошо ускорить, но объем работы мне сложно оценить.
The text was updated successfully, but these errors were encountered: