RichardTodd
03-30-2012, 12:25 PM
Since I've started using Ninja for stock data I've noticed an issue with the way Range bars report their volume. You rarely if ever see this with futures data, but on stocks it's common to have a tick now and then which is far removed from the current action. When this happens, Ninja has to build a string of range bars leading to the new location. So far so good, but the problem is that Ninja puts the volume from this trade on the _first_ bar it builds, instead of the last one. It's the last bar it has to build where the trading volume took place.
The logic in @BarTypes picks the volume for AddBar() like so:
isFirstNewBar ? volume : 1,
... and I guess using 1 for all the empty bars is to avoid poorly-written indicators crashing on 0-volume bars? I don't really care about that part... but "volume" should really not go to the firstNewBar, and I think the logic should change so that it goes to the last bar Ninja has to build.
The screenshot shows an example of the issue if the description above is not clear. Let me know if there's any other information you need. As you can see in my example, the misplaced volume can be sizeable, so people that track volume by price on range bars would appreciate it if this were addressed.
Thanks!
Richard
The logic in @BarTypes picks the volume for AddBar() like so:
isFirstNewBar ? volume : 1,
... and I guess using 1 for all the empty bars is to avoid poorly-written indicators crashing on 0-volume bars? I don't really care about that part... but "volume" should really not go to the firstNewBar, and I think the logic should change so that it goes to the last bar Ninja has to build.
The screenshot shows an example of the issue if the description above is not clear. Let me know if there's any other information you need. As you can see in my example, the misplaced volume can be sizeable, so people that track volume by price on range bars would appreciate it if this were addressed.
Thanks!
Richard