QR — CryptoWatch Link

WhaleCalls
6 min readAug 22, 2020

a quick review of CryptoWatch Link, a desktop charting client

A problem every crypto trader faces at some point is the slow down your trading battle station gets from having so many web-based tools open at once to stay informed. Sometimes this is caused by horribly written javascript. Other times it’s just a factor having many streaming connections opens, but it always ends the same — Chrome eats memory, tools become slow, bounce everything to get back to trading.

Kraken owned CrytoWatch aims to try to change that by moving all your pricing, and charting needs to a desktop client, currently code-named “Link.”

Highlights

  • CW Link moves all streaming data from to a Rust based client library rather than relying on a web browser’s buggy implementation of WebSockets. Memory consumption on both the Linux and Windows clients is around hovers 50MB
  • Link is very much a minimum viable product to get it out into the wild that is focused on custom layouts. A lot of standard features and customizations that are present in every charting and pricing platform are just not here yet.
  • In a space where there hasn’t been a lot of improvement for the past 6–8 years, this is a good first effort.
  • UPDATE — CW team has told me the go-live name of product will be CryptoWatch Desktop.

High level of the product

Binance/GDAX interface to test streaming vs. the exchange

The user interfaces itself panel-based — you can customize the height and width of the individual windows or docklets. There is also a limited ability to customize the text height.

The types of panels you can choose from are:

  • Candlestick charts w/ volume
  • Orderbook
  • Tick chart
  • Ticker
  • Time and sale (aka trade history)
  • Summary

Candle Stick chart

The candlestick is pretty vanilla. You can choose your charts by exchange, symbol, and timeframe. You can currently adjust the scale of the bars, zoom in and out, change the chart theme from 2 or 4 colors, and that’s about it!

  • There are no technical indicators what so ever
  • drawing tools arent here yet.

It a view only panel where you would expect to interact with the chart.

options for candlestick charts

Tick Chart

tick charts + bug when switching symbols. trade data but no bid/ask data

The link tick chart show live bid /ask changes to reflect the width market and the trades that occurred. We checked this vs. our own tick source. It seems to be mostly correct. It’s updating on a snapshot, not on exact change in the order book. That perfectly fine for everyone uses.

We did find a bug in this chart. If you change the product to something it wasn’t already subscribed to, the chart had trade history but not bid/ask so you’ de end up with a weird looking chart for a few minutes. This isn’t a deal-breaker because, after 5–10 minutes, the chart is full again. However, it might be useful to have a button to force the “backfilling” of the data.

Summary Panel

summary chart — price line + volume + daily ranges

This is a slightly time-delayed daily market summary of volumes, price ranges, and percentage move. This view will look familiar if you’ve ever spent time on the card style interface on crypto watch. This might be useful if you were building a dashboard of information to sit on a non-main screen to give you info at a glance.

Ticker Panel

ticker module on the full-size panel

There is nothing super special here. Live price, bid/ask, and daily percentage. Our gripe, nearly universally, was that the test didn’t adjust as you adjust the size of the docket. If you compress it too much, the info goes off-screen.

Wish you could size it down to fit the same profile as the watch list

watch list from crypto watch

Orderbook

order book on a full-screen panel

The order book contains price, quantity, and total sum quantity and is not customizable in any way currently. We found this to be a bit odd as order book aggregation, and book depth was a day one feature of crypto watch. Without these features, it made it almost useless for our needs. Only Nomad tried to use it for anything meaningful. “Being plain jane made it just a more detailed ticker for my needs.”

Time and Sale

Time and Sale, Market Trades, Tally all words for the same thing. CW added a bit more time for customization in this panel. You can configure total in the quote unit and aggregate by the amount at a price rather than a row of trades at the same price.

What does it do under the hood?

The application itself is written in Rust for cross-platform compatibility. On both the VMs we spun up, the application made a connection to

ec2–3–128–3–144.us-east-2.compute.amazonaws.com (3.128.*.*.) using TLSv1.2 on port 443 so secure WebSocket. Besides the streams you’d expect from a charting client, it does send a keep-alive, aka heart message. It doesn’t carry any tracking info, but it does send your IP… that’s part of the protocol.

I did crack the TLS packets (not pictured), nothing unexpected is happening.

It does the same thing as the web client now.

Wireshark data for client

Memory usage?

As we mentioned above, the application consistently stayed between 48–52MB of usage, regardless of how many panels and sources we had open.

This is pretty significant.

To further test this, we spun up both a window 10 and Centos VM w/ the same states and let it run for a week. We also spun up a third windows 10 VM running the crypto watch webclient.

At the end of the weeks, the chrome client had ballooned to 3GB of RAM while the CW clients stayed at the ranges we witnessed.

That alone is a reason to keep an eye on this project.

Final Thoughts

Overall, the team was happy with the quality of the build quality and impressed with the performance. Very few bugs were found while using the product for the last 20 days. Some of those were patched in the latest release without us having to report it. We wish it had more to the “standard” charting toolset, especially if the goal is to make a trading desktop client vs. a dashboard. This will be a tool to keep an eye on in the future.

You can sign up for the beta test waiting list here.

--

--