With the CryptoCurrency app you can keep track of all crypto coins in one app. This is a standard Bitcoin tracking widget that can be placed anywhere on your homescreen. There are several options available at your disposal. You can choose to use them in a variety of combinations, including in small 4×1 rows or larger 4×4 rows. The TOP 3 apps to track your crypto-assets are Delta, CoinStats, and Blockfolio. Let’s take a closer look below. (We have tried to be as neutral as possible.). Cryptocurrency tracker that doesn't track you back. Follow prices of 5000+ crypto assets on your iPhone, iPad or Apple Watch. Manage your portfolio, set price alerts, read news, track your wallets, connect exchange accounts and more. Stockfolio is the best stock and cryptocurrency investment app for mac that allows you to research and track interesting stocks. It is extremely easy to set up and the best way to manage and follow your investment portfolio. App is a FREE bitcoin and cryptocurrency tracker. For advanced users, a $47.99/year auto-renewing subscription with a 7-day free trial is available. This includes features like candlestick graphs with indicators, automatic portfolio import from exchanges and wallets, and more.
Macintosh users have a bit of a difficult time to keep track of all cryptocurrency movements. They can open a browser window just like anyone else, but using an app to keep tabs on different currencies and price movements has been always a more pleasant experience. Luckily, there are quite a few applications at their disposal. The following Macintosh apps are well worth checking out for any cryptocurrency enthusiast who also uses Apple products.
4. Bitcoin TickerCryptocurrency Track App Mac Desktop
Not all cryptocurrency-related applications have to have a difficult name. Bitcoin Ticker does exactly what the name suggests. It allows users to check the Bitcoin price across many different exchanges. Even though the app has not been updated since 2014, it is still available in the App Store today. It has some basic functionality which can be useful for novice users who want Bitcoin information on their Macintosh device.
3. Coinage
The similarities between Coinage and Bitcoin Ticker are not hard to find, even though Coinage supports a few additional exchanges. Unfortunately, this app saw its last update in 2015. However, it still is a valid way to track Bitcoin and other altcoin price movements across different exchanges. It also has support for Dark Mode, which is something some users will appreciate.
2. Coin Tick
Cryptocurrency price tickers on Macintosh seemingly get abandoned by their developers fairly quickly. Coin Tick is a different creature in this regard, as it was last updated in May of 2017. The application allows users to track their preferred cryptocurrencies and have relevant information displayed on their Mac menu bar.
The application is also getting some decent reviews on iTunes. Both novice and experienced traders are quite pleased with what this free application has to offer. It is a simple application which does the job well. Professional traders may be on the lookout for something more advanced, but the last entry in this list will most likely suit their needs.
1. Trade Interceptor
When looking for some advanced tools to track and chart cryptocurrencies, Trade Interceptor is certainly worth checking out. For a free application, it has a lot of features. Although Trade Interceptor initially started out as a forex trader app, it has grown into so much more. Common Bitcoin exchanges are supported, and users gain access to in-depth information once they sign up for an account.
Luckily, this app still receives regular updates, with the latest one taking place at the end of June 2017. It is good to see forex trading tools pay attention to cryptocurrency markets as well. These two worlds are not mutually exclusive by any means, as they are both integral part of professional traders’ portfolios. Moreover, both industries use similar tools for technical analysis, thus bridging the gap between the two sectors makes a lot of sense.
Goodforbitcoin is a simple cryptocurrency market-tracker. It displays daily market rates, including high, low and close valuations, alongside market trade volume for a range of popular cryptocurrencies. It comes with built-in support for
BTC , ETH , LTC , EOS , XRP and BCH currencies, with EUR , USD and GBP as base currencies for valuations.
The only Bitcoin I own I was given by some random chap on the internet. I am by no means knowledgeable about cryptocurrencies, this app is just for fun.
Read on for an overview of how the application is put together, including interacting with APIs from PyQt5, plotting data with PyQtGraph and packaging apps with PyInstaller.
The app is powered by the CryptoCompare.com API from which we retrieve per-day high, low, open and close values, alongside market trading volume amounts. The resulting exchange rates are plotted using PyQtGraph along with a currency exchange list-view which is updated as you move your mouse through the plotted timeline. The bundled app is available for Windows and Mac.
Working with the API
The first thing we need is a data source. Here we're using CryptoCompare.com which offers free developer API access for non-commercial purposes, including historic data.
The API calls
We're using two separate API calls to plot our graphs —
The two API calls we are doing are..
In the URLs
fsym is the from symbol the currency converting from, tsym is to symbol the currency we're converting to, and limit which is the number of results to return on the request — since we're calling /histoday this is the number of days data to return.
The requests are performed with
requests , passing a per-application key in an authentication Apikey header, e.g.
python
Performing API requests in threads
Requests to APIs take time to complete. If we make the request directly in the GUI thread it will block the rest of the application executing — including responding to user input. The application would become unresponsive (spinning wheel of death, faded window).
We can avoid this problem quite easily by performing the API requests in a separate thread.
For a complete overview this
QWorker approach see the PyQt5 threads tutorial.
First we define a signals
QObject which contains the signals we want to emit from our worker thread. This includes signals to emit finished, error, progress (how much is complete) and data (the returned data).
We also add a cancel signal which allows the parent app to signal to an active worker thread when a new request has been queued before the first one completes. This signal sets a flag
is_interrupted on the worker, which is checked before each currency's data is downloaded. If True it will return without emitting the finished signal.
python
A separate API reqeust is performed for each cryptocurrency, updating the progress bar (emitting
(int(100 * n / len(AVAILABLE_CRYPTO_CURRENCIES))) on each iteration) and then a final request is made to retrieve the volume information. Once all requests are finished the resulting data is emitted using the earlier defined signals.
Caching
The free API comes with a generous limit of 100,000 calls/month, which you're unlikely to hit. However, it's still polite not to waste other people's bandwidth if you can avoid it. Since we're retrieving daily rates, there isn't any reason to download >1 time per day.
As we're performing the API calls using the
requests library we can use requests_cache to automatically cache all our API requests transparently. This uses a simple SQLite file database to store the results of previous requests.
With the cache enabled API responses will be cached and subsequent requests to the same URL will fetch from the cache (until it expires, set to 1 day by the API).
You can put the cache wherever you want on disk, the only requirement is that it is user-writeable (so it continues to work after the app is packaged).
Plotting the data
The API calls return high, low, open and close values for each day and for each cryptocurrency in addition to a separate market volume value. These are plotted as a series of lines, with each cryptocurrency close value plotted in a different colour, with high and low values drawed as dotted lines either side. The open value is not plotted.
How to change individual app volume mac. PyQtGraph plot with multiple currencies and volume data
The currency axis
The currency values are all plotted on the same scale, using the same axis. We only plot the currency lines only once we have the data back from the API (in case any currencies are not activated) so the initial setup is just of the axis and grid. We also set the axis names, and add an infinite vertical line, which is just to track through the plot to get per-day currency conversion rates.
python
The axis' mouse move signal is connected to the custom
mouse_move_handler slot, which moves the infinite line and updates the current rates shown in the rates table (see later).
The volume axis
The volume axis is plotted on a separate scale, as a dotted black line. This can be zoomed vertically independently of the currencies. This is a bit tricky to achieve in PyQtGraph, requiring you to manually create a
ViewBox object and connect it up to the main axis.
Unlike for the currencies we do add the curve here, since we know it will always be present. The initial state is a diagonal line (for no reason).
python
We need connect the resized signal from the primary axis to our custom
update_plot_scale slot, to automatically update the secondary axis dimensions.
Now the two axes are defined, we can draw our plot lines.
Updating the plot
The plot is updated in response to the data being returned by the API request worker. This triggers the
.redraw() method, which uses the data (available on self.data ) to either add, or update lines to the plot.
python
References to plotted lines are kept in a dictionary
self._data_lines keyed by the cryptocurrency identifier. This allows us to check on each update whether we already have a line defined, and update it rather than recreating it. We can also remove lines for currencies that we no longer want to draw (if they've been deselected in the currency list).
The market activity (volume) plot however is always there, so we can just perform a simple update to the existing line.
In addition to the plotted lines, we also show a list with the currency conversion rates for all cryptocurrencies at the currently position in the graph. As you move your pointer back and forward these rates update automatically.
Rates table
The rates table is a
QTableView widget, using the Qt5 ModelView architecture.
Goodforbitcoin rates table
We define a
QStandardItemModel model which we can use to update the data in the table, and set the headers for the colums. Finally, the .itemChanged signal is connect to our custom slot method check_check_state .
python
If the item is checked, and the currency is not currently displayed (the currency identifier is not in our
._data_visible map) we add the currency to it and trigger a redraw. Likewise, if the item is unchecked but the currency is displayed, we remove it and trigger a redraw.
We always download data for all currencies, even if they are not currently displayed, so we can update the plot immediately. You might want to have a go at changing this behaviour.
To automatically update the values on the rates table we have already connected our
mouse_move_handler slot to mouse moves on the main axis. This slot receives a pos value which is a QPoint position relative to the axis. We first use the .x() value to set the position of the vertical line, and then hand off the int of the value to our update_data_viewer method.
python
This next method checks if the position
i is within the range of our data (the number of days of data we have). Then for each currency it gets the corresponding value (the close value) and then sets this onto the second QStandardItems — the column with the currency exchange rates — as a 4dp number.
The
get_or_create_data_row looks to see if a data row exists in the model for the corresponding currency. If it does it returns the existing row, if not it creates a new row by calling add_data_row . This means we don't need to define the rows explicitly, they are created automatically based on the data returned by the API.
python
PackagingCryptocurrency Track App Mac Desktop
https://pbxcic.weebly.com/blog/is-there-a-powershell-app-for-mac. Now we have the working app, the last step is to bundle it up for distribution. Installers for Windows and Mac are available at the top of this article. To do this we're using PyInstaller the current standard for bundling Python applications.
Because this app has no external data files building an installer for it is pretty straightforward. Install PyInstaller with
pip3 install pyinstaller then run —
This produces a spec file which contains the information needed by PyInstaller to build the distribution installers. This file is cross-platform and should be included in your source control so any improvements are persisted.
The automatically generated file is enough to package this application as-is, but we need a few tweaks to make it complete.
MacOS Retina Support![]()
By default MacOS applications don't support retina (high resolution) screens. To enable this support you need to set the
NSHighResolutionCapable flag in the application .plist bundled inside the .app . This is simple enough to do in PyInstaller.
Edit the
.spec file to add the info_plist block shown below, with NSHighResolutionCapable
python
Now, whenever you bundle your application, this flag will be added to the MacOS bundle
.plist Sign electron app mac. automatically.
Icons
To make the application show a custom icon while running we need to generate Windows
.ico and MacOS .icns files and add these to the .spec definition.
Cryptocurrency Track App Mac Pro
A MacOSX icon bundle
icon.icns contains multiple alternative icon sizes, which are laborious to generate by hand. The following script will take a single .png file input and automatically generate an .icns bundle containing the different sizes.
This file saved as
makeicns.sh and chmod +x makeicns.sh can then be used to generate an .icns bundle from a single large PNG, as follows.
bash
You may want to check the resized icons and edit the lower resolution ones to simplify them to improve clarity. Just remove the
rm -R $1.iconset step from the script.
For Windows we can generate an
.ico file by loading a PNG into Gimp and resize down to 64x64, 32x32 and 16x16 on separate layers. Unlike for MacOS you can provide a single square image if you are happy to let it be resized automatically, just ensure it is saved as .ico .
The completed spec file
Pub for mac apps free. To complete the spec file we can manually set the name of the application (to Goodforbitcoin) and update the filenames for the bundled applications to match. In addition the PyInstaller script will have added a
pathex variable with a static path.
The
pathex will be different if you generate this file yourself.
Cryptocurrency Track App Mac Os
This can be removed if the
.spec file is in the same folder are your applications base Python file to make the file portable. The last step is to add a number of hidden imports (modules which are not correctly detected by PyInstaller). These are only necessary for the Windows builds.
The completed spec file used to bundle the downloads is shown below.
python
Cryptocurrency Track App Mac 10
The packaged Goodforbitcoin apps, along with the source code, can be downloaded using the links below.
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |