1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-vn-py

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

VeighNa - Разработан Трейдерами, Для Трейдеров, На основе Искусственного Интеллекта.

💬 Хотите прочитать это на английском? Перейдите сюда

VeighNa — это открытый фреймворк для разработки систем квантового трейдинга на Python, который благодаря непрерывным вкладам сообщества превратился в многофункциональную платформу квантового трейдинга. С момента выпуска система уже имеет множество пользователей из финансовых учреждений и связанных сфер, включая частные инвестиционные фонды, брокерские компании и биржевые компании.

Если у вас возникнут вопросы при использовании VeighNa для вторичной разработки (стратегий, модулей и т.д.), пожалуйста, обратитесь к документации проекта VeighNa. Если вы не сможете найти ответ, обратитесь за помощью на официальном форуме сообщества в разделе «Задать вопрос». Также вы можете поделиться своим опытом использования в разделе «Поделиться опытом»!Хотите узнать больше о VeighNa? Сканируйте QR-код ниже, чтобы добавить ассистента и присоединиться к группе общения сообщества VeighNa:

На основе Искусственного Интеллекта

К десятой годовщине выпуска VeighNa был представлен версия 4.0, которая включает новый модуль vnpy.alpha для стратегий квантового трейдинга на основе искусственного интеллекта. Этот модуль предоставляет одностраничное решение для разработки, исследования и торговли стратегий машинного обучения (ML) с множеством факторов для профессиональных квантовых трейдеров:

  • :bar_chart: dataset: Обработка факторов

    • Оптимизирован для обучения алгоритмов ML, поддерживает эффективное массовое вычисление и обработку факторов
    • Встроенная мощная система вычислений для факторов, обеспечивающая быстрое создание набора данных для обучения
    • Alpha 158: Коллекция факторов для рынка акций, основанная на проекте Microsoft Qlib, включающая формы свечей, ценовые тренды и временные колебания*
  • :bulb: модель: Прогнозирование модели обучения * Предоставляет стандартизованный шаблон разработки ML-моделей, значительно упрощающий процесс построения и обучения моделей.

    • Единый API-интерфейс, поддерживающий плавный переход между различными алгоритмами для сравнения производительности.

    • Интегрированы различные популярные алгоритмы машинного обучения:

      • Lasso: классическая модель Lasso-регрессии, использующая L1-регуляризацию для выбора признаков.
      • LightGBM: эффективный градиентный бустинг решающих деревьев, оптимизированный для работы с большими наборами данных.
      • MLP: многослойный перцептрон нейронной сети, подходящий для моделирования сложных нелинейных зависимостей.* :robot: стратегия: разработка исследовательских стратегий
    • Быстрая разработка квантовых торговых стратегий на основе ML-предсказательных моделей

    • Поддерживает два типа стратегий: сечения множества активов и временные ряды одного актива

  • :microscope: лаборатория: управление исследовательским процессом

    • Интегрирована полная рабочая процедура управления данными, обучения моделей, генерации сигналов и обратного тестирования стратегий
    • Простой API-интерфейс, включающий встроенные средства визуализации для анализа, позволяющие наглядно оценить производительность стратегий и качество моделей
  • :book: нотебук: демонстрационные примеры квантового исследования * download_data_rq: загрузка данных A-акций через RQData, включая отслеживание изменений состава индекса и получение исторических данных

    • download_data_xt: загрузка данных A-акций через сервис данных Xuantou, включая исторические изменения состава индекса и данные по ценовым линиям акций
    • research_workflow_lasso: рабочий процесс квантового исследования на основе модели Lasso-регрессии, демонстрирующий способность модели к выбору признаков и прогнозированию
    • research_workflow_lgb: рабочий процесс квантового исследования на основе модели LightGBM, использующий методы эффективного бустинга для прогнозирования
    • research_workflow_mlp: рабочий процесс квантового исследования на основе MLP, демонстрирующий применение глубокого обучения в квантовых торговых стратегияхvnpy.alpha модуль был создан под влиянием проекта Qlib, предоставляющего мощные возможности AI-квантового анализа, сохраняя при этом простоту использования. Мы выражаем глубокую благодарность команде разработчиков Qlib за их вклад!

Функциональные особенности

Модули с :arrow_up: уже прошли тестирование на совместимость с версией 4.0, а сама основная платформа была обновлена с акцентом на обеспечение обратной совместимости. Поэтому большинство модулей можно использовать непосредственно после обновления (исключение составляют интерфейсы, использующие C++ API).

  1. :arrow_up: Многофункциональная платформа для квантовых торгов (трейдер), объединяющая различные торговые интерфейсы и предоставляющая простые и удобные API для быстрого создания приложений для квантовых торгов в соответствии со стратегиями и алгоритмами.

  2. Поддержка торговых интерфейсов (гейтвей) для следующих финансовых инструментов:

    • Китайский рынок

      • :arrow_up: CTP (ctp): китайские фьючерсы и опционы

      • :arrow_up: CTP Мини (mini): китайские фьючерсы и опционы

      • :arrow_up: CTP Секьюрити (sopt): ETF опционы

      • :arrow_up: Фэма (femas): китайские фьючерсы

      • :arrow_up: Хэншэн UFT (uft): китайские фьючерсы и ETF опционы * Эсунни (esunny): китайские фьючерсы и золотые опционы

      • ↑ Дингдан HTS (hts): ETF опционы

      • ↑ Центр Тай XTP (xtp): китайские акции и ETF опционы

      • ↑ Хуацзинь Чжидиан (tora): китайские акции и ETF опционы

      • Донгчжэн ОСТ (ost): китайские акции

      • Дафа Тайфан ЭМТ (emt): китайские акции

      • Фэйшу (sgit): золотые опционы и китайские фьючерсы

      • ↑ Цзиньшида Золото (ksgold): золотые опционы

      • ↑ Лисинь Цзюнь (lstar): управление активами на фьючерсах

      • ↑ Руоган (rohon): управление активами на фьючерсах

      • ↑ Жэййиш (jees): управление активами на фьючерсах

      • Центр Хуай Йида (comstar): межбанковский рынок

      • ↑ TTS (tts): китайская фьючерсная биржа (симуляция)

    • Международные рынки

      • ↑ Interactive Brokers (ib): международные акции, фьючерсы, опционы, драгоценные металлы и т.д.

      • ↑ YiSheng 9.0 внешний рынок (tap): международные фьючерсы

      • ↑ Прямой доступ к фьючерсу (da): международные фьючерсы * Специальные приложения

      • :arrow_up: RQData котировки (rqdata) : Кросс-платформенные котировки (акции, индексы, ETF, фьючерсы)

      • :arrow_up: Xintouyan котировки (xt) : Кросс-платформенные котировки (акции, индексы, облигации с правом выкупа, ETF, фьючерсы, опционы)

      • :arrow_up: RPC сервис (rpc) : Интерфейс для межпроцессного взаимодействия, используемый в распределенной архитектуре

  3. Поддержка следующих типов стратегий кванта (app):

    • :arrow_up: cta_strategy : Модуль CTA стратегии, который позволяет пользователям контролировать детали управления заявками и отменами заявок во время выполнения стратегии CTA (уменьшение проскальзывания, реализация высокочастотных стратегий)

    • :arrow_up: cta_backtester : Модуль CTA обратного тестирования, который позволяет проводить анализ обратного тестирования, оптимизацию параметров и т.д. без использования Jupyter Notebook

    • :arrow_up: spread_trading : Модуль спред-трейдинга, поддерживающий пользовательские спреды, реальное время вычисление спред-котировок и позиций, поддержка алгоритмической торговли спредами и автоматических стратегий спредов * :arrow_up: option_master : Модуль торговли опционами, предназначенный для китайского рынка опционов, поддерживающий различные модели ценообразования опционов, вычисление поверхности скрытой волатильности и отслеживание рисков Греек * :arrow_up: portfolio_strategy : Модуль портфельной стратегии, предназначенный для стратегий кванта, торгующих несколькими контрактами одновременно (альфа, стратегии арбитража опционов и т.д.), предоставляющий историческое тестирование данных и автоматическую торговлю на реальных рынках.

    • :arrow_up: algo_trading : Модуль алгоритмической торговли, предоставляющий различные популярные алгоритмы умной торговли: TWAP, Sniper, Iceberg, BestLimit и т.д.

    • :arrow_up: script_trader: модуль скриптовых стратегий, предназначенный для создания классических квантовых стратегий и вычислительных задач с многими объектами. Также позволяет реализовать торговые операции в командной строке в форме REPL-команд, но не поддерживает функцию обратного тестирования.

    • :arrow_up: paper_account: локальный модуль симуляции, который полностью реализован локально и предоставляет функцию симуляции торговых операций на основе реального времени, полученного через торговый интерфейс. Предоставляет функцию отправки подтверждений о сделках и отслеживания позиций.

    • :arrow_up: chart_wizard: модуль графиков K-линий, использует данные RQData (для фьючерсов) или исторические данные, полученные через торговый интерфейс, а также показывает изменения в реальном времени на основе данных Tick. * :arrow_up: portfolio_manager: модуль управления торговыми портфелями, основанный на независимых торговых аккаунтах, который предоставляет управление записями о сделках, автоматическое отслеживание позиций и ежедневный учет прибылей и убытков.

    • :arrow_up: rpc_service: модуль RPC-сервиса, который позволяет запустить процесс как сервер, предоставляющий единую точку маршрутизации для рыночных данных и торговых операций. Поддерживает одновременное подключение нескольких клиентов и реализацию распределенной системы с несколькими процессами.

    • :arrow_up: data_manager: модуль управления историческими данными, который позволяет просматривать структуру данных в базе данных через древовидную структуру каталога, выбирать данные за любой период времени и просматривать детали полей. Поддерживает импорт и экспорт данных из/в CSV-файлы.

    • :arrow_up: data_recorder: модуль записи рыночных данных, который позволяет настроить запись данных Tick или K-линий в реальном времени в базе данных с помощью графического интерфейса для использования в обратном тестировании стратегий или инициализации реальной торговли. * :arrow_up: excel_rtd: модуль Excel RTD (Real Time Data), который позволяет получать различные данные (рыночные, контракты, позиции и др.) в реальном времени с помощью модуля pyxll. * :arrow_up: risk_manager: модуль управления рисками, который предоставляет статистику и ограничения для правил управления потоком торговли, количеством заявок на покупку, активных заявок и общим количеством отмененных заявок, что обеспечивает эффективное управление рисками на уровне клиента.

    • :arrow_up: web_trader: модуль Web-сервера, который реализует функцию активного вызова функций (REST) и пассивной передачи данных (Websocket) для удовлетворения потребностей архитектуры B-S. Python торговый API интерфейс (api), предоставляющий реализацию низкоуровневого взаимодействия с указанными выше торговыми интерфейсами.

    • :arrow_up: REST Клиент (rest): Высокопроизводительный REST API клиент, основанный на корутинной асинхронной IO, использует модель программирования с событийным циклом сообщений, поддерживающий высокую пропускную способность и реальное время отправки торговых запросов.

    • :arrow_up: WebSocket Клиент (websocket): Высокопроизводительный WebSocket API клиент, основанный на корутинной асинхронной IO, поддерживает совместное использование событийного цикла с REST Клиентом для параллельной работы.

  4. :arrow_up: Простой и удобный в использовании движок событий (event), являющийся ядром событийного типового торгового приложения.6. Интерфейсы адаптеров для различных баз данных (database):

    • SQL типы

      • :arrow_up: SQLite (sqlite): Легковесная однопользовательская база данных, не требующая установки и конфигурации служб данных, стандартный выбор VeighNa, подходящий для начинающих пользователей

      • :arrow_up: MySQL (mysql): Основной открытый реляционный источник данных, обширная документация, может заменять другие NewSQL совместимые реализации (например TiDB)

      • :arrow_up: PostgreSQL (postgresql): Открытая реляционная база данных с более богатым набором функций, поддерживающая расширение функциональности через плагины, рекомендована только опытным пользователям

    • NoSQL типы

      • DolphinDB (dolphindb): Высокопроизводительная распределенная временная база данных, подходящая для задач с высокими требованиями к скорости, таких как низкая задержка или реальное время

      • :arrow_up: TDengine (taos): Распределенная, высокопроизводительная, поддерживающая SQL временная база данных, оснащенная встроенным кэшированием, потоковой обработкой данных и подпиской на данные, что значительно упрощает разработку и эксплуатацию

      • :arrow_up: MongoDB (mongodb): Документная база данных, основанная на распределенном файловом хранилище (bson формат), оснащенная встроенным горячим кэшем данных для быстрого чтения и записи7. Интерфейсы адаптеров для следующих типов сервисов данных (datafeed):

    • :arrow_up: XTP (xt): акции, фьючерсы, опционы, фонды, облигации

    • :arrow_up: 米筐RQData (rqdata): акции, фьючерсы, опционы, фонды, облигации, золотые фьючерсы

    • :arrow_up: MultiCharts(mcdata):фьючерсы, фьючерсные опционы

    • :arrow_up: TuShare(tushare):акции, фьючерсы, опционы, фонды

    • :arrow_up: Wind(wind):акции, фьючерсы, фонды, облигации

    • :arrow_up: iFinD(ifind):акции, фьючерсы, фонды, облигации

    • :arrow_up: TQSDK(tqsdk):фьючерсы

    • :arrow_up: Juejin(gm):акции

  5. :arrow_up: Компонент для межпроцессного взаимодействия (rpc), используемый для реализации сложных систем торговых операций в распределённой среде.

  6. :arrow_up: Высокопроизводительный Python-графический инструмент для отображения свечей (chart), поддерживающий отображение больших объёмов данных и обновление в реальном времени.

  7. Форум сообщества и колонка на Zhihu, содержащие руководства по разработке проекта VeighNa и исследования применения Python в области квантовых торгов.

  8. Официальный обменный чат 262656087 (QQ), строго контролируемый (регулярное удаление участников, которые долго не активны), плата за вход будет направлена в фонд сообщества VeighNa.Примечание: вышеуказанные характеристики функциональности основаны на состоянии документации при её выпуске, могут быть обновлены или скорректированы позже. Если описание функций отличается от фактического использования, просьба связаться через Issue для корректировки.

Подготовка окружения

  • Рекомендуется использовать Python-версию VeighNa Studio-4.1.0, созданную командой VeighNa специально для квантовых торгов, которая включает в себя VeighNa Framework и платформу управления квантовыми торговыми операциями VeighNa Station, что позволяет избежать необходимости самостоятельной установки.
  • Поддерживаемые версии операционных систем: Windows 11 и выше / Windows Server 2022 и выше / Ubuntu 22.04 LTS и выше.
  • Поддерживаемые версии Python: Python 3.10 и выше (64-битная), рекомендуется использовать Python 3.13.

Шаги установки

Скачайте последнюю версию с этой страницы, распакуйте архив и выполните следующие команды для установки:

Windows

install.bat

Ubuntu

bash install.sh

MacOS

bash install_osx.sh
```1. Зарегистрируйтесь в [SimNow](http://www.simnow.com.cn/) для получения тестового аккаунта CTP и получите код брокера и адрес сервера сделок и котировок с [этой страницы](http://www.simnow.com.cn/product.action).
2. Чтобы получить учетные данные для входа в VeighNa Station, зарегистрируйтесь на [форуме сообщества VeighNa](https://www.vnpy.com/forum/) (логин и пароль от форума — это логин и пароль для VeighNa Station).3. Запустите VeighNa Station (после установки VeighNa Studio на рабочий стол будет автоматически создан ярлык). Введите полученные ранее учетные данные для входа.

4. Нажмите кнопку **VeighNa Trader** в нижней части экрана, чтобы начать торговлю!!!

Обратите внимание:

* Во время работы VeighNa Trader не закрывайте VeighNa Station (при закрытии программа автоматически завершится).

## Запуск скрипта

Кроме графического запуска через VeighNa Station, можно создать файл `run.py` в любой директории и вписать следующий пример кода:

```python
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():
    """Запуск 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 для хранения исходного кода. Если вы хотите внести свой вклад, пожалуйста, используйте процесс Pull Request от GitHub:1. Создайте Issue — Для больших изменений (например, новых функций, крупных рефакторингов и т.д.) рекомендуется сначала создать Issue для обсуждения. Для небольших улучшений (например, улучшение документации, исправление ошибок и т.д.) вы можете сразу отправить Pull Request.2. Fork VeighNa - Нажмите кнопку Fork в правом верхнем углу.

  1. Клонируйте ваш fork: git clone https://github.com/$userid/vnpy.git

  2. Создайте свою ветку feature от ветки dev: git checkout -b $my_feature_branch dev

  3. Измените код в ветке $my_feature_branch и отправьте изменения на ваш fork.

  4. Создайте Pull Request от вашей ветки $my_feature_branch вашего fork до основной ветки dev проекта - здесь нажмите Compare across forks, выберите нужный fork и branch для создания PR.

  5. Подождите проверки, продолжайте улучшения или вас сложат!

При отправке кода, пожалуйста, следуйте следующим правилам для повышения качества кода:

  • Используйте ruff для проверки стиля вашего кода, чтобы убедиться, что нет ошибок и предупреждений. Выполните ruff check . в корневой директории проекта.
  • Используйте mypy для статической проверки типов, чтобы убедиться, что аннотации типов верны. Выполните mypy vnpy в корневой директории проекта.

Другие материалы

MIT → Лицензия MIT

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-vn-py.git
git@api.gitlife.ru:oschina-mirror/mirrors-vn-py.git
oschina-mirror
mirrors-vn-py
mirrors-vn-py
master