Browse Source

Broker data structure

master
Denis Tereshkin 9 years ago
parent
commit
2e879cfa37
  1. 14
      src/Broker.hs

14
src/Broker.hs

@ -16,6 +16,8 @@ data OrderPrice = Market | Limit Decimal | Stop Decimal Decimal
data Operation = Buy | Sell data Operation = Buy | Sell
deriving (Show, Eq) deriving (Show, Eq)
type OrderId = Integer
data OrderState = Unsubmitted data OrderState = Unsubmitted
| Submitted | Submitted
| PartiallyExecuted | PartiallyExecuted
@ -25,7 +27,7 @@ data OrderState = Unsubmitted
| Error String | Error String
data Order = Order { data Order = Order {
orderId :: Integer, orderId :: OrderId,
orderAccountId :: String, orderAccountId :: String,
orderSecurity :: String, orderSecurity :: String,
orderPrice :: OrderPrice, orderPrice :: OrderPrice,
@ -37,7 +39,7 @@ data Order = Order {
deriving (Show, Eq) deriving (Show, Eq)
data Trade = Trade { data Trade = Trade {
tradeOrderId :: Integer, tradeOrderId :: OrderId,
tradePrice :: Decimal, tradePrice :: Decimal,
tradeQuantity :: Integer, tradeQuantity :: Integer,
tradeVolume :: Decimal, tradeVolume :: Decimal,
@ -48,3 +50,11 @@ data Trade = Trade {
tradeSignalId :: SignalId } tradeSignalId :: SignalId }
deriving (Show, Eq) deriving (Show, Eq)
data Broker = Broker {
accounts :: [String],
setTradeCallback :: Maybe (Trade -> IO ()),
setOrderCallback :: Maybe (Order -> IO ()),
submitOrder :: Order -> IO (),
cancelOrder :: OrderId -> IO ()
}

Loading…
Cancel
Save