Steemit Technical Analysis Dashboard

in #utopian-io6 years ago (edited)

dashboard6.PNG

Project Overview

In one sentence this project is about developing a dashboard connected to the Bittrex exchange API that allows real-time technical analysis indicators to be analysed for all the crptocurrencies traded on Bittrex.

Since May 2017, I have been posting daily technical analysis updates on some of the top cryptocurrencies including Steem where indicators such as the MACD and RSI have been analysed using data from CoinMarketCap. I've received generally positive feedback on the reports but I want the analysis better, more up-to-date and flexible. The best way to do this is to have a real-time connection with the exchanges and have fully up-to-date graphs available 24/7 to interested readers.

In addition to developing a dashboard, I want the platform to serve as a database which will allow analysts to extract detailed data on trade history for each crypotocurrency.

Details and Timelines

I have already kicked the project off and to date I have created a database and a basic dashboard. The database has been populating since the 23rd January and includes the trade history of 25 crytpocurrencies from the Bittrex API. The data currently includes:

  • Trade time stamp
  • Currency code i.e. STEEM, SBD
  • Trade type - Buy or Sell
  • Trade volume
  • Trade price in BTC
  • Whether order was filled or partially filled

The screenshots below show the dashboard and the structure of the data. You will see that I've included an option allowing the data to be downloaded to CSV.

Dashboard1.PNG

You can login in below and enter the login details:

Dashboard

username: Matt
password: m@tt!

to select COINS and download the data to a csv.

Note; the data has only been populating since the 23rd January and is limited to the following cryptocurrencies:


# User-defined configuration
coins_list =\
    ['TIX',
     'MER',
     'ADT',
     'MTL',
     'GRS',
     'ION',
     'VOX',
     'WINGS',
     'RISE',
     'RCN',
     'FCT',
     'GNT',
     'SALT',
     'XCP',
     'FUN',
     'ENG',
     'VRC',
     'BNT',
     'MONA',
     'BSD',
     'MEME',
     'DGD',
     'EDG',
     'VTC',
     'GUP',
     'STEEM',
     'SBD',
     'DNT',
     'GNO',
     'BLK']

The data being pulled is the trade history from Bittrex (see highlighted area in screenshot below).

Dashboard2.PNG

The data is fully up-to-date and as granular as you can get. This is very important if you want to analyse market trends for the purposes of trading or just keeping informed on how cryptocurrency prices are trending.


Code Behind Dashboard

The code is written in Python and the database and dashboard sit in Google Cloud Platform.

All of the code is pushed to my github repository, brophymj/bitgeek.

An extract from the Github code is shown below:


#!/usr/bin/python3
"""Scrapper for cryptocoins historical data."""
import csv
import logging
import traceback
from datetime import datetime
from time import sleep

import requests

from pymongo import MongoClient

# Logger configuration
logging.basicConfig(format='[%(asctime)s] %(levelname)s: %(message)s',
                    level=logging.INFO, datefmt='%Y/%m/%dT%H:%M:%S')

# MongoDB client configuration
client = MongoClient()
db = client.bittrex
collection = db.market

The database currently pulls trade history data on 25 cryptocurrencies (I plan to expand that to all crypocurrencies traded on Bittrex)

The code connecting to the Bittrex API is shown below:


def write():
    """Create requests to the API and write data."""
    for c in coins_list:
        paired = 'BTC-{}'.format(c)
        logging.info('Parsing [{}]'.format(c))
        try:
            ops = [{**o, 'Pair': paired} for o in requests.get(
                   "https://bittrex.com/api/v1.1/public/" +
                   "getmarkethistory?market={}".format(paired)
                   ).json()['result']
                   ]
            logging.info('\tUpdating DB...')
            [collection.update_one(
             filter={'Id': i['Id'], 'Pair': i['Pair']},
             update={'$set': i},
             upsert=True
             ) for i in ops
             ]
            logging.info('\tDone!')
        except:
            traceback.print_exc()
            logging.warning('\tError parsing [{}]!'.format(c))
        sleep(1)


Roadmap and Next Steps

Now that I have a database up and running and a very basic dashboard my next steps are as follows:

  • Step 1 - Create Technical Analysis Indicators to be Displayed Graphically

I want to create algorithms for popular technical analysis indicators like the MACD (Moving Average Convergence Divergence), the RSI (Relative Strength Index), Bollinger Bands and some Volume indicators. These will will be overlaid on the latest datapoints, however, it will also be possible to select a historic period and look at how predictive the indicators were using past data.

To see what these indicators look like in a graph, you can view a recent post where I analysed four such indicators.

https://steemit.com/steem/@bitgeek/steem-price-forecast---27th-january

The graph below shows the MACD doe Steem.

Dashboard5.PNG

This project is intended to bring this information on a real-time basis and provide customization to enable users to get the most out of the analysis. For example. you will be able to tweak parameters, hide and show trend lines etc.

Another feature I want to include is a display showing daily/weekly return assuming the Buy/Sell signals adopted.

I expect this phase to be complete in the next 4-6 weeks.

  • Step 2 - Expand database to include Poloniex trade history

The data will initially be confined to the Bittrex API, however, I plan to expand to include other exchange data once phase 1 is complete.

I expect this phase to be complete in two weeks after phase 1.

  • Step 3 - Notification functionality

I'm really excited about this feature. I want to include a notification which will email users when a buy or sell signal is triggered for a particular indicator. Users will be able to specify parameters i.e. magnitude of signal etc. and the notification will include information around expected returns based on similar previous signals, return period etc.


How to get involved

I would really appreciate some feedback and thoughts on the project plan. You can reply in the comment section below, message me on Steemit Chat. The more people involved in this project, the better.


Dashboard picture source: https://pixabay.com/



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Bonjour !! C'est fantastique!!

This is a great idea, it will be most helpful and informative for any one involved in crypto trading. This is truly a mammoth contribution. Thank you

Hey @bitgeek I am @utopian-io. I have just upvoted you!

Achievements

  • This is your first accepted contribution here in Utopian. Welcome!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Wow! Thank you for your very generous upvote. I'm really excited about this project.

Following you most attentively but into addition to

"I want to create algorithms for popular technical analysis indicators like the MACD (Moving Average Convergence Divergence), the RSI (Relative Strength Index), Bollinger Bands and some Volume indicators. "

IF ONLY you can find something extra to reflect 'public sentiment' to factor in with analysis based values from the past . . .

IF ONLY !!

Very good😃😃😃

Thank you for the contribution. It has been approved.

Please use <code> tags or proper markdown to show code instead of screenshots.

You can contact us on Discord.
[utopian-moderator]

Thanks ms10398, thanks for approving the project. I’ll edit the post now.

Done!

In fact I did not understand anything
But I wish you success

Congratulations @bitgeek, this post is the third most rewarded post (based on pending payouts) in the last 12 hours written by a User account holder (accounts that hold between 0.1 and 1.0 Mega Vests). The total number of posts by User account holders during this period was 3917 and the total pending payments to posts in this category was $14855.22. To see the full list of highest paid posts across all accounts categories, click here.

If you do not wish to receive these messages in future, please reply stop to this comment.

Congratulations, your post received one of the top 10 most powerful upvotes in the last 12 hours. You received an upvote from @utopian-io valued at 168.14 SBD, based on the pending payout at the time the data was extracted.

If you do not wish to receive these messages in future, reply with the word "stop".

Good information..
Thanks

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.033
BTC 61691.46
ETH 3047.50
USDT 1.00
SBD 3.88