Хотите прочитать это на английском ? Идите сюда ?
VeighNa — это среда разработки количественной торговой системы с открытым исходным кодом, основанная на Python. Благодаря постоянному вкладу сообщества с открытым исходным кодом она постепенно превратилась в многофункциональную платформу количественной торговли. С момента своего выпуска к ней присоединилось множество пользователей из финансовых учреждений и связанных с ними организаций. области, включая фонды прямых инвестиций, компании по ценным бумагам, фьючерсные компании и т. д.
Официально выпущен [VeighNa Elite Quantitative Terminal] для профессиональных трейдеров, обеспечивающий идеальную поддержку потребностей профессиональных трейдеров с точки зрения массового параллелизма стратегий, интеллектуального смещения позиций, разделения алгоритмов и поддержки торговли с несколькими счетами. Для получения более подробной информации отсканируйте приведенный ниже QR-код и нажмите [Общение с сообществом -> Служба элитного членства] в строке меню :
Если у вас возникли вопросы в процессе использования VeighNa для вторичной разработки (стратегии, модули и т. д.), пожалуйста, проверьте документацию проекта VeighNa . Если вы не можете решить проблему, перейдите в раздел [Спросить и помочь] на официальном сайте. форум сообщества для помощи. Вы также можете [Обмен опытом] Поделитесь своим опытом, используя этот раздел!
Хотите получить больше информации о VeighNa? Пожалуйста, отсканируйте QR-код ниже, чтобы добавить помощника в [группу WeChat для общения сообщества VeighNa]:
Многофункциональная количественная торговая платформа (Trader), которая объединяет различные торговые интерфейсы и предоставляет простые и удобные в использовании API для конкретных алгоритмов стратегий и функциональной разработки, позволяющую быстро создавать количественные торговые приложения, необходимые трейдерам.
Торговый интерфейс (шлюз), охватывающий следующие виды торговли, принадлежащие стране и за рубежом:
внутренний рынок
CTP (ctp): внутренние фьючерсы и опционы.
CTP Mini (мини): внутренние фьючерсы и опционы.
CTP Securities (sopt): варианты ETF
Фемас: внутреннее будущее
Hang Seng UFT (uft): внутренние фьючерсы, опционы ETF
esunny: внутренние фьючерсы, золото TD
Apex Feichuang (сек): варианты ETF
Vertex HTS (hts): опционы ETF
Zhongtai XTP (xtp): внутренние ценные бумаги (акции А), опционы ETF
Huaxin Singularity (тора): внутренние ценные бумаги (акции А), опционы ETF
Гуотай Цзюнан (hft): Внутренние ценные бумаги (акции класса А, финансовые услуги)
Topix OST (ost): Внутренние ценные бумаги (акции А)
Oriental Fortune EMT (emt): Внутренние ценные бумаги (А акции)
Летяга (sgit): золото TD, внутренние фьючерсы
ksgold: Золотой TD
Lei Xing Asset Management (lstar): Управление фьючерсными активами
Рохон: Управление фьючерсными активами
да: управление фьючерсными активами
Чжунхуэй Йида (Комстар): межбанковский рынок
Наггетсы (г): внутренние ценные бумаги (моделирование)
Hang Seng Cloud UF (uf): Внутренние ценные бумаги (моделирование)
TTS (tts): Внутренние фьючерсы (моделирование)
зарубежный рынок
Interactive Brokers (ib): зарубежные ценные бумаги, фьючерсы, опционы, драгоценные металлы и т. д.
Внешний диск Yisheng 9.0 (кран): зарубежные фьючерсы
Прямые фьючерсы (da): зарубежные фьючерсы
Специальное приложение
Котировки RQData (rqdata): котировки в реальном времени на разных рынках (акции, индексы, ETF, фьючерсы).
Котировки Xun Touyan (xt): котировки в реальном времени на разных рынках (акции, индексы, конвертируемые облигации, ETF, фьючерсы, опционы).
Служба RPC (rpc): интерфейс межпроцессного взаимодействия для распределенных архитектур.
Торговые приложения (приложения), охватывающие следующие виды количественных стратегий:
cta_strategy: модуль механизма стратегии CTA, сохраняя при этом простоту использования, позволяет пользователям осуществлять детальный контроль над порученной отчетностью и поведением вывода средств во время работы стратегий CTA (уменьшить проскальзывание транзакций и реализовать высокочастотные стратегии)
cta_backtester: модуль тестирования стратегии CTA, без использования Jupyter Notebook, напрямую использует графический интерфейс для выполнения анализа стратегии, оптимизации параметров и другой связанной работы.
spread_trading: модуль торговли спредами, поддерживает пользовательские спреды, расчет котировок и позиций спреда в реальном времени, а также поддерживает торговлю по алгоритму спреда и стратегии автоматического спреда.
option_master: модуль торговли опционами, разработанный для внутреннего рынка опционов, поддерживает несколько моделей ценообразования опционов, расчет поверхности подразумеваемой волатильности, отслеживание рисков стоимости Греции и другие функции.
портфель_стратегия: модуль портфельной стратегии для количественных стратегий, которые торгуют несколькими контрактами одновременно (альфа, опционный арбитраж и т. д.), обеспечивающий тестирование исторических данных и функции автоматической торговли в реальном времени.
algo_trading: модуль алгоритмической торговли, предоставляющий множество часто используемых интеллектуальных торговых алгоритмов: TWAP, Sniper, Iceberg, BestLimit и т. д.
script_trader: модуль скриптовой стратегии, предназначенный для мультистандартных количественных стратегий и расчетных задач. Он также может реализовывать транзакции в виде инструкций REPL в командной строке. Он не поддерживает тестирование на истории.
paper_account: локальный модуль моделирования, чисто локализованная торговая функция моделирования, доверенное сопоставление на основе рыночных условий в реальном времени, полученных из торгового интерфейса, и снабженное доверенными записями о транзакциях и позициях.
chart_wizard: модуль диаграммы K-line, который получает исторические данные на основе службы данных RQData (фьючерсы) или торгового интерфейса и отображает изменения рынка в реальном времени в сочетании с нажатием тиков.
портфель_менеджер: Модуль управления торговым портфелем, основанный на независимых стратегических торговых портфелях (субсчетах), обеспечивает заказное управление записями транзакций, автоматическое отслеживание торговых позиций и статистику ежедневных прибылей и убытков в режиме реального времени.
rpc_service: сервисный модуль RPC, который позволяет запускать определенный процесс в качестве сервера. Являясь единым каналом маршрутизации рынка и транзакций, он позволяет одновременно подключаться нескольким клиентам для реализации многопроцессной распределенной системы.
data_manager: модуль управления историческими данными, просмотр существующего обзора данных в базе данных через древовидный каталог, выбор данных за любой период времени для просмотра сведений о полях, поддержка импорта и экспорта данных в файлах CSV.
data_recorder: модуль записи рынка, настроенный на основе графического интерфейса, записывает рыночные условия по тикам или K-линиям в режиме реального времени в базу данных в соответствии с потребностями для тестирования стратегии или инициализации реального рынка.
excel_rtd: Служба данных Excel RTD (данные в реальном времени) в реальном времени, основанная на модуле pyxll для получения push-обновлений различных данных (рынков, контрактов, позиций и т. д.) в реальном времени в Excel.
Risk_manager: модуль управления рисками, который предоставляет статистику и ограничения по контролю потока транзакций, количеству заказов, доверенности действий, общему количеству отмен заказов и другим правилам, эффективно реализуя функции внешнего контроля рисков.
web_trader: модуль веб-сервиса, разработанный с учетом требований архитектуры BS, реализует веб-сервер, обеспечивающий активные вызовы функций (REST) и пассивную отправку данных (Websocket).
Инкапсуляция интерфейса API транзакций Python (api) обеспечивает базовую реализацию стыковки вышеуказанного интерфейса транзакций.
Клиент REST (rest): высокопроизводительный клиент REST API, основанный на сопрограммном асинхронном вводе-выводе, использующий модель программирования цикла сообщений о событиях и поддерживающий отправку запросов транзакций в реальном времени с высоким уровнем параллелизма.
Клиент Websocket (websocket): высокопроизводительный клиент API Websocket, основанный на сопрограммном асинхронном вводе-выводе, который поддерживает одновременный запуск общего цикла событий с клиентом REST.
Простой и удобный в использовании механизм, управляемый событиями (event), служит ядром программы торговли, управляемой событиями.
Интерфейс адаптера для стыковки различных баз данных (БД):
Класс SQL
SQLite (sqlite): легкая однофайловая база данных, нет необходимости устанавливать и настраивать программы обслуживания данных, опция VeighNa по умолчанию, подходит для начинающих пользователей.
MySQL (mysql): основная реляционная база данных с открытым исходным кодом с чрезвычайно обширной документацией, которая может заменить другие реализации, совместимые с NewSQL (например, TiDB).
PostgreSQL (postgresql): реляционная база данных с открытым исходным кодом и более широкими возможностями. Поддерживает новые функции через плагины расширения. Рекомендуется только опытным пользователям.
NoSQL-класс
DolphinDB (dolphindb): высокопроизводительная распределенная база данных временных рядов, подходящая для задач с малой задержкой или задач в реальном времени с чрезвычайно высокими требованиями к скорости.
Арктика (арктика): высокопроизводительная база данных финансовых временных рядов, в которой используются решения по оптимизации производительности, такие как блочное хранилище и сжатие LZ4, для достижения эффективного чтения и записи данных временных рядов.
TDengine (taos): распределенная, высокопроизводительная, поддерживаемая SQL база данных временных рядов со встроенным кэшированием, потоковыми вычислениями, подпиской на данные и другими системными функциями, которые могут значительно снизить сложность исследований и разработок, а также эксплуатации и обслуживания.
TimescaleDB (timescaledb): база данных временных рядов, разработанная на основе PostgreSQL. Устанавливается как подключаемый модуль и поддерживает автоматическое разделение данных по пространству и времени.
MongoDB (mongodb): база данных документов, основанная на распределенном хранилище файлов (формат bson). Встроенный кэш памяти горячих данных обеспечивает более высокую скорость чтения и записи.
InfluxDB (influxdb): база данных временных рядов, специально разработанная для хранения данных в столбцах TimeSeries, обеспечивает чрезвычайно высокую эффективность чтения и записи, а также периферийный анализ.
LevelDB (leveldb): высокопроизводительная база данных «ключ-значение», запущенная Google. Она реализует механизм внутрипроцессного хранения на основе алгоритма LSM и поддерживает миллиарды больших объемов данных.
Интерфейс адаптера (подача данных) для стыковки следующих типов сервисов передачи данных:
Xun Investment Research (xt): акции, фьючерсы, опционы, фонды, облигации
MiKang RQData (rqdata): акции, фьючерсы, опционы, фонды, облигации, золото TD
Мастер Вин Чун (вольтрейдер): фьючерсы, опционы
Hang Seng UData (udata): акции, фьючерсы, опционы
TuShare (тушаре): акции, фьючерсы, опционы, фонды
Wind (Ветер): акции, фьючерсы, фонды, облигации
Tinysoft (тинисофт): акции, фьючерсы, фонды, облигации
Flush iFinD (ifind): акции, фьючерсы, фонды, облигации
Тяньцинь TQSDK (tqsdk): Фьючерсы
Стандартный компонент межпроцессного взаимодействия (rpc), используемый для реализации сложных торговых систем с распределенным развертыванием.
Высокопроизводительная K-линейная диаграмма (диаграмма) Python поддерживает отображение диаграмм больших объемов данных и функции обновления данных в реальном времени.
Форумы сообщества и колонки Zhihu включают учебные пособия по разработке проекта VeighNa и исследования по применению Python в области количественной торговли.
Официальная коммуникационная группа 262656087 (QQ) строго контролируется (участники, занимающиеся дайверами в течение длительного времени, регулярно удаляются), а вступительный взнос группы будет передан в фонд сообщества VeighNa.
Примечание. Приведенное выше описание функциональных возможностей основано на ситуации на момент выпуска документации и может быть обновлено или скорректировано в будущем. Если описание функции отличается от фактического существования, пожалуйста, свяжитесь с нами через раздел «Проблема» для корректировки.
Загрузите версию Release здесь, разархивируйте ее и выполните следующую команду, чтобы установить ее:
Окна
install.bat
Убунту
bash install.sh
Макос
bash install_osx.sh
Примечание. Зависимые библиотеки, необходимые для установки платформы VeighNa, перечислены в файле setup.cfg, а рекомендуемые версии установки этих зависимых библиотек указаны в файле require.txt.
Зарегистрируйте симуляционную учетную запись CTP в SimNow и получите код брокера и адрес сервера торговых котировок на этой странице.
Зарегистрируйтесь на форуме сообщества VeighNa, чтобы получить учетную запись и пароль VeighNa Station (учетная запись и пароль на форуме одинаковые)
Запустите VeighNa Station (ярлык будет автоматически создан на рабочем столе после установки VeighNa Studio), введите учетную запись и пароль из предыдущего шага для входа в систему.
Нажмите кнопку VeighNa Trader внизу, чтобы начать торговлю! ! !
Уведомление:
В дополнение к графическому методу запуска на основе VeighNa Station вы также можете создать run.py в любом каталоге и написать следующий пример кода:
from vnpy . event import EventEngine
from vnpy . trader . engine import MainEngine
from vnpy . trader . ui import MainWindow , create_qapp
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
def main ():
"""Start VeighNa Trader"""
qapp = create_qapp ()
event_engine = EventEngine ()
main_engine = MainEngine ( event_engine )
main_engine . add_gateway ( CtpGateway )
main_engine . add_app ( CtaStrategyApp )
main_engine . add_app ( CtaBacktesterApp )
main_window = MainWindow ( main_engine , event_engine )
main_window . showMaximized ()
qapp . exec ()
if __name__ == "__main__" :
main ()
Откройте CMD в этом каталоге (удерживайте Shift->щелкните правой кнопкой мыши->открыть командное окно/PowerShell здесь) и выполните следующую команду, чтобы запустить VeighNa Trader:
python run.py
VeighNa использует Github для размещения своего исходного кода. Если вы хотите добавить код, воспользуйтесь процессом PR (Pull Request) github:
Создайте проблему. Для более крупных изменений (таких как новые функции, масштабный рефакторинг и т. д.) рекомендуется сначала открыть проблему и обсудить ее. Для небольших улучшений (таких как улучшения документов, исправления ошибок и т. д.) просто просто создайте проблему. отправьте PR напрямую.
Вилка VeighNa — нажмите кнопку «Вилка» в правом верхнем углу.
Клонируйте свою собственную вилку: git clone https://github.com/$userid/vnpy.git
Создайте свою собственную ветку функций из dev : git checkout -b $my_feature_branch dev
Измените $my_feature_branch и внесите изменения в свою вилку.
Создайте [запрос на включение] из ветки $my_feature_branch вашего форка в ветку разработки основного проекта — нажмите здесь «Сравнить вилки» , выберите нужную вилку и ветку, чтобы создать PR.
Жду обзора, нужно продолжать улучшаться, или вас объединят!
При отправке кода соблюдайте следующие правила, чтобы улучшить качество кода:
flake8
в корневом каталоге проекта. Массачусетский технологический институт