В последней статье я обсуждал лучшие практики разработки программного обеспечения для торговли, такие как использование событий, хранение данных или отдельные конфигурации. На этот раз давайте углубимся в стратегическую часть, а именно в то, как эффективно организовать ее с архитектурной точки зрения.
Самый простой подход — предположить, что эта часть системы получает входные данные, например, об изменении цен, и генерирует события — сигналы. Вся логика может быть инкапсулирована в этот модуль. Вот пример:
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
Этот псевдокод описывает следующие шаги:
Вы получаете все данные о балансе, сигналы, проверяете, соответствуют ли позиции желаемым, и генерируете ордера, если они не совпадают.
Этот модуль тесно связан с модулем «Портфолио». Иногда логику управления рисками можно реализовать непосредственно внутри него, особенно если вы управляете небольшой суммой и только начинаете. Для крупных фирм это может быть самый сложный элемент системы, и каждая фирма определяет свой точный алгоритм. Вот некоторые задачи, которые можно решить в рамках управления рисками:
Чем дольше вы находитесь на рынке, тем более важной становится эта часть торгового алгоритма.
После получения всех данных о цене и балансе, генерации сигналов, расчета оптимального размера портфеля и учета всех возможных рисков нет причин не отправлять заявку на биржу. Это может показаться самой простой частью, если только вы не реализуете маршрутизацию заказов между несколькими биржами. Обычно вы правильно форматируете ордер и отправляете его на биржу, на которой торгуете.
Мы обсудили функции четырех модулей, каждый из которых полезен в 90% торговых алгоритмов. Структурируйте свой код, выберите хорошую архитектуру, и обслуживание и обновление вашей торговой системы станет гораздо менее болезненным.
Полный код будет доступен в виде торгового алгоритма с открытым исходным кодом для aspis.finance. Он будет включать в себя пару простых торговых стратегий, но ключевой особенностью является возможность создавать хранилища с помощью смарт-контрактов Aspis, привлекать средства инвесторов и обеспечивать прозрачное распределение прибыли. Вы можете разработать свою стратегию, подключить ее к Aspis, ваш алгоритм будет торговать на DEX, а инвесторы и менеджеры (вы) будут получать прибыль через смарт-контракт. Следите за обновлениями!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3