Browse Source

Support for libatrade-0.8.0.0

master
Denis Tereshkin 7 years ago
parent
commit
464cf77adc
  1. 2
      robocom-zero.cabal
  2. 17
      src/ATrade/Driver/Real/QuoteSourceThread.hs

2
robocom-zero.cabal

@ -28,7 +28,7 @@ library
, ATrade.Driver.Real , ATrade.Driver.Real
, ATrade.Driver.Backtest , ATrade.Driver.Backtest
build-depends: base >= 4.7 && < 5 build-depends: base >= 4.7 && < 5
, libatrade , libatrade == 0.8.0.0
, text , text
, text-icu , text-icu
, errors , errors

17
src/ATrade/Driver/Real/QuoteSourceThread.hs

@ -32,13 +32,16 @@ startQuoteSourceThread ctx qsEp strategy eventChan agg tickFilter = forkIO $ do
stopQuoteSourceClient qs stopQuoteSourceClient qs
debugM "Strategy" "Quotesource client: stop") debugM "Strategy" "Quotesource client: stop")
(\_ -> forever $ do (\_ -> forever $ do
tick <- readChan tickChan qdata <- readChan tickChan
when (goodTick tick) $ do case qdata of
writeChan eventChan (NewTick tick) QDTick tick -> when (goodTick tick) $ do
aggValue <- readIORef agg writeChan eventChan (NewTick tick)
case handleTick tick aggValue of aggValue <- readIORef agg
(Just bar, !newAggValue) -> writeChan eventChan (NewBar bar) >> writeIORef agg newAggValue case handleTick tick aggValue of
(Nothing, !newAggValue) -> writeIORef agg newAggValue) (Just bar, !newAggValue) -> writeChan eventChan (NewBar bar) >> writeIORef agg newAggValue
(Nothing, !newAggValue) -> writeIORef agg newAggValue
QDBar (tf, bar) -> return () -- TODO
)
where where
goodTick tick = tickFilter tick && goodTick tick = tickFilter tick &&
(datatype tick /= LastTradePrice || (datatype tick == LastTradePrice && volume tick > 0)) (datatype tick /= LastTradePrice || (datatype tick == LastTradePrice && volume tick > 0))

Loading…
Cancel
Save