Closed swharden closed 2 days ago
vlad has two accounts and the one he uses for his personal project is
VladislavPustovarov
so you can change the at to match that
@quantfreedom and @VladislavPustovarov - got it, thanks!
I added cursor tracking with highlighted labels and candle snapping in the horizontal axis
I'll keep working in #4484
holy jesus ... this thing is looking so damn sexy ... this is beyond nuts that all of this is even happening ... insane
@VladislavPustovarov I have an important message about performance.
Performance is indeed very bad when displaying 50,000 candles. However, I think this should never be done. Showing so many distinct candles on a 800px wide chart means each candle is less than 0.02 pixels wide.
I highly recommend detecting when you are trying to display an extremely large number of candles and re-binning the data so that candles are at least 1 pixel wide or wider. I don't think a user will ever want to see second-width candles on a years-wide plot.
For example, TradingView limits how far you can zoom in or out based on the width of candles. This prevents more than a few thousand candles from ever being seen at one time. Users who want to see more time can increase the candle width.
If you implement this strategy in your application, it will be extremely performant. Also, no modification to ScottPlot is required to achieve this high performance.
Let me know if you have any questions about this topic! I am updating the demo app in #4484 to show render time and frame rate at the top in the title area. It's interesting to see how poor performance gets when candles are significantly smaller than 1 pixel wide.
I'm writing this down to put words to the behavior that needs to change.
Presently, resizing the window "squeezes" the plot so there is no change in axis limits. For financial charting, this is not the desired behavior.
The chart should respond to resize events by "sliding" data off the screen to the left to achieve a fixed "distance per pixel" ratio through resize events
I figured out a way to implement this behavior using a custom axis rule
This completes my list of tasks so I'm going to merge #4484 which will close this issue, but we can still use this issue for conversation and taking notes even after it's closed.
Let's can pick up our discussion again after you make progress on improving the data tick logic
Feel free to reach out in the meantime if you have any questions 👍
This issue tracks short term goals to improve financial charting resulting from a discussion today with @quantfreedom and @VladislavPustovarov
Progress will be evaluated using the Sandbox.WinFormsFinance project
This work extends #4385
Scott
Use strategy pattern to allow multiple scaling strategies including custom ones injected by the user.It is already a function that can be created by the user and assigned to theContinuousAutoscaleAction
action so creating additional classes is not required.Vlad