Browse Source

BarAggregator: handleBar: do not handle old bars

stable
Denis Tereshkin 6 years ago
parent
commit
cd22e7ee1f
  1. 2
      robocom-zero.cabal
  2. 6
      src/ATrade/BarAggregator.hs

2
robocom-zero.cabal

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

6
src/ATrade/BarAggregator.hs

@ -194,11 +194,11 @@ handleBar bar = runState $ do @@ -194,11 +194,11 @@ handleBar bar = runState $ do
Just series -> case bsBars series of
(b:bs) -> do
let currentBn = barNumber (barTimestamp b) (tfSeconds $ bsTimeframe series)
if currentBn == barNumber (barTimestamp bar) (tfSeconds $ bsTimeframe series)
then do
if
| currentBn == barNumber (barTimestamp bar) (tfSeconds $ bsTimeframe series) -> do
lBars %= M.insert (barSecurity bar) series { bsBars = updateBar b bar : bs }
return Nothing
else
| currentBn < barNumber (barTimestamp bar) (tfSeconds $ bsTimeframe series) -> do
if barEndTime b (tfSeconds $ bsTimeframe series) == barTimestamp bar
then do
lBars %= M.insert (barSecurity bar) series { bsBars = emptyBarFrom bar : (updateBar b bar : bs) }

Loading…
Cancel
Save