Convert Figma logo to code with AI

CryptoSignal logoCrypto-Signal

Github.com/CryptoSignal - Trading & Technical Analysis Bot - 4,100+ stars, 1,100+ forks

4,838
1,256
4,838
65

Top Related Projects

Official Documentation for the Binance Spot APIs and Streams

32,460

A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges

28,022

Free, open source crypto trading bot

10,067

A bitcoin trading bot written in node - https://gekko.wizb.it/

Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

5,509

An advanced crypto trading bot written in Python

Quick Overview

Crypto-Signal is an open-source project that provides a framework for building automated cryptocurrency trading strategies. It is designed to be highly customizable and can be used to monitor and analyze various cryptocurrency markets, generate trading signals, and execute trades based on those signals.

Pros

  • Customizable: Crypto-Signal allows users to create their own trading strategies and indicators, making it a flexible tool for advanced traders and developers.
  • Comprehensive Analysis: The project provides a wide range of technical indicators and analysis tools, enabling users to make informed trading decisions.
  • Automated Trading: Crypto-Signal can be configured to automatically execute trades based on the generated signals, reducing the need for manual intervention.
  • Community-Driven: The project has an active community of contributors and users, providing support, bug fixes, and feature enhancements.

Cons

  • Steep Learning Curve: Configuring and customizing Crypto-Signal may require a significant amount of technical knowledge, which can be a barrier for less experienced users.
  • Potential Risks: Automated trading strategies can be complex and may carry inherent risks, such as unexpected market conditions or algorithm failures.
  • Limited Documentation: While the project has a decent amount of documentation, some areas may be lacking in-depth explanations or examples.
  • Performance Concerns: Depending on the complexity of the trading strategies and the amount of data being processed, Crypto-Signal's performance may be a concern for users with limited computational resources.

Code Examples

# Example of setting up a basic configuration for Crypto-Signal
config = {
    'exchanges': {
        'binance': {
            'required': {
                'api_key': 'your_api_key',
                'api_secret': 'your_api_secret'
            }
        }
    },
    'notifiers': {
        'slack': {
            'required': {
                'webhook': 'your_slack_webhook'
            }
        }
    },
    'indicators': {
        'rsi': {
            'enabled': True,
            'alert_enabled': True,
            'alert_frequency': 'once',
            'signal_line_threshold': 30
        }
    }
}

This code sets up a basic configuration for Crypto-Signal, including the necessary API keys for the Binance exchange and a Slack webhook for notifications.

# Example of creating a custom indicator
from crypto_signal.indicators.base_indicator import BaseIndicator

class MyCustomIndicator(BaseIndicator):
    def __init__(self, historical_data, config):
        super().__init__(historical_data, config)

    def analyze(self):
        # Implement your custom indicator logic here
        # and return the analysis results
        return {'signal': 'buy'}

This code demonstrates how to create a custom indicator for Crypto-Signal by extending the BaseIndicator class and implementing the analyze() method.

# Example of running Crypto-Signal
from crypto_signal.crypto_signal import CryptoSignal

signal = CryptoSignal(config)
signal.run_strategy()

This code initializes the CryptoSignal class with the provided configuration and runs the trading strategy.

Getting Started

To get started with Crypto-Signal, follow these steps:

  1. Clone the repository:

    git clone https://github.com/CryptoSignal/Crypto-Signal.git
    
  2. Install the required dependencies:

    cd Crypto-Signal
    pip install -r requirements.txt
    
  3. Configure the project by creating a config.yml file in the root directory. You can use the example configuration provided earlier as a starting point.

  4. Run the Crypto-Signal application:

    python crypto_signal/crypto_signal.py
    
  5. Monitor the output and adjust the configuration as needed to fine-tune your trading strategy.

Competitor Comparisons

Official Documentation for the Binance Spot APIs and Streams

Pros of binance-spot-api-docs

  • Comprehensive documentation for Binance Spot API
  • Regularly updated with the latest API changes and features
  • Provides examples and code snippets in multiple programming languages

Cons of binance-spot-api-docs

  • Focused solely on Binance API, not a general-purpose trading tool
  • Requires implementation of trading logic and strategies by the user
  • Limited to Binance exchange only

Code Comparison

Crypto-Signal (Python):

from indicators import RSI, SMA
from exchange import BinanceExchange

rsi = RSI(exchange=BinanceExchange(), symbol='BTCUSDT', interval='1h')
sma = SMA(exchange=BinanceExchange(), symbol='BTCUSDT', interval='1h')

if rsi.analyze() < 30 and sma.analyze() > current_price:
    place_buy_order()

binance-spot-api-docs (JavaScript):

const Binance = require('node-binance-api');
const binance = new Binance().options({
  APIKEY: 'your_api_key',
  APISECRET: 'your_api_secret'
});

binance.prices('BTCUSDT', (error, ticker) => {
  console.log("Current BTC/USDT price: ", ticker.BTCUSDT);
});

The code snippets illustrate that Crypto-Signal provides a higher-level abstraction for trading strategies, while binance-spot-api-docs focuses on raw API interaction, requiring users to implement their own trading logic.

32,460

A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges

Pros of ccxt

  • Supports a vast number of cryptocurrency exchanges (190+)
  • Provides a unified API for trading operations across different exchanges
  • Actively maintained with frequent updates and extensive documentation

Cons of ccxt

  • Steeper learning curve due to its comprehensive nature
  • May include unnecessary features for users focused on specific exchanges

Code Comparison

Crypto-Signal (Python):

from indicators import RSI
from exchanges import Bittrex

rsi = RSI()
exchange = Bittrex()
rsi_value = rsi.analyze(exchange.get_market_data('BTC/USDT'))

ccxt (JavaScript):

const ccxt = require('ccxt');
const exchange = new ccxt.bittrex();
const ticker = await exchange.fetchTicker('BTC/USDT');
const rsi = calculateRSI(ticker.close);

Key Differences

  • Crypto-Signal focuses on providing trading signals and strategies, while ccxt is a more general-purpose library for interacting with cryptocurrency exchanges.
  • Crypto-Signal is primarily written in Python, whereas ccxt supports multiple programming languages, including JavaScript, Python, and PHP.
  • ccxt offers more extensive exchange support and trading functionalities, while Crypto-Signal specializes in technical analysis and signal generation.

Use Cases

  • Choose Crypto-Signal for automated trading strategies and signal generation.
  • Opt for ccxt when building applications that require broad exchange support and flexible trading operations across multiple platforms.
28,022

Free, open source crypto trading bot

Pros of freqtrade

  • More active development and larger community support
  • Extensive documentation and user guides
  • Built-in backtesting and hyperoptimization capabilities

Cons of freqtrade

  • Steeper learning curve for beginners
  • Requires more configuration and setup compared to Crypto-Signal
  • Limited built-in strategies, relying more on user-created ones

Code Comparison

Crypto-Signal (Python):

from indicators import moving_averages
class MovingAveragesStrategy(Strategy):
    def analyze_ticker(self, ticker):
        return moving_averages.analyze_macd(ticker)

freqtrade (Python):

from freqtrade.strategy import IStrategy
class CustomStrategy(IStrategy):
    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe['macd'] = ta.MACD(dataframe['close'])
        return dataframe

Both projects use Python for their core functionality. Crypto-Signal focuses on modular indicator analysis, while freqtrade provides a more comprehensive trading framework with customizable strategies. freqtrade's code structure is more complex but offers greater flexibility for advanced users.

10,067

A bitcoin trading bot written in node - https://gekko.wizb.it/

Pros of Gekko

  • More user-friendly interface with a web GUI for easier configuration and monitoring
  • Supports paper trading and live trading in addition to backtesting
  • Offers a plugin system for extending functionality

Cons of Gekko

  • Limited number of supported exchanges compared to Crypto-Signal
  • Less frequent updates and maintenance
  • Fewer built-in technical indicators and strategies

Code Comparison

Gekko (JavaScript):

const strat = {
  init: function() {
    this.requiredHistory = this.tradingAdvisor.historySize;
    this.addIndicator('myIndicator', 'SMA', this.settings);
  },
  check: function() {
    const myIndicator = this.indicators.myIndicator;
    // Trading logic here
  }
};

Crypto-Signal (Python):

class MyStrategy(Strategy):
    def analyze(self):
        indicator = self.indicators['sma']
        current_price = self.exchange_interface.get_current_price()
        if indicator.value > current_price:
            self.notify_observers(SignalEvent(signal='buy'))

Both projects offer cryptocurrency trading strategies and backtesting capabilities. Gekko provides a more user-friendly experience with its web interface and live trading support, while Crypto-Signal offers a wider range of supported exchanges and more frequent updates. The code examples show different approaches to implementing trading strategies, with Gekko using JavaScript and Crypto-Signal using Python.

Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Pros of Superalgos

  • More comprehensive platform with a visual interface for strategy development
  • Supports multiple exchanges and assets simultaneously
  • Active community and extensive documentation

Cons of Superalgos

  • Steeper learning curve due to its complexity
  • Requires more system resources to run effectively
  • May be overwhelming for beginners or those seeking simpler solutions

Code Comparison

Crypto-Signal (Python):

def calculate_sma(self, period, data):
    return sum(data[-period:]) / period

def analyze(self, market_pair):
    historical_data = self.exchange_interface.get_historical_data(
        market_pair,
        period_count=20,
        time_unit='1d'
    )
    sma = self.calculate_sma(14, historical_data)

Superalgos (JavaScript):

function calculateSMA(period, data) {
    return TS.projects.superalgos.utilities.dataMining.simpleMovingAverage(period, data)
}

function runSimulation(chart) {
    let sma = calculateSMA(14, chart.candles)
    chart.displacement = chart.candles.close - sma
}

Both projects offer cryptocurrency trading analysis tools, but Superalgos provides a more extensive ecosystem with visual strategy development. Crypto-Signal is more focused on providing specific signals and may be easier for beginners to use. The code comparison shows that both implement similar technical analysis functions, but Superalgos leverages its built-in utilities for calculations.

5,509

An advanced crypto trading bot written in Python

Pros of Jesse

  • More comprehensive backtesting and live trading capabilities
  • Supports multiple exchanges and trading pairs simultaneously
  • Offers a user-friendly CLI and web interface for easier management

Cons of Jesse

  • Steeper learning curve due to more advanced features
  • Requires more setup and configuration compared to Crypto-Signal
  • May be overkill for users seeking simple trading signals

Code Comparison

Jesse:

from jesse.strategies import Strategy

class MyStrategy(Strategy):
    def should_long(self):
        return self.close > self.sma(10)

    def should_short(self):
        return self.close < self.sma(10)

Crypto-Signal:

from analyzers.indicators import sma

def analyze_data(historical_data):
    sma_value = sma(historical_data, period=10)
    if historical_data[-1]['close'] > sma_value:
        return 'BUY'
    elif historical_data[-1]['close'] < sma_value:
        return 'SELL'

Jesse provides a more structured approach with a dedicated Strategy class, while Crypto-Signal uses simpler function-based analysis. Jesse's code is more extensible and easier to maintain for complex strategies, but Crypto-Signal's approach may be more straightforward for beginners or those needing quick signal generation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 4,100+ stars & 1,000+ 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!

(Subject to local financial regulations under the jurisdiction you and your financial activities are under. Marketing or enabling does not imply nor justify the facilitation or condoning of any activity - financial or otherwise. You assume and bare all risk. Be careful & act wisely.)

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.