Github.com/CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 2,100 + stars, 580 + forks

Overview

CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 2,100 + stars, 580 + forks https://github.com/CryptoSignal/Crypto-Signal

Development state: Beta (Code is stable, documentation is often lagging)

Join our community Discord channel! (2,100+ members)

Crypto Signals is a command line tool that automates your crypto currency Technical Analysis (TA). It is maintained by a community of traders, engineers, data scientists, PMs, & countless generous individuals who wish to democratize the equal & open access to the greatest wealth re-distribution experiment in human and monetary policy history - Bitcoin

Track over 500 coins across Bittrex, Binance, Bittrex, Bitfinex, Coinbase, Gemini and more!

Technical Analysis Automated:

  • Momentum
  • Relative Strength Index (RSI)
  • Ichimoku Cloud (Leading Span A, Leading Span B, Conversion Line, Base Line)
  • Simple Moving Average
  • Exponential Moving Average
  • MACD
  • MFI
  • OBV
  • VWAP

Alerts:

  • SMS via Twilio
  • Email
  • Slack
  • Telegram
  • Discord

Features:

  • Modular code for easy trading strategy implementation
  • Easy install with Docker

You can build on top of this tool and implement algorithm trading and some machine learning models to experiment with predictive analysis.

Founded by Abenezer Mamo @ www.Mamo.io & www.linkedin.com/in/AbenezerMamo

Installing And Running

The commands listed below are intended to be run in a terminal.

  1. Install docker CE

  2. Create a config.yml file in your current directory. See the Configuring config.yml section below for customizing settings.

  3. In a terminal run the application. docker run --rm -v $PWD/config.yml:/app/config.yml shadowreaver/crypto-signal:master.

  4. When you want to update the application run docker pull shadowreaver/crypto-signal:master

Configuring config.yml

For a list of all possible options for config.yml and some example configurations look here

FAQ

Common Questions

Why does Tradingview show me different information than crypto-signal?

There are a number of reasons why the information crypto-signal provides could be different from tradingview and the truth is we have no way to be 100% certain of why the differences exist. Below are some things that affect the indicators that may differ between crypto-signal and tradingview.

  • tradingview will have more historical data and for some indicators this can make a big difference.

  • tradingview uses a rolling 15 minute timeframe which means that the data they are analyzing can be more recent than ours by a factor of minutes or hours depending on what candlestick timeframe you are using.

  • tradingview may collect data in a way that means the timeperiods we have may not line up with theirs, which can have an effect on the analysis. This seems unlikely to us, but stranger things have happened.

So if it doesn't match Tradingview how do you know your information is accurate?

Underpinning crypto-signal for most of our technical analysis is TA-Lib which is an open source technical analysis project started in 1999. This project has been used in a rather large number of technical analysis projects over the last two decades and is one of the most trusted open source libraries for analyzing candlestick data.

Liability

I am not your financial adviser, nor is this tool. Use this program as an educational tool, and nothing more. None of the contributors to this project are liable for any losses you may incur. Be wise and always do your own research.

We recommend you begin by learning the core principles used in traditional asset classes since they are less volatile & apply your knowledge in simulated trading before liquidating your dreams.

Comments
  • i'm noobs and uneducated ...

    i'm noobs and uneducated ...

    Hi guys,

    it took me a good 2 hours to install Docker Cloud on my Linux server. It is now running

    Reading your second step.. "Next, to create the docker image run make build in the root of the project directory."

    What? Where? how?

    Please help!

    opened by xonline 21
  • Stoch RSI results are wrong

    Stoch RSI results are wrong

    Is there a way to set the 4 parameters we set in Tradingview ? K, D, RSI length, Stochastic length ? To be sure to have the accurate results ? Thanks a lot

    opened by bluetyphoon77 16
  • Doesn't execute

    Doesn't execute

    python app.py

    Traceback (most recent call last): File "app.py", line 9, in secrets = json.load(secrets_file) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py", line 290, in load **kw) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py", line 338, in loads return _default_decoder.decode(s) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 381, in raw_decode obj, end = self.scan_once(s, idx) ValueError: Expecting property name: line 4 column 1 (char 117)

    Could you please advise, thnx

    opened by c931812 16
  • Error while doing your 5th step : Build your own Docker image

    Error while doing your 5th step : Build your own Docker image

    I did this line like you recommend : docker build -t dev/crypto-signals:latest

    And I have this error "docker build" requires exactly 1 argument. See 'docker build --help'. Usage: docker build [OPTIONS] PATH | URL | - Build an image from a Dockerfile

    By the way, from which folder should I run this command ?

    Thanks

    opened by bluetyphoon77 12
  • Idea for communication

    Idea for communication

    Hi, How about we start a closed discord or telegram group for this work. Would be good to get more of a community around this development and enable questions and ideas to flow better. Also I feel that this will bring out more question & ideas that people may feel able to ask in a less formal forum also will allow the group to offer answers to questions rather then just 2-3 leaders. - Then the Git can be a more formal tool around the code itself and workflow. Thoughts?

    opened by Bird-NZ 12
  • Crossover: IndexError: list index out of range (Bad data)

    Crossover: IndexError: list index out of range (Bad data)

    After hours of running crypto-signal I get the following error. I assume an error handling could avoid this crossover behaviour when there is bad data.

    Beginning analysis of NEO/USDT Exchange supplied bad data for pair NEO/USDT, skipping Traceback (most recent call last): File "app.py", line 45, in main() File "app.py", line 39, in main behaviour.run(settings['market_pairs'], settings['output_mode']) File "/app/behaviour.py", line 63, in run new_result = self._test_strategies(market_data, output_mode) File "/app/behaviour.py", line 98, in _test_strategies new_result[exchange][market_pair] File "/app/behaviour.py", line 251, in _get_crossover_results crossed_indicator = new_result[crossover_conf['crossed_indicator_type']][crossover_conf['crossed_indicator']][crossover_conf['crossed_indicator_index']] IndexError: list index out of range

    bug 
    opened by decharel 11
  • Webhook Notification AttributeError

    Webhook Notification AttributeError

    Hey guys,

    First of all, incredible job with this project. This takes away a lot of work while trying to do TA!

    Unfortunately, while trying to send data / notifications to a webhook for further processing, I am getting the following error:

    Traceback (most recent call last): File "app.py", line 45, in main() File "app.py", line 39, in main behaviour.run(settings['market_pairs'], settings['output_mode']) File "/app/behaviour.py", line 64, in run self.notifier.notify_all(new_result) File "/app/notification.py", line 100, in notify_all self.notify_webhook(new_analysis) File "/app/notification.py", line 196, in notify_webhook new_analysis[exchange][market][indicator_type][indicator][index] = analysis['result'].to_dict(orient='records')[-1] AttributeError: 'dict' object has no attribute 'to_dict'

    It is setup according to the documentation as:

    NOTIFIERS_WEBHOOK_REQUIRED_URL=http://xxx/webhook.php

    Any ideas what could cause this?

    Best, David

    bug 
    opened by dwagenleiter 11
  • Build Failed on Windows

    Build Failed on Windows

    Any idea why I might be getting this?

    PS C:\Users\Username\Documents\cryptosignals\crypto-signal> docker build -t cs .
    Sending build context to Docker daemon  3.836MB
    Step 1/5 : FROM python:3.6
     ---> c1e459c00dc3
    Step 2/5 : ADD app/ /app
     ---> Using cache
     ---> dd3131901afb
    Step 3/5 : WORKDIR /app
     ---> Using cache
     ---> d401ea36bbfb
    Step 4/5 : RUN pip install -r requirements.txt
     ---> Running in 238d1cd4f7af
    Collecting asn1crypto==0.22.0 (from -r requirements.txt (line 1))
      Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/asn1crypto/
      Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/asn1crypto/
      Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/asn1crypto/
      Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/asn1crypto/
      Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/asn1crypto/
      Could not find a version that satisfies the requirement asn1crypto==0.22.0 (from -r requirements.txt (line 1)) (from versions: )
    No matching distribution found for asn1crypto==0.22.0 (from -r requirements.txt (line 1))
    The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
    

    Docker is Version 17.12.0-ce-rc4-win44 (14896), running on Windows 10. This is the first time I've ever tried to 'build' an image, but I've pulled and run other images successfully before.

    opened by theboywonder 11
  • script error still in #264

    script error still in #264

    hello, i ran the script with all coins/btc in bittrex and still getting this message:

    Traceback (most recent call last): File "app.py", line 45, in main() File "app.py", line 39, in main behaviour.run(settings['market_pairs'], settings['output_mode']) File "/app/behaviour.py", line 64, in run self.notifier.notify_all(new_result) File "/app/notification.py", line 98, in notify_all self.notify_telegram(new_analysis) File "/app/notification.py", line 176, in notify_telegram self.notifier_config['telegram']['optional']['template'] File "/app/notification.py", line 240, in _message_templater latest_result = analysis['result'].iloc[-1] File "/usr/local/lib/python3.6/site-packages/pandas/core/indexing.py", line 1373, in getitem return self._getitem_axis(maybe_callable, axis=axis) File "/usr/local/lib/python3.6/site-packages/pandas/core/indexing.py", line 1830, in _getitem_axis self._is_valid_integer(key, axis) File "/usr/local/lib/python3.6/site-packages/pandas/core/indexing.py", line 1713, in _is_valid_integer raise IndexError("single positional indexer is out-of-bounds") IndexError: single positional indexer is out-of-bounds

    thank you!

    bug 
    opened by rottenronin1 10
  • Docker for Windows

    Docker for Windows

    I'm trying to use Docker for windows for this project. I am stuck as I do not know how to generate the env file to be able to build the docker image hence I'm getting the error below:

    PS C:\docker\crypto-signal-master> docker run -it --rm --env-file .env crypto-signal C:\Program Files\Docker\Docker\Resources\bin\docker.exe: open .env: The system cannot find the file specified.

    Can a few simple steps be written to be able to compile a docker image, including how to generate the env file needed.

    As background docker version I'm using is: PS C:\docker\crypto-signal-master> docker version Client: Version: 17.12.0-ce API version: 1.35 Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:05:22 2017 OS/Arch: windows/amd64

    Server: Engine: Version: 17.12.0-ce API version: 1.35 (minimum version 1.12) Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:12:29 2017 OS/Arch: linux/amd64 Experimental: true

    opened by Bird-NZ 10
  • Notifications

    Notifications

    Hello,

    Great job, thanks !

    I install docker and run crypto-signal on it. I use integram notification but I receive all these 4 notifications for EACH selected market pairs.

    exemple with XMR/BTC

    Horn
    XMR/BTC is breaking out!
    Horn
    XMR/BTC is over bought!
    Horn
    XMR/BTC is trending well according to SMA!
    Horn
    XMR/BTC is trending well according to EMA!
    

    but according to your log there XMR/BTC: Breakout: 0.0 RSI: 56.34 SMA: 0.0267194 EMA: 0.0271446 IMC: 0.0160291/0.0164874 MACD: 0.0017813

    I don't have breakout and over bought for exemple. Am I right ?

    thanks ! have a good day

    EDIT I clone the repo 48h ago maybe I will fetch it again :)

    bug 
    opened by julien-mustiere 10
  • installation problem

    installation problem

    Hi. I am having troubles getting the code to work. I downloaded the repo , docker desktop , python 3.10 and I am using PyCharm as an ide. i created a config file in the app folder and downloaded all the requirements. But when I try to run "docker build -t ${DOCKER_IMAGE_NAME}:${GIT_BRANCH}" . I am getting this error. Screenshot 2022-08-18 121999

    opened by peterabj 1
  • Bump numpy from 1.14.0 to 1.22.0 in /app

    Bump numpy from 1.14.0 to 1.22.0 in /app

    Bumps numpy from 1.14.0 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • gmail forbids a third party app login and operates

    gmail forbids a third party app login and operates

    per the notice from gmail that:

    "On May 30, you may lose access to apps that are using less secure sign-in technology [email protected] To help keep your account secure, Google will no longer support the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password. Instead, you’ll need to sign in using Sign in with Google or other more secure technologies, like OAuth 2.0. Learn more"

    now using username and password to login is not possible for a third party app

    opened by lfzCarlosC 0
  • Listing EVERY pair is the only way possible ?

    Listing EVERY pair is the only way possible ?

    Hi, is there a way to not have to specify every pair ? For example telling the script to check ADA (in order to check adausdt, adabtc, adaeth,...) Thanks

    opened by bluetyphoon77 1
Owner
Github.com/Signal - 2,100 + stars, 580 + forks
Github.com/CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 2,100 + stars, 580 + forks #analytics
Github.com/Signal - 2,100 + stars, 580 + forks
Technical Analysis Library using Pandas and Numpy

Technical Analysis Library in Python It is a Technical Analysis library useful to do feature engineering from financial time series datasets (Open, Cl

Darío López Padial 3.4k Jan 2, 2023
Common financial technical indicators implemented in Pandas.

FinTA (Financial Technical Analysis) Common financial technical indicators implemented in Pandas. This is work in progress, bugs are expected and resu

null 1.8k Dec 31, 2022
Zipline, a Pythonic Algorithmic Trading Library

Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting. Zipline is currently used in production as the backte

Quantopian, Inc. 15.7k Jan 2, 2023
An Algorithmic Trading Library for Crypto-Assets in Python

Service Master Develop CI Badge Catalyst is an algorithmic trading library for crypto-assets written in Python. It allows trading strategies to be eas

Enigma 2.4k Jan 5, 2023
An open source reinforcement learning framework for training, evaluating, and deploying robust trading agents.

TensorTrade: Trade Efficiently with Reinforcement Learning TensorTrade is still in Beta, meaning it should be used very cautiously if used in producti

null 4k Dec 30, 2022
Python library for backtesting trading strategies & analyzing financial markets (formerly pythalesians)

finmarketpy (formerly pythalesians) finmarketpy is a Python based library that enables you to analyze market data and also to backtest trading strateg

Cuemacro 3k Dec 30, 2022
Python Backtesting library for trading strategies

backtrader Yahoo API Note: [2018-11-16] After some testing it would seem that data downloads can be again relied upon over the web interface (or API v

DRo 9.8k Dec 30, 2022
Python Algorithmic Trading Library

PyAlgoTrade PyAlgoTrade is an event driven algorithmic trading Python library. Although the initial focus was on backtesting, paper trading is now pos

Gabriel Becedillas 3.9k Jan 1, 2023
:mag_right: :chart_with_upwards_trend: :snake: :moneybag: Backtest trading strategies in Python.

Backtesting.py Backtest trading strategies with Python. Project website Documentation the project if you use it. Installation $ pip install backtestin

null 3.1k Dec 31, 2022
Performance analysis of predictive (alpha) stock factors

Alphalens Alphalens is a Python Library for performance analysis of predictive (alpha) stock factors. Alphalens works great with the Zipline open sour

Quantopian, Inc. 2.5k Dec 28, 2022
Technical Indicators implemented in Python only using Numpy-Pandas as Magic - Very Very Fast! Very tiny! Stock Market Financial Technical Analysis Python library . Quant Trading automation or cryptocoin exchange

MyTT Technical Indicators implemented in Python only using Numpy-Pandas as Magic - Very Very Fast! to Stock Market Financial Technical Analysis Python

dev 34 Dec 27, 2022
Technical_indicators_cryptos - Using technical indicators to find optimal trading strategies to deploy onto trading bot.

technical_indicators_cryptos Using technical indicators to find optimal trading strategies to deploy onto trading bot. In the Jup Notebook you wil

Van 4 Jul 3, 2022
Cryptocurrency Trading Bot - A trading bot to automate cryptocurrency trading strategies using Python, equipped with a basic GUI

Cryptocurrency Trading Bot - A trading bot to automate cryptocurrency trading strategies using Python, equipped with a basic GUI. Used REST and WebSocket API to connect to two of the most popular crypto exchanges in the world.

Francis 8 Sep 15, 2022
a simple quant trading bot with CLI interface

shepherd a simple quant trading bot with CLI interface CLI shell command docs coming soon after I brush up the code and add more features :) Minimal R

m00n 0 Jun 6, 2022
GitHub saver for stargazers, forks, repos

GitHub backup repositories Save your repos and list of stargazers & list of forks for them. Pure python3 and git with no dependencies to install. GitH

Alexander Kapitanov 23 Aug 21, 2022
GitGram Bot. Bot Then Message You Your Repo Starts, Forks, And Many More

Yet Another GitAlertBot Inspired From Dev-v2's GitGram Run Bot: Local Host Git Clone Repo : For Telethon Version : git clone https://github.com/TeamAl

Alina RoBot 2 Nov 24, 2021
Objax Apache-2Objax (🥉19 · ⭐ 580) - Objax is a machine learning framework that provides an Object.. Apache-2 jax

Objax Tutorials | Install | Documentation | Philosophy This is not an officially supported Google product. Objax is an open source machine learning fr

Google 729 Jan 2, 2023
A Python replicated exploit for Webmin 1.580 /file/show.cgi Remote Code Execution

CVE-2012-2982 John Hammond | September 4th, 2021 Checking searchsploit for Webmin 1.580 I only saw a Metasploit module for the /file/show.cgi Remote C

John Hammond 25 Dec 8, 2022
Trading bot - A Trading bot With Python

Trading_bot Trading bot intended for 1) Tracking current prices of tokens 2) Set

Tymur Kotkov 29 Dec 1, 2022