|
|
|
@ -1,5 +1,6 @@ |
|
|
|
{-# LANGUAGE OverloadedStrings #-} |
|
|
|
{-# LANGUAGE OverloadedStrings #-} |
|
|
|
{-# LANGUAGE BangPatterns #-} |
|
|
|
{-# LANGUAGE BangPatterns #-} |
|
|
|
|
|
|
|
{-# LANGUAGE Strict #-} |
|
|
|
|
|
|
|
|
|
|
|
module Broker.PaperBroker ( |
|
|
|
module Broker.PaperBroker ( |
|
|
|
PaperBrokerState, |
|
|
|
PaperBrokerState, |
|
|
|
@ -80,6 +81,7 @@ pbSetNotificationCallback state callback = modifyIORef state (\s -> s { notifica |
|
|
|
|
|
|
|
|
|
|
|
pbSubmitOrder :: IORef PaperBrokerState -> Order -> IO () |
|
|
|
pbSubmitOrder :: IORef PaperBrokerState -> Order -> IO () |
|
|
|
pbSubmitOrder state order = do |
|
|
|
pbSubmitOrder state order = do |
|
|
|
|
|
|
|
infoM "PaperBroker" $ "Submitted order: " ++ show order |
|
|
|
curState <- readIORef state |
|
|
|
curState <- readIORef state |
|
|
|
case orderPrice order of |
|
|
|
case orderPrice order of |
|
|
|
Market -> executeMarketOrder state order |
|
|
|
Market -> executeMarketOrder state order |
|
|
|
@ -100,9 +102,9 @@ pbSubmitOrder state order = do |
|
|
|
ts <- getCurrentTime |
|
|
|
ts <- getCurrentTime |
|
|
|
maybeCall notificationCallback state $ TradeNotification $ mkTrade tick order ts |
|
|
|
maybeCall notificationCallback state $ TradeNotification $ mkTrade tick order ts |
|
|
|
|
|
|
|
|
|
|
|
submitLimitOrder = undefined |
|
|
|
submitLimitOrder state order = warningM "PaperBroker" $ "Not implemented: Submitted order: " ++ show order |
|
|
|
submitStopOrder = undefined |
|
|
|
submitStopOrder state order = warningM "PaperBroker" $ "Not implemented: Submitted order: " ++ show order |
|
|
|
submitStopMarketOrder = undefined |
|
|
|
submitStopMarketOrder state order = warningM "PaperBroker" $ "Not implemented: Submitted order: " ++ show order |
|
|
|
|
|
|
|
|
|
|
|
orderDatatype order = case orderOperation order of |
|
|
|
orderDatatype order = case orderOperation order of |
|
|
|
Buy -> BestOffer |
|
|
|
Buy -> BestOffer |
|
|
|
|