Блог им. diamante

Python фреймворк для алготрейдинга (VNPY)

Перевел тут (в автоматическом режиме) питонячий китайский фреймворк для алготрейдинга.

Python фреймворк для алготрейдинга (VNPY)

Что он может:

1) Тестить и пускать в лайв страты (а-ля plug and play)
2) Есть коннекторы к крипте, каким-то китайским брокерам, IB, Alpaca
3) UI на pyQT5
4) Качать/хранить котировки

в общем все что надо для базового (и не только) алготрейдинга. все это бесплатно и под MIT лицензией

Перевод пока так себе, но лучше чем китайский оригинал. Теперь хоть что-то можно понять в интерфейсе.  Запустил пару предустановленных страт, загрузил данные, написал простенькую стратегию — все работает, багов не нашел пока. Постепенно улучшаю перевод в ручном режиме.

vnpy — лучшее из python open source для трейдинга что я видел. Понятная и логичная структура, ожидаемая архитектура, хорошо написанный UI. Часть логики коннекторов написана на C++ (поэтому гитхаб и говорит что оно С++, но это не так)

Можно брать и дорабатывать под свои нужды. Очень большое китайское комьюнити, тысячи звезд и форков на гитхабе — я ожидаю что фреймворк уже стабилен и обкатан. Ниже несколько скринов уже переведенного терминала. Больше есть у китайцев

Канал в телеге — ничего не продаю, пишу когда не лень.

Python фреймворк для алготрейдинга (VNPY)

Python фреймворк для алготрейдинга (VNPY)







 

★54
а как это все добро установить?
avatar

dennet

dennet, склонировать репу, создать virtualenv -> активировать, запустить install.bat или ручками команды оттуда

ну а пускал я через examples/vn_trader/run.py

а вообще там дока по установке есть :)

avatar

day0markets

криптой не торгую, скачивать/запускать [пока] не буду, но тебе респект!
вот бы на c# подобное было…
avatar

vfreeman

vfreeman, эм, так есть же всякое на С#...

тык, тык да и еще вагон всего

avatar

day0markets

day0markets, про ЭТО знаю :)
avatar

vfreeman

day0markets, вагон может и есть, а отличного нет. =)
avatar

ch5oh

ch5oh, не бывает идеального решения. Но готовых решений (которые можно в лайв пускать) на C# точно больше чем на других языках.
avatar

day0markets

спасибо за информацию!
avatar

Vlad

ПBМ, 
avatar

day0markets

Шикарное дело) Правда разбираться в этом нужно дооолго и мучительно. Не планируете ли какие то юзер кейсы по использованию освещать в дальнейшем !?)
Великий комбинатор, разбираться со всем надо :)

я переводил прежде всего для себя, хочу пустить одну страту под крипту. если будет время и желание — напишу, но не могу обещать
avatar

day0markets

day0markets, хорошо)
day0markets, подскажите чем это лучше zipline или backtrader, если использовать zipline, можно тестировать стратегии на quantopian, а торговать через zipline live через IB.
avatar

Lagamail

Lagamail, zip line не полность open source, нет ui, только ib.
И мне не нравятся высокоуровневые надстройки над логикой ордеров. Ну и пулять код на квантопиан… сомнительное занятие
avatar

day0markets

Любопытно! А по скорости чего? — Скорости Питона?) — Или как это работает? — Я про бэктесты, например.
avatar

Replikant_mih

Replikant_mih, фрейм на питоне — скорость питонья) Вчера пустил бектест 1 символ на 300К датапоинтов, отработал достаточно быстро. я посмотрел кишки эвентов и тестера — норм написано. обычный цикл событий…

если надо hft, то это понятно что не про питон все. а так скорости торговать на минутках хватит вполне (если конечно у вас там в логике не заложены адские расчеты). Если хочется быстро тестить, то фрейм не нужен. голый numpy + numba jit зачастую будут даже быстрее любого движка на том же C#

 

avatar

day0markets

day0markets, для моих методов для торговли Питона точно хватит), для бэктестов — пока не уверен). По обучению как раз щас переходим к numpy и прочим библиотекам специализированным — посмотрю че-кого там по скорости и как это к трейдингу приложить — я ж так понимаю, если применять, то это будет не последовательная проверка условий на временном ряду, а какой-то другой подход к бэктестам.
avatar

Replikant_mih

Replikant_mih, numpy — это векторизованные расчеты. по сути это просто py надостройка на С либой, поэтому летает хорошо.
Ну а если объективно надо тестировать большие массивы данных при условии, что не сильно надо в ML и нет привязки к специфическим либам, то лучше отказаться от питона в сторону компилируемых языков. Я например тики тестирую на своем golang движке… может придет время и я его в open source залью…
avatar

day0markets

day0markets, Ладно, через месяц я смогу на порядок предметней на тему питоньих специализированных либ поговорить)).
avatar

Replikant_mih

Есть еще питоний фрейморк  https://github.com/EliteQuant/EliteQuant_Python


>Питон
avatar

semen74

Что-то у меня при запуске ругается, что нет библиотеки talib.
Посмотрел — она сейчас называется ta-lib.
Подскажите, где нужно теперь в коде менять, чтобы ошибок не было?
avatar

Роман Т

Роман Т, в readme описано решение с ta-lib. Без этой либы не взлетит
avatar

day0markets

day0markets, спасибо, с ta-lib получилось.
У меня общий вопрос — на какой версии питона сейчас работаете?

avatar

Роман Т

Роман Т, 3.6 в основном
avatar

day0markets

day0markets, на 3.7 в сборке anaconda как-то неправильно собрана sqlite3...
А поставил чистый питон 3.6 + все необходимые либы — все заработало без проблем.
Спасибо!

avatar

Роман Т

Роман Т, если не сложно, то кинь в issues на гитхабе ошибку которую выдала анаконда 3.7, покопаюсь как будет время

avatar

day0markets

day0markets, там ошибка совершенно не связана с vnpy. 
Как я понимаю — это какая-то общая ошибка с одним встроенным пакетом sqlite3 для эмуляции работы с БД.
Воспроизвести сейчас уже не могу, т.к. снес Анаконду 3.7.
Ошибка возникала просто при выполнении вот такого кода:
          import sqlite3
А текст был что-то типа: не удалось загрузить DLL ...

avatar

Роман Т


....все тэги
2010-2020
UPDONW