Thanks for the extra information.
Looking at your screen shot, the reason why the candles are so ‘squashed’ is that (as I think you’ve suggested) the y axis has been drawn with a range which caters for all of the points within the series, including those not currently displayed.
You mention that you initially show the latest x number of records. Have you tried the following:
Before adding any data points to the (Android) data adapter, scan your data’s last x points and note the high and low y values. Use the method setDefaultRange() to set this range on the y axis. Then load the data. This should set the range of the y axis so that the candles fill much more of the plot area and appear much less ‘squashed’. Bear in mind please my earlier note about range requests on axes not being honoured if such a request violates any rules set on the axis. Also, you should use this method before loading the data adapter, not after. Also please bear in mind that as the user scrolls back in time eventually some candles will not be displayed (as their y values will fall outside of the current range of the y axis) and the user would need to zoom out to see them.
Another approach may be to load the data in chunks. So initially you would load the last x number of records to the series and the axis would automatically set its range to accommodate this data. As the user scrolls back in time, you would dynamically load more data. You would need to think about performance with this solution. Also, if you cleared the series each time you loaded a new ‘chunk’ of data (rather than just add older data points to the adapter), the axes’ ranges may change which would not necessarily give a good user experience.
Let us know how you get on.
I hope you find this information useful,