22 lines
915 B
Clojure
22 lines
915 B
Clojure
(ns skirmish.exchange.core
|
|
(:require [skirmish.util :refer [block-thread]]
|
|
[skirmish.middleware.core :refer [create-exchange-apis-for]]
|
|
[skirmish.exchange.exchange :refer [create-exchange-for-security empty-book]]
|
|
[kinsky.async]
|
|
[kinsky.client]))
|
|
|
|
(defn create-exchange-for [exchange-api]
|
|
(let [initial-book empty-book
|
|
new-order-publisher (:new-order-publisher exchange-api)
|
|
trades-submitter (:trades-submitter exchange-api)
|
|
orders-submitter (:orders-submitter exchange-api)]
|
|
|
|
(create-exchange-for-security initial-book
|
|
new-order-publisher
|
|
trades-submitter
|
|
orders-submitter)))
|
|
|
|
(defn -main [config exchange-apis]
|
|
(doseq [{sec-id :sec-id} (:securities config)]
|
|
(create-exchange-for (get exchange-apis sec-id)))
|
|
(block-thread)) |