Browse Source

junction: ignore zero ticks

Unfortunately, zero ticks (ticks with value == 0) is still a thing.
This is because quik sends zero ticks on clearing and on session startup
master
Denis Tereshkin 4 years ago
parent
commit
1a1f81a351
  1. 6
      src/ATrade/Driver/Junction/RobotDriverThread.hs

6
src/ATrade/Driver/Junction/RobotDriverThread.hs

@ -39,7 +39,7 @@ import ATrade.RoboCom.Persistence (MonadPersistence)
import ATrade.RoboCom.Types (BarSeriesId (BarSeriesId), import ATrade.RoboCom.Types (BarSeriesId (BarSeriesId),
Bars, TickerInfoMap) Bars, TickerInfoMap)
import ATrade.Types (Order (orderId), OrderId, import ATrade.Types (Order (orderId), OrderId,
OrderState, Trade) OrderState, Trade, Tick (value))
import Colog (HasLog (getLogAction, setLogAction), import Colog (HasLog (getLogAction, setLogAction),
LogAction) LogAction)
import Control.Concurrent (ThreadId, forkIO) import Control.Concurrent (ThreadId, forkIO)
@ -47,7 +47,7 @@ import Control.Concurrent.BoundedChan (BoundedChan,
newBoundedChan, readChan, newBoundedChan, readChan,
writeChan) writeChan)
import Control.Exception.Safe (MonadThrow) import Control.Exception.Safe (MonadThrow)
import Control.Monad (forM_, forever, void) import Control.Monad (forM_, forever, void, when)
import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.IO.Class (MonadIO, liftIO)
import Control.Monad.Reader (MonadReader (local), import Control.Monad.Reader (MonadReader (local),
ReaderT, asks) ReaderT, asks)
@ -87,7 +87,7 @@ robotDriverThread inst eventQueue =
handleEvent (EventRequest _) = return () handleEvent (EventRequest _) = return ()
handleEvent (QuoteEvent d) = handleEvent (QuoteEvent d) =
case d of case d of
QDTick tick -> strategyEventCallback inst (NewTick tick) QDTick tick -> when (value tick /= 0) $ strategyEventCallback inst (NewTick tick)
QDBar (tf, bar) -> strategyEventCallback inst (NewBar (tf, bar)) QDBar (tf, bar) -> strategyEventCallback inst (NewBar (tf, bar))
handleEvent (NewTradeEvent trade) = strategyEventCallback inst (NewTrade trade) handleEvent (NewTradeEvent trade) = strategyEventCallback inst (NewTrade trade)
handleEvent (OrderEvent oid newState) = strategyEventCallback inst (OrderUpdate oid newState) handleEvent (OrderEvent oid newState) = strategyEventCallback inst (OrderUpdate oid newState)

Loading…
Cancel
Save