Code Monkey home page Code Monkey logo

Comments (14)

hroff-1902 avatar hroff-1902 commented on May 31, 2024 1

Tradingview charting lib:
https://www.tradingview.com/HTML5-stock-forex-bitcoin-charting-library/

The lightweight version is Apache licensed

Many exchanges moved from custom charts to tradingview (or at least offer it as an option in UI)

Using it will give the users look-and-feel familiar for many...

from frequi.

xmatthias avatar xmatthias commented on May 31, 2024 1

it won't be lightweight charts (the tradingview library) for the moment, as that would mean we'd need 2 libraries.
Also, the only version we'd be allowed to use is the lowest level (open source) - and that is VERY limited - no drawing tools, not even cursor sync (to allow zooming in on one chart, and also zoom in on the below RSI chart).

I'm playing with e-charts - and performance (and usability) is pretty good so far (especially considering that we'll not have millions of candles at once) - and it also looks quite good i think (echarts performance example).

from the UI so far:

2020-06-17-203854_1915x726_scrot

Neither will have the "drawing tools" you know from tradingview (the page) - so an analysis view would have to be built manually - but to be honest, replicating tradingview is not the point of the UI, it's to give you a quick glimse at what's happening with the bot in real time - and (at a later point) also where the signals are in backtesting.

If you wanna do analysis - go to tradingview (or the exchange, which also uses tradingview in 90% of the cases).

from frequi.

xmatthias avatar xmatthias commented on May 31, 2024 1

using eCharts i'm pretty far i think (but currently, the endpoint in freqtrade is missing for that).

2020-07-01-205300_1770x927_scrot

I've also got a small "daily" graph - but that was more to see how eCharts would work than what it's actually great.

Stay tuned - this will come - and i think you'll like it 👍

from frequi.

xmatthias avatar xmatthias commented on May 31, 2024

After doing a bit of investigation:

chartjs

it seems like chartjs does not natively support financial (speak candlestick) charts. that kindof eliminates it as that's our main plotting target (i think).

D3

D3 itself is not really a visualization library (at least they claim themselfs: "D3.js is a JavaScript library for manipulating documents based on data")

from frequi.

felpasl avatar felpasl commented on May 31, 2024

Backend or frontend?

In my past experiences up vote for second, send to front is better on new libraries with some code put indicators directly from strategy backend on graph.

What types of graphs we need

about graph some suggestion, a % graph with comparing buy/hold stake currency compared with simulated wallet balance on backtest / wallet on a trading session like
graph
to better view performance or low risk against market

Possible graphing libraries:

With end-user experience, up vote to vue-echarts big data very fast ui with good capabilities. and with samples is almost not complicated.

from frequi.

xmatthias avatar xmatthias commented on May 31, 2024

I do agree with all of your points - and i even started a sample with echarts.

I think the benefits of using frontend will outweight generating the graph in the backend - AND it will reduce the strain on the backend - which is doing "important" operations by trading ...

with "what types" i was more about the types of graphs (bar, candlesticks, linechart) ...
Which metrics we're showing is then a different topic, and will for sure be increasing with time ...

from frequi.

xmatthias avatar xmatthias commented on May 31, 2024

I know that one - but it's limited to lines / candlestick charts - which limits us quite heavily.
The biggest problem is, you can't even do a Barchart (for example to show the asset distribution).

Also, the free lightweight version has quite heavy limitations... so while you think it gives familiar look and feel - that's not really the case (no custom indicator adding, no rightclick menu, ...).

All exchanges that moved to this use the full version (with TA) ... which the lightversion excludes - and due to licensing, i don't think we're allowed to use the proprietary version (even though it's free - you can't redistribute it afaik).

now i'm not excluding it "just because" - but if possible i'd stick to one library for charting instead of mixing 2 in one project ... (now if it's not possible, this will always be the fallback for candlestick charts...)

from frequi.

felpasl avatar felpasl commented on May 31, 2024

Feature toggle on this in the future. Starts in the easiest way.

from frequi.

leeoniya avatar leeoniya commented on May 31, 2024

have a look at uPlot ;)

https://github.com/leeoniya/uPlot#performance

from frequi.

yohplala avatar yohplala commented on May 31, 2024

Hello @leeoniya , Wouldn't starting directly with Timechart that you mention in your benchmark be better?
https://github.com/huww98/TimeChart

from frequi.

xmatthias avatar xmatthias commented on May 31, 2024

do either of these 2 libraries have a vue wrapper component?

Now writing one would not be that complicated, but it's always better to reuse what exists already.


for TimeChart - it does not seem to support candlestick charts - and i'm not keen on writing that part myself (that's not what we should focus on!).
So while performance seems nice (without testing - but knowing that it uses webGL) - i think it's not worth it...


As said, i'm not 100% convinced on either route yet.

I started for now with eCharts (doing some experiments ...) - and plotting something simple seems easy and straightforward.

Can't say anything about performance yet - but while keeping performance in mind, for a candlestick diagram, we can't realistically display more than a few 100 candles on a screen - simply because it does not fit graphically - so i'm not sure if using a library that allows millions of points is not shooting birds with canons ...

However, i'm gratefull of every idea / library pointed out, as i simply can't know them all.
i'll try to have a try with most of the above mentioned if they seem to offer an easy interface and offer what we need.

from frequi.

leeoniya avatar leeoniya commented on May 31, 2024

Hello @leeoniya , Wouldn't starting directly with Timechart that you mention in your benchmark be better?

the author did a perf comparison against uPlot a while back. when i first noticed TimeChart it was pretty rudimentary and experimental, and by the looks of it, it still is. I dont really consider it to have enough features or API surface to be much more than a raw signal & waveform display.

https://huww98.github.io/TimeChart/docs/performance

this test does not have autoranging turned on in TimePlot, but has it enabled in uPlot, which makes the perf comparison not quite apples-to-apples.

i also did a perf run of https://github.com/tradingview/lightweight-charts but removed it from the table because could not get it to render the bench in its entirety:

leeoniya/uPlot#185

if uPlot is too bare-bones for you, you can still use the perf & size table to do much better than Echarts :D

from frequi.

DomenikPasquale avatar DomenikPasquale commented on May 31, 2024

+1 for frontend.

+1 for trading view 'lightweight-charts', because:

I use trading view as my primary analysis tool. When I need to make decisions, I tend to perform better when the charting tools looks|operates the same.
and I get they're not 100% the same; but it's close enough for basic analysis.

-2 because:
From what I can tell, 'lightweight-charts' lacks 'event marks' -- and seeing markers for events (such as trade enter|exits) is important to me.

Their 'charting-library' product does support event-marks, and (as I understand) would require users to obtain a license via a signed contract... which I believe is outside the focus of this project.

For initial development, I support leveraging a single library if that library can do-it-all. I would make an exception within an analysis view if trading view 'lightweight-charts' supported event marks. hmm...

+1 for the analysis view being modular.

from frequi.

felpasl avatar felpasl commented on May 31, 2024

it won't be lightweight charts (the tradingview library) for the moment, as that would mean we'd need 2 libraries.
Also, the only version we'd be allowed to use is the lowest level (open source) - and that is VERY limited - no drawing tools, not even cursor sync (to allow zooming in on one chart, and also zoom in on the below RSI chart).

I'm playing with e-charts - and performance (and usability) is pretty good so far (especially considering that we'll not have millions of candles at once) - and it also looks quite good i think (echarts performance example).

from the UI so far:

![2020-06-17-203854_1915x726_scrot](https://user-images.githubusercontent.com/5024695/85191552-9b2aea00-b2bf
Neither will have the "drawing tools" you know from tradingview (the page) - so an analysis view would have to be built manually - but to be honest, replicating tradingview is not the point of the UI, it's to give you a quick glimse at what's happening with the bot in real time - and (at a later point) also where the signals are in backtesting.

If you wanna do analysis - go to tradingview (or the exchange, which also uses tradingview in 90% of the cases).

I igree, for me ideas for viewpoints.

  1. view backtesting results profit and per pair like actual ploty,
  2. during trade command view buy, sell signals, trades and strategy indicators, live table trades with profit.
  3. %wallet vs %price compare

from frequi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.