Crypto-Signal
Github.com/CryptoSignal - Trading & Technical Analysis Bot - 4,100+ stars, 1,100+ forks
Top Related Projects
Official Documentation for the Binance Spot APIs and Streams
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
Free, open source crypto trading bot
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.
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:
-
Clone the repository:
git clone https://github.com/CryptoSignal/Crypto-Signal.git
-
Install the required dependencies:
cd Crypto-Signal pip install -r requirements.txt
-
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. -
Run the Crypto-Signal application:
python crypto_signal/crypto_signal.py
-
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.
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
- 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.
-
Install docker CE
-
Create a config.yml file in your current directory. See the Configuring config.yml section below for customizing settings.
-
In a terminal run the application.
docker run --rm -v $PWD/config.yml:/app/config.yml shadowreaver/crypto-signal:master
. -
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.
Top Related Projects
Official Documentation for the Binance Spot APIs and Streams
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
Free, open source crypto trading bot
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.
An advanced crypto trading bot written in Python
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot