«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Компоненты торговой системы

Компоненты торговой системы

Опубликовано 1 августа 2024 г.
Просматривать:761

Trading System Components

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

Модуль стратегии

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

def run(self, event):
    signal = self.calc_rsi(event)
    if signal != 'FLAT':
        self.create_event(event, signal)

В этом примере мы рассчитываем RSI и на его основе генерируем такие события, как ПОКУПКА или ПРОДАЖА. Это базовая иллюстрация, но концепция ясна. Сигнал может включать желаемую цену покупки/продажи. Конечно, реальный торговый алгоритм сложнее, но вы это и так знаете!

Модуль портфолио

Выгодно собирать все данные по балансам или открытым позициям в одном месте. Таким образом, вы узнаете общую сумму своих активов в долларах США или BTC. Эти знания необходимы для определения размера ваших ордеров, когда система генерирует сигналы.

def run(self, event):
    # Calculate USD values
    # Calculate targets
    # Check targets
    # Generate orders

Этот псевдокод описывает следующие шаги:

  • Рассчитать общий баланс в долларах США
  • Определить цели портфеля в соответствии со стратегией
  • Проверьте, соответствуют ли текущие балансы целевым показателям
  • Сформируйте заказы необходимого размера, если есть расхождения

Вы получаете все данные о балансе, сигналы, проверяете, соответствуют ли позиции желаемым, и генерируете ордера, если они не совпадают.

Модуль управления рисками

Этот модуль тесно связан с модулем «Портфолио». Иногда логику управления рисками можно реализовать непосредственно внутри него, особенно если вы управляете небольшой суммой и только начинаете. Для крупных фирм это может быть самый сложный элемент системы, и каждая фирма определяет свой точный алгоритм. Вот некоторые задачи, которые можно решить в рамках управления рисками:

  • Проверьте корреляцию между позициями, чтобы избежать 100% длинных или коротких позиций
  • Проверьте максимальный размер одной позиции
  • Остановить всю систему, если потери достигнут определенного процента.
  • Остановка системы в случае сбоя потока данных или проблем с другими компонентами

Чем дольше вы находитесь на рынке, тем более важной становится эта часть торгового алгоритма.

Модуль исполнения

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

Мы обсудили функции четырех модулей, каждый из которых полезен в 90% торговых алгоритмов. Структурируйте свой код, выберите хорошую архитектуру, и обслуживание и обновление вашей торговой системы станет гораздо менее болезненным.

Полный код будет доступен в виде торгового алгоритма с открытым исходным кодом для aspis.finance. Он будет включать в себя пару простых торговых стратегий, но ключевой особенностью является возможность создавать хранилища с помощью смарт-контрактов Aspis, привлекать средства инвесторов и обеспечивать прозрачное распределение прибыли. Вы можете разработать свою стратегию, подключить ее к Aspis, ваш алгоритм будет торговать на DEX, а инвесторы и менеджеры (вы) будут получать прибыль через смарт-контракт. Следите за обновлениями!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/jungle_sven/trading-system-comComponents-5f0b?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3