1
$\begingroup$

I have a large dataset that includes my strategy back-test run data. The dataset columns include candle date, close price and many strategy related data.

I’ve built a Mathplotlib visualization for my backtest run data. While my visualization works, working with Mathplotlib charts is tedious. I like to have something like Plotly.py’s Range Sliders shown here https://plotly.com/python/range-slider/

Before I spend time and migrate my visualization to another platform, I wanted to ask what are the efficient and productive options to visualize large timeseries market data? So far I’ve come up with the following options, but I am hoping to know if I am missing any common tool or library:

  • Tradingview’s Lightweight Charts - Open Source: Not sure if it can handle large datases
  • Plotly.py: Not sure if it can handle large datasest
  • Power BI

Am I missing any better tool, library or option?

$\endgroup$
0

5 Answers 5

2
$\begingroup$

I've been able to support a few demo applications with 3+ million data points in microsecond resolution on Highcharts, based around this example.

$\endgroup$
1
  • $\begingroup$ An open source option should be preferred. A paid one is relevant when there is no open source option is available. Tradingview’s Lightweight Charts are impressive and open source. $\endgroup$
    – Allan Xu
    Apr 6 at 4:21
0
$\begingroup$

I know that in my company some of the algo traders are using Altair Panopticon to visualize real time trading data when plugged to a KDB database system. Not sure if they have a free version.

$\endgroup$
0
$\begingroup$

If you like Plotly, Julia's graphing library can produce charts like this. It has the rangeslider, you can pan, box select, lasso select, all without adding much code. That's what it looks like in a Jupyter notebook:

enter image description here

Not sure if it is of interest if you are unfamiliar with Julia, but the language does have a few good selling points though. The most notable one being speed. It is also open source.

I did a speed comparison here which highlights the differences to Python. Since you asked about large data, Quantinsti has some good tests for Multiple operations on large datasets. For example, for 100 groups of ~10,000,000 rows, Python (pandas package) and R (dplyr package) resulted in an internal error and out of memory error, respectively while Julia took 2.4 seconds the first time and 1.8 seconds the second time.

It is also a very well designed language that allows you to quickly deal with overflow and floating point math issues as can be seen here.

There are other packages like Vegalite which are also very useful.

Last but not least, you have Plots.jl with TimeSeries.jl which is very flexible itself. Plots lets you switch quickly between backends like PlotlyJs, GR,... without even changing the code.

$\endgroup$
1
  • 1
    $\begingroup$ There is no doubt Julia is a superior language. However, in this particular case, Julia is not doing the bulk of the work. It just produces Plotly.js Javascript and html code. Julia is not running the graph you shown, your browser's Javascript runtime engine does. $\endgroup$
    – Allan Xu
    Apr 17, 2022 at 1:15
0
$\begingroup$

The cufflinks package in Python might suit this purpose well (its a wrapper around plotly). It makes it easy to produce common financial charts. Here's a article someone wrote that you might find useful: https://medium.com/geekculture/how-to-create-interactive-2d-charts-for-stock-investment-analysis-with-python-61fadeecec1c

$\endgroup$
-1
$\begingroup$

After spending sometime learning Plotly, Just wanted to share here and confirm that Plotly does an impressive job visualizing finance data.

Below is an example of Plotly char visualizing 200,000 candle bars. It is work in progress (30% done) but Plotly features are promising.

For larger dataset, the Pandas Datafarame should be re-populated in a Jupyter notebook or a presentable Dash UI dashboard.

enter image description here

The power of the machine rendering the chart is a key factor for the such heavy chart.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.