Поток данных, реализующий торговые стратегии? - PullRequest
2 голосов
/ 27 октября 2011

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

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

Я использую Java.

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

Вы определенно не хотите выполнять торговую стратегию в потоке потока данных, особенно если выполнение занимает некоторое время.Это выполнение должно происходить в другом потоке.Я не очень знаком с Java, но я предполагаю, что вы могли бы использовать там пул потоков.В C # очень мощный способ распределить работу по нескольким потокам - использовать Tasks .

Еще одна вещь, о которой вы можете подумать: что делать, когда есть новые тики для инструмента, пока вы еще обрабатываете предыдущий тик.Во многих случаях имеет смысл обрабатывать только самые последние.Я написал небольшой пост о том, что я назвал самым последним шаблоном обновления с примером реализации на C #.Может быть, вы найдете это полезным.

1 голос
/ 27 октября 2011

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

Не совсем.Поток потока данных запускает выполнение торговых стратегий.Вы не хотите, чтобы какая-либо другая обработка замедляла поток подачи данных.

...