Skip to content

ipostanogov/akka-stock-exchange

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Торговая биржа (Акторы)

Задача

На бирже проходят торги по акциям некоторой компании.

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

Пример работы программы

Идея реализации

Торговую биржу, новостные сайты и трейдеров реализовать в виде акторов, живущих в отдельных процессах. Четвёртый процесс отображает на пользовательском интерфейсе новости и ход торгов.

Сервер биржи принимает ордера на покупку и продажу, а также сообщает о лучших ценах. Закрытие (исполнение) ордеров происходит только в момент обработки нового ордера. Если новый ордер хуже чем существующие, то он запоминается. Если лучше - система проходит по отсортированным ордерам другого класса и пытается закрыть новый ордер.

Особенности реализации

Релизация модели акторов - Akka. Пользовательский интерфейс - JavaFX.

Системы акторов расположены на различных портах (задаётся в файле application.conf):

  • 127.0.0.1:59001 - сервер биржи,
  • 127.0.0.1:59002 - новостные сайты,
  • 127.0.0.1:59003 - все трейдеры,
  • 127.0.0.1:59004 - пользовательский интерфейс.

Сервер биржи и новостные сайты только отвечают на запросы. Трейдеры получают новости, текущие цены и добавляют новые ордера. Пользовательский интерфейс (через актор сбора статистики) получает новости и текущие цены.

Запуск

Последовательно запустить (например, в IntelliJ IDEA):

  • perm.tryfuture.exchange.ExchangeServer
  • perm.tryfuture.exchange.NewsServer
  • perm.tryfuture.exchange.UI
  • perm.tryfuture.exchange.Trader

Текущие ограничения

  • У трейдеров нет состояния (количества акций и денег). Трейдер может купить/продать бесконечно много акций.
  • При смене новостей трейдер может закрыть новым ордером свой же ордер.

About

Торговая биржа (Акторы)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages