Comments (14)
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.
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:
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.
using eCharts i'm pretty far i think (but currently, the endpoint in freqtrade is missing for that).
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.
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.
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
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.
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.
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.
Feature toggle on this in the future. Starts in the easiest way.
from frequi.
have a look at uPlot ;)
https://github.com/leeoniya/uPlot#performance
from frequi.
Hello @leeoniya , Wouldn't starting directly with Timechart that you mention in your benchmark be better?
https://github.com/huww98/TimeChart
from frequi.
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.
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:
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.
+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.
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.
- view backtesting results profit and per pair like actual ploty,
- during trade command view buy, sell signals, trades and strategy indicators, live table trades with profit.
- %wallet vs %price compare
from frequi.
Related Issues (20)
- in Backtesting / Load results: adding a column "Result" displaying backtest % profit HOT 2
- Cumulative Profit Chart is broken HOT 1
- FreqUI: Cumulative Profit slider does not seem to work. HOT 4
- CHANGE LOGO TO BENDER HOT 1
- wanna delete UI trade history. HOT 3
- Suggestion: add adjust order tag to FreqUI tooltip HOT 2
- Now the new frequi can't use backtesting
- FreqUI Telegram WebApp HOT 7
- Spam HOT 3
- spam HOT 3
- Analyze View, Ability to see summary grouped by entry_tag<>exit_tag and vice versa HOT 1
- Public IP Instance possible? HOT 4
- Docker compose, Adding multiply bots HOT 10
- Failed to run dev HOT 1
- how change price localtion from LEFT to RIGHT HOT 3
- UI settings - timezone HOT 1
- Move bot controls from multi pane to navbar HOT 1
- pnpm run install --> pnpm install. HOT 1
- Make backtest more visible and user friendly from the UI HOT 2
- how format OHLCV prices at popup in mainchart? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from frequi.