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

OSCHINA-MIRROR/wondertrader-wondertrader

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

WonderTrader — это

  • основанная на ядре C++ и адаптированная для торговли всеми видами активов платформа для разработки количественных торговых систем. Она обеспечивает высокую эффективность и доступность;

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

  • система, которая опирается на высокопроизводительное ядро C++, и предлагает удобную в использовании прикладную среду (wtpy), направленную на создание полностью автоматизированной системы для количественной разработки и торговли.

WonderTrader был запущен с новым движком UFT, который предназначен для сверхнизкочастотной торговли. После серии оптимизаций система обеспечивает задержку в пределах 175 наносекунд.

Архитектура для реальной торговли

WonderTrader实盘运行架构.png

Преимущества WonderTrader

  • Разнообразие торговых движков:

    • CTA-движок (синхронный стратегический движок) обычно используется для стратегий с небольшим количеством целей и быстрой логикой событий и времени. Типичные сценарии применения включают одноцелевую выборку времени, торговлю ниже средней частоты и т. д. В демоверсии представлена стратегия DualThrust, которая требует около 70 микросекунд для пересчёта при реализации на Python и около 4,5 микросекунды при реализации на C++. CTA.jpg
    • SEL-движок (асинхронный стратегический движок), как правило, подходит для стратегий с большим количеством целей и более длительной логикой времени.
    • HFT-движок (высокочастотный стратегический движок) в основном ориентирован на стратегии с высокой частотой или низкой задержкой, управляемые событиями. Задержка системы составляет от 1 до 2 микросекунд. CTA.jpg
    • UFT-движок (сверхскоростной стратегический движок) предназначен для стратегий со сверхвысокой частотой или сверхнизкой задержкой, управляемых событиями. Задержка системы находится в пределах 200 наносекунд.
  • Эффективные и удобные интерфейсы разработки:

    • Эффективный и удобный интерфейс данных: каждая стратегия имеет свой собственный контекстный модуль, который автоматически кэширует данные, необходимые для стратегии. Стратегия может просто вызывать эти данные.
    • Простой сигнальный интерфейс: стратегии нужно только установить целевую позицию, а остальное делается автоматически.
    • Логика стратегии, не зависящая от контекста: стратегии не нужно самостоятельно записывать какие-либо данные, достаточно запросить их через интерфейс, и все данные будут кэшироваться в памяти, обеспечивая надёжную производительность доступа.
  • Профессиональное управление стратегиями:

    • Комплексное управление стратегическими комбинациями: используется подход стратегических комбинаций для соответствия требованиям профессиональных организаций. Один комбинированный стол соответствует нескольким стратегиям для нескольких целей, с установленной базовой единицей капитала. Это основная комбинация для управления продуктами, облегчающая расширение.
    • Объединение целевых позиций для исполнения: объединение целевых позиций помогает избежать риска самоисполнения и снижает использование гарантийного обеспечения и комиссионных расходов.
    • Независимое хранение теоретических позиций: теоретические позиции стратегий хранятся независимо, а совокупная эффективность комбинации рассчитывается отдельно, что упрощает внутреннее управление.
    • Параллельное исполнение для разных счетов: после определения цели для комбинации она синхронно исполняется через несколько торговых каналов, эффективно гарантируя согласованность результатов для различных счетов.
  • Поддержка бэктестинга всех типов:

    • Поддержка всех языков: стратегии, разработанные на C++, Python или других языках в рамках дочерних фреймворков, могут быть протестированы в унифицированном бэктест-движке.
    • Высокая эффективность бэктеста: бэктест-движок разработан на C++ для обеспечения высокой скорости и эффективности бэктеста. Быстрое тестирование возможно для стратегий на C++ или Python.
    • Полная поддержка стратегий: помимо CTA и SEL, HFT, UFT и исполнительные модули также могут быть протестированы. backtest.jpg
  • Высокоэффективное обслуживание данных:

    • Локальное обслуживание данных: встроенный механизм хранения данных в WonderTrader обеспечивает локальное обслуживание данных, передавая данные в реальном времени через порт UDP. Реализуется структура «1+N» обслуживания, позволяющая одновременно предоставлять данные без различий для нескольких комбинированных столов. Поддерживается многоуровневая архитектура распространения, способная удовлетворить различные требования сценариев применения.
    • Кэширование исторических данных: во время торговли все исторические данные кэшируются в памяти. Одновременно применяется механизм прямого доступа к памяти для нарезки данных, что позволяет избежать копирования данных и повысить эффективность доступа.
    • Высокоэффективный механизм хранения: данные в режиме реального времени хранятся с использованием mmap-файлов, обеспечивая быстрый доступ и предотвращая потерю данных. Также поддерживается хранение исторических данных в базе данных MySQL, что облегчает создание собственной исследовательской базы данных на этой основе.
  • Гибкое управление рисками:

    • Управление капиталом для комбинированных столов: комбинированные столы имеют заранее установленный объём капитала, что позволяет контролировать виртуальный капитал комбинированного стола. Преимущество заключается в том, что даже если комбинированный стол находится в нисходящем тренде, после срабатывания механизма управления капиталом дальнейшее снижение не произойдёт.
    • Контроль потока для каналов: основное внимание уделяется соблюдению нормативных требований, включая контроль общего количества отменённых ордеров, количества отменённых ордеров за короткий период времени и количества повторных отменённых ордеров.
    • Управление капиталом счетов: аналогично традиционному управлению капиталом, основной целью является контроль состояния счёта.
    • Аварийное вмешательство человека: предоставляется аварийный вход для вмешательства человека путём загрузки конфигурационного файла. Подходит для ситуаций, когда возникает риск для одного продукта, и весь рынок подвергается риску, можно просто остановить систему.
    • Механизм сцепления: механизм сцепления основан на разделении сигналов и выполнения. Если стратегия или комбинация сталкиваются с риском, механизм сцепления немедленно разрывает связь между сигналом и выполнением. Преимуществом является то, что логика стратегии остаётся неизменной, прерывается только выполнение сигнала, позволяя продолжать наблюдение за поведением стратегии в определённых рыночных условиях и подтверждать теоретические исследования. risk.jpg
  • Мощный интерфейс управления (мониторинг wtpy):

    • Мониторинг работы комбинированных столов: можно просматривать журналы работы в реальном времени, теоретические данные стратегий и данные торговых каналов, а также предоставлять возможность ручного запуска и остановки. monitor.jpg
    • Автоматическое планирование задач: обеспечивается полное автоматическое планирование задач по расписанию, включая еженедельное повторение и поддержку процессов мониторинга. schedule.jpg
    • Уведомления о событиях в реальном времени: служба мониторинга получает события, отправленные комбинированными столами, и пересылает их на интерфейс мониторинга для уведомления пользователей.
    • Просмотр данных бэктеста: используя модуль WtBtSnooper, можно просматривать данные бэктеста и анализировать их. bt_summary.jpg bt_details.jpg bt_signals.jpg
    • Удаленное автоматическое развёртывание (в разработке): обеспечивается полностью автоматическое удалённое развёртывание в режиме онлайн, предоставляя услуги автоматического развёртывания для сред бэктеста, реальной торговли и других сценариев использования.

Типичные области применения

  • Внутреннее управление командами: подход к управлению стратегическими комбинациями идеально подходит для внутреннего управления командами. Он предоставляет следующие преимущества: — Различные члены команды могут управлять различными стратегиями и объединять их в комбинацию, избегая взаимного влияния даже при торговле одними и теми же активами. — Код на уровне C++ обеспечивает максимальную конфиденциальность стратегий, снижая риск утечки информации среди членов команды. — Результаты стратегий рассчитываются независимо, упрощая оценку производительности внутри команды.

  • Многосчётная торговля (многопродуктовая конфигурация): для различных рыночных условий и периодов времени, команды часто имеют оптимальную стратегическую комбинацию. Однако в один и тот же период команда может управлять несколькими счетами, каждый из которых использует одну и ту же стратегическую комбинацию. В этом случае архитектура M+1+N, предлагаемая WonderTrader, идеально удовлетворяет потребности. [Рисунок: Базовая архитектура WonderTrader] — Стратегические комбинации имеют свои собственные объёмы капитала и соответствующие параметры риска, а также количество сделок для каждой отдельной стратегии. — Счета различаются по размеру капитала и предпочтениям в отношении рисков, и для каждого из них требуется только настроить коэффициент пересчёта в соответствии с требованиями. Если не удаётся перевести часть текста, то оставь его без перевода.

Сохраняй оригинальное форматирование текста.

Текст запроса написан на английском языке.

Вот перевод текста на русский язык:


Предположим, что базовый капитал комбинированного счёта P составляет 500w, ожидаемая доходность — 30%, максимальный откат — 10%, соотношение риска и доходности — 3:1; счёт A использует для торговли комбинированный счёт P, сумма средств на счёте A составляет 1000w, допустимый максимальный откат также равен 10%; счёт B также использует для торговли комбинированный счёт P, сумма средств также составляет 1000w, но допустимый максимальный откат составляет 20%.

В этом случае, поскольку параметры риска счёта A совпадают с параметрами базового счёта, коэффициент увеличения суммы сделки счёта A равен отношению суммы средств счёта к сумме средств базового счёта = 1000w / 500w = 2 раза; счёт B может увеличить коэффициент ещё в два раза, так как может выдержать максимальный откат в размере 20%, то есть счёт B может установить коэффициент в 4 раза.

— В-третьих, разные счета могут устанавливать независимую логику управления рисками, счета не влияют друг на друга.

  • Отслеживание нескольких целей

Некоторые платформы для количественной торговли, разработанные с использованием языков программирования, таких как Python, для разработки основных модулей, могут справиться с различными сценариями использования при небольшом количестве отслеживаемых целей. Однако когда количество отслеживаемых целей достигает 100 или даже 50, они не могут удовлетворить требования. С одной стороны, ресурсы занимают много места, хотя каждый из отслеживаемых объектов работает независимо, но для сотен целей потребуется создать сотни процессов, использование памяти и загрузка процессора будут очень большими; с другой стороны, эффективность стратегии низкая, а в условиях серьёзной конкуренции за ресурсы реакция стратегии также будет медленной.

WonderTrader использует C++ для основного ядра, архитектура данных изначально разработана для одновременного обслуживания нескольких комбинаций, стратегия и выполнение разделены, сигналы выполнения и расчёт стратегии полностью выполняются в двух отдельных потоках. В такой архитектуре можно хорошо удовлетворить потребности отслеживания нескольких целей.

  • Стратегии с большими вычислительными затратами

Для некоторых стратегий объём вычислений может быть очень большим, типичным примером является стратегия выбора акций, независимо от того, используется ли она для анализа многих факторов или фундаментального анализа, она будет выбирать целевые акции из тысяч акций шаг за шагом, чтобы получить окончательный целевой пул акций. Кроме того, некоторые многофакторные структуры для отслеживания нескольких целей также имеют большие вычислительные затраты. Такие стратегии требуют больших вычислительных затрат и длительного времени выполнения.

SEL-движок WonderTrader был разработан специально для удовлетворения этих потребностей. SEL-движок использует асинхронный режим, управляемый временем, путём регистрации пересчёта времени в движке (поддерживает ежедневные, еженедельные, ежемесячные и другие циклы), запускает пересчёт по расписанию, а затем корректирует позиции для отслеживания нескольких целей, выдавая сигналы.

  • Сверхбыстрая торговля

WonderTrader использует C++ в качестве основного языка разработки, и одна из самых важных целей — стремление к максимальной производительности, поэтому сценарии использования WonderTrader включают высокую частоту или сверхбыструю торговлю, занимая значительную долю. WonderTrader представил новый UFTEngine в версии v0.9, который специально предназначен для сценариев сверхбыстрой торговли.

В отличие от исходного HFTEngine, HFTEngine ориентирован на общую высокую частоту и уделяет внимание предоставлению высокопроизводительных компонентов нижнего уровня для прикладного уровня, учитывая больше проблем совместимости и проблем сопряжения прикладного уровня, задержка системы составляет от 1 до 2 микросекунд. А UFTEngine полностью отделён от проекта WtCore, не предоставляет интерфейс для прикладного уровня и полностью реализован на C++, задержка системы составляет менее 200 нс.

  • Алгоритмическая торговля

У WonderTrader есть отдельный модуль входа для выполнения алгоритмов WtExecMon, пользователи могут реализовать алгоритмы торговли на этой основе. В архитектуре выполнения M+1+N, часть 1+N отделена, её можно использовать как независимый исполнитель алгоритмов. Пользователи могут установить целевую позицию для определённых целей во время использования, и алгоритм выполнения может выполнять сделки на покупку и продажу в соответствии с заданным алгоритмом.

Пользователи могут добавлять дополнительные модули выполнения алгоритмов, реализуя свои собственные модули WtExecFact. Эффективный C++ нижнего уровня может обеспечить надёжную поддержку для выполнения алгоритмов.

Поддерживаемые торговые интерфейсы

  • Фьючерсы:
    • CTP
    • CTPMini
    • Фэйма Femas
    • Экклэнд (только групповая трансляция котировок)
    • Ида
  • Опционы:
    • CTPOpt
    • Золотой опцион maOpt
    • QWIN два открытия
  • Акции:
    • Zhongtai XTP
    • Zhongtai XTPXAlgo
    • Huaxin Qiandian
    • Huaqi ATP
    • Kuanru OES

wtpy введение

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

Кроме того, wtpy также включает мощный компонент мониторинга служб WtMonSvr. Этот компонент предоставляет удалённый веб-интерфейс для мониторинга состояния выполнения стратегий в реальном времени и обеспечивает автоматическое планирование 24×7 для обеспечения бесперебойной работы ваших сделок.

Как получить WonderTrader

Расширения WonderTrader

Используйте wtpy как основу для обучения с подкреплением для оптимизации стратегий WonderTrader Wt4ElegantRL. https://github.com/drlgistics/Wt4ElegantRL

Наконец

Следите за публичным аккаунтом wondertrader, чтобы получать актуальную информацию о WonderTrader.

Присоединяйтесь к группе обсуждения пользователей QQ: 610730738 (сначала добавьте звезду, затем укажите имя пользователя GitHub).

Дополнительные документы WonderTrader см. на сайте https://docs.wondertrader.com/.

Полуофициальные документы WonderTrader https://dumengru.github.io/docs_wondertrader/.

Изучите заметки о WonderTrader @ZzzzHeJ https://zzzzhej.github.io/WonderTrader-Learning-Notes/.

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

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

Введение

WonderTrader — мощный инструмент для управления портфелем. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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