Did some more investigation about it and found out that indeed it is a bug - resampler just don't work at all for timeframe == days. To fix:
The code snippet I placed in previous message:
self.componly = (self.subdays and
data._timeframe == self.p.timeframe and
not (self.p.compression % data._compression)
)
...
self.componly = self.componly and not self.subdays
should be changed to (add 'not' before self.subdays and remove the last line):
self.componly = (not self.subdays and
data._timeframe == self.p.timeframe and
not (self.p.compression % data._compression)
)
Additionally in resamplefilter.py::Resampler::call() change this:
if consumed:
self.bar.bupdate(data) # update new or existing bar
data.backwards() # remove used bar
# if self.bar.isopen and (onedge or (docheckover and checkbarover))
cond = self.bar.isopen()
if cond: # original is and, the 2nd term must also be true
if not onedge: # onedge true is sufficient
if docheckover:
cond = self._checkbarover(data, fromcheck=fromcheck,
forcedata=forcedata)
to:
if consumed:
self.bar.bupdate(data) # update new or existing bar
# if self.bar.isopen and (onedge or (docheckover and checkbarover))
cond = self.bar.isopen()
if cond: # original is and, the 2nd term must also be true
if not onedge: # onedge true is sufficient
if docheckover:
cond = self._checkbarover(data, fromcheck=fromcheck,
forcedata=forcedata)
if consumed:
data.backwards() # remove used bar
This is just a quick fix I came up with, it can probably be fixed in a much prettier way.