Service that collects cryptocurrencies price data, fires alerts based on price sentiment and performs automatic trading. It includes Restful API and lite website showing functionality.
Project description
XTCryptoSignals
XTCryptoSignals is a Python library that includes the following services:
Ticker
- Data collection of crypto-currencies pairs such as BTC/USDT, ETH/BTC or any other pair that is supported by the Exchange API
- A Signals service based on setup rules to send real-time alerts about price, price change, trading volume or market sentiment through E-mail or Push Notifications to the browser or mobile app
- Automatic trading
RESTFul Server API
- Restful interface that exposes API entry points to get desired crypto-currencies data and runs as well SocketIO Server. (This service must be running to allow the Ticker to send real-time data to the Website, using SocketIO)
Website
- Website to show some of the platform functionalities.
Roadmap
- Add crypto-currencies exchanges (Dec 2018)
- Implement RESTFul API and socket.io to access price data in real time (Jan 2019)
- Build website to use this platform (From Jan 2019)
- Build Unit, functional and end-to-end testing (From Jan 2019)
- Setup notification rules for price range, price change, trading volume, price sentiment (Feb-Mar 2019)
- Implement e-mail and web browser push notifications signals (Apr 2019)
- Build iOS app (May-Jul 2019)
- Implement automatic trading (Aug 2019)
Getting Started
Pre-requisites
Installation
Install from source
Clone project repository
hg clone ssh://hg@bitbucket.org/pantunes/xtcryptosignals
cd xtcryptosignals
Setup Python virtual environment:
virtualenv venv -p python3
source venv/bin/activate
Install package
pip install -e .
(Dependencies will be installed automatically from requirements.txt)
Install from PyPi
Create folder project:
mkdir xtcryptosignals
cd xtcryptosignals
Setup Python virtual environment:
virtualenv venv -p python3
source venv/bin/activate
Install package:
pip install xtcryptosignals
Ticker
Start service
xt-ticker
Run without Celery (for testing purposes):
xt-ticker --testing
To get a list of supported exchanges:
xt-ticker --list-config exchanges
binance
uphold
okex
idex
switcheo
hotbit
bibox
okcoin
bithumb
coinbene
(Drop me an email if you want a new one to be supported or contribute to this project creating a pull request)
Command line help
xt-ticker --help
Usage: xt-ticker [OPTIONS]
Use this tool to collect data from configured coins or/and tokens from
configured crypto-currencies exchanges.
Options:
--testing Execute 1 iteration for all configured coins
and/or tokens without Celery. (Useful for
testing purposes)
--list-config [exchanges|currencies]
List 'exchanges' or 'currencies' (coins or
tokens) per exchange that the tool currently
supports.
--enable-real-time-messaging Enable SocketIO real-time crypto-data
message broadcasting.
--version Show version.
-h, --help Show this message and exit.
Setup
There is already an initial setup with some crypto-currencies (coins and tokens) that can be added or/and removed in settings_exchanges.py.
BIBOX: {
'pairs': [
('ONT', 'USDT'),
('ONT', 'BTC'),
('ONT', 'ETH'),
('NEO', 'USDT'),
('NEO', 'BTC'),
('NEO', 'ETH'),
('LTC', 'USDT'),
('LTC', 'BTC'),
('CARD', 'ETH'),
]
}
UPHOLD: {
'pairs': [
('BTC', 'USD'),
('ETH', 'USD'),
('LTC', 'USD'),
('XRP', 'USD'),
]
}
Initial setup to create dynamic MongoDB collections for data segmentation categorized by Exchanges pooling frequency in settings.py.
HISTORY_FREQUENCY = (
'10s', '30s', '1m', '10m', '30m', '1h', '3h', '6h', '12h', '24h', '1w',
)
Results
The Ticker service uses multi-processing and it takes around 6 seconds to collect data of 70 crypto-currencies symbols pairs from 7 exchanges and save it in 11 collections in MongoDB. (This performance figure depends on used hardware and Internet connection / latency)
RESTFul Server API
Start service
xt-server
Website
Start service
xt-client
Open the browser with the URL http://127.0.0.1:8000
10 seconds ticker page in the URL http://127.0.0.1:8000/ticker/10s
Displaying Tickers menu
Displaying Pairs menu
10 seconds ticker page for Bitcoin in the URL http://127.0.0.1:8000/ticker/BTCUSDT/10s
Disclaimer
This project is work in progress and when it comes to trading use it at your own risk.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file XTCryptoSignals-0.1.1.2.tar.gz
.
File metadata
- Download URL: XTCryptoSignals-0.1.1.2.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4f8a85a0b6557f959f47be55e7d1689013fc728622df5739fe23cbf4a0c7cd1 |
|
MD5 | 0033aa9277d0520822c26dc113b6cc15 |
|
BLAKE2b-256 | 7c2969ca998b735cf469329fce6bab35409370a777e9e9f94333f5eb1a4e5389 |
File details
Details for the file XTCryptoSignals-0.1.1.2-py3-none-any.whl
.
File metadata
- Download URL: XTCryptoSignals-0.1.1.2-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd9ecc9c81c32d80ea7b1ec2d81df0d31726c98c4c03230c267653a837b7e91f |
|
MD5 | 066470b2de063d3b27ed91fb8c70f542 |
|
BLAKE2b-256 | 5ff84d52dc602c9168de3f3d176035cb23e9f782fba828fd4cfb0a20583fb1a2 |