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
An advanced crypto trading bot written in Python
Github.com/CryptoSignal - Trading & Technical Analysis Bot - 4,100+ stars, 1,100+ forks
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.
Quick Overview
Gekko is an open-source Bitcoin trading bot and backtesting platform. It allows users to automatically execute trading strategies on various cryptocurrency exchanges and provides tools for analyzing historical market data to test and optimize trading algorithms.
Pros
- User-friendly web interface for easy configuration and monitoring
- Supports multiple cryptocurrency exchanges
- Includes a variety of built-in trading strategies and indicators
- Extensible architecture allowing for custom plugins and strategies
Cons
- Limited to Bitcoin trading (as of the last update)
- Performance may be affected when running complex strategies on large datasets
- Requires some technical knowledge to set up and configure effectively
- Not actively maintained (last commit was in 2019)
Code Examples
- Defining a simple trading strategy:
var strat = {
init: function() {
this.requiredHistory = this.tradingAdvisor.historySize;
this.addIndicator('sma', 'SMA', this.settings.smaLength);
},
check: function(candle) {
var sma = this.indicators.sma.result;
if(candle.close > sma)
this.advice('long');
else if(candle.close < sma)
this.advice('short');
}
};
module.exports = strat;
- Configuring a backtest:
const config = {
watch: {
exchange: 'binance',
currency: 'USDT',
asset: 'BTC'
},
paperTrader: {
fee: 0.25,
slippage: 0.05,
simulationBalance: {
asset: 1,
currency: 100
}
},
tradingAdvisor: {
enabled: true,
method: 'MACD',
candleSize: 60,
historySize: 10
},
backtest: {
daterange: {
from: "2020-01-01",
to: "2021-01-01"
}
}
};
- Running a backtest programmatically:
const Gekko = require('./core/gekko');
const config = require('./config');
const gekko = new Gekko(config);
gekko.run()
.catch(console.error)
.done(() => {
console.log('Backtest complete');
process.exit(0);
});
Getting Started
-
Clone the repository:
git clone https://github.com/askmike/gekko.git cd gekko
-
Install dependencies:
npm install
-
Configure your settings in
config.js
-
Run Gekko:
node gekko --ui
-
Open your browser and navigate to
http://localhost:3000
Competitor Comparisons
Official Documentation for the Binance Spot APIs and Streams
Pros of binance-spot-api-docs
- Comprehensive documentation for Binance's Spot API
- Regularly updated with the latest API changes and features
- Provides detailed examples and code snippets for various programming languages
Cons of binance-spot-api-docs
- Focused solely on Binance's API, limiting its use for other exchanges
- Requires additional implementation for trading strategies and backtesting
- Less user-friendly for beginners compared to Gekko's all-in-one solution
Code Comparison
Gekko (JavaScript):
const config = require('./config.js');
const gekko = new Gekko(config);
gekko.run();
binance-spot-api-docs (Python example):
from binance.client import Client
client = Client(api_key, api_secret)
trades = client.get_my_trades(symbol='BTCUSDT')
Summary
Gekko is an open-source cryptocurrency trading bot platform, while binance-spot-api-docs is official documentation for Binance's Spot API. Gekko offers a complete trading solution with built-in strategies and backtesting capabilities, making it more accessible for beginners. On the other hand, binance-spot-api-docs provides comprehensive and up-to-date information specifically for Binance's API, which is valuable for developers building custom trading applications on the Binance platform. The choice between the two depends on the user's needs, programming experience, and preferred exchange.
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
Pros of ccxt
- Supports a much wider range of cryptocurrency exchanges (180+)
- More actively maintained with frequent updates
- Provides a unified API for trading operations across different exchanges
Cons of ccxt
- Steeper learning curve due to its comprehensive nature
- Requires more setup and configuration for specific use cases
- May be overkill for users focused on a single exchange or simple trading strategies
Code Comparison
Gekko (JavaScript):
const Gekko = require('gekko');
const config = require('./config');
const gekko = new Gekko(config);
gekko.run();
ccxt (JavaScript):
const ccxt = require('ccxt');
const exchange = new ccxt.binance();
const ticker = await exchange.fetchTicker('BTC/USDT');
console.log(ticker);
Key Differences
- Gekko is designed as an end-to-end trading bot platform, while ccxt is a library for exchange connectivity
- ccxt offers more flexibility and can be integrated into various trading systems
- Gekko provides a user interface and backtesting capabilities out of the box
- ccxt requires additional implementation for strategy execution and backtesting
Use Cases
- Choose Gekko for: Quick setup of a complete trading bot with minimal coding
- Choose ccxt for: Building custom trading systems, supporting multiple exchanges, or integrating exchange functionality into existing applications
Free, open source crypto trading bot
Pros of Freqtrade
- More active development and larger community support
- Supports a wider range of exchanges and trading strategies
- Better documentation and easier setup process
Cons of Freqtrade
- Steeper learning curve, especially for non-Python users
- Requires more computational resources to run effectively
Code Comparison
Gekko (JavaScript):
this.addTalibIndicator('myMACD', 'macd', this.settings);
if (this.talibIndicators.myMACD.result.outMACD > this.settings.thresholds.up) {
this.advice('long');
} else if (this.talibIndicators.myMACD.result.outMACD < this.settings.thresholds.down) {
this.advice('short');
}
Freqtrade (Python):
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe['macd'] = ta.MACD(dataframe['close']).macd()
return dataframe
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
dataframe.loc[(dataframe['macd'] > self.buy_threshold), 'buy'] = 1
return dataframe
Both projects aim to provide automated cryptocurrency trading solutions, but Freqtrade offers more flexibility and features at the cost of increased complexity. Gekko is simpler to use but has limited active development. The code examples showcase the different approaches to implementing trading strategies in each framework.
An advanced crypto trading bot written in Python
Pros of Jesse
- More advanced backtesting capabilities with support for multiple timeframes
- Better documentation and active community support
- Supports a wider range of exchanges and trading pairs
Cons of Jesse
- Steeper learning curve due to more complex architecture
- Requires more setup and configuration compared to Gekko
- Less beginner-friendly with fewer built-in strategies
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)
Gekko:
var strat = {};
strat.init = function() {
this.requiredHistory = this.tradingAdvisor.historySize;
this.addIndicator('sma', 'SMA', 10);
}
strat.check = function() {
var sma = this.indicators.sma.result;
if(this.candle.close > sma)
this.advice('long');
else if(this.candle.close < sma)
this.advice('short');
}
module.exports = strat;
Jesse's code is more concise and object-oriented, while Gekko uses a more functional approach. Jesse's strategy implementation is more intuitive for Python developers, whereas Gekko's JavaScript-based strategy might be easier for web developers to understand and modify.
Github.com/CryptoSignal - Trading & Technical Analysis Bot - 4,100+ stars, 1,100+ forks
Pros of Crypto-Signal
- Supports a wider range of cryptocurrencies and exchanges
- More advanced technical analysis indicators and strategies
- Active development and community support
Cons of Crypto-Signal
- Steeper learning curve and more complex setup
- Less focus on backtesting and paper trading capabilities
- Requires more technical knowledge to customize and extend
Code Comparison
Gekko (JavaScript):
const strat = {
init: function() {
this.requiredHistory = this.tradingAdvisor.historySize;
this.addIndicator('sma', 'SMA', this.settings.smaLength);
},
check: function() {
const sma = this.indicators.sma.result;
if (this.candle.close > sma) this.advice('long');
else if (this.candle.close < sma) this.advice('short');
}
};
Crypto-Signal (Python):
class SimpleMovingAverageCrossover(IndicatorUtils):
def analyze(self, market_pair):
dataframe = self.analyze_ticker(market_pair)
sma_fast = dataframe['close'].rolling(window=self.fast_period).mean()
sma_slow = dataframe['close'].rolling(window=self.slow_period).mean()
return sma_fast.iloc[-1] > sma_slow.iloc[-1]
Both projects offer cryptocurrency trading strategies, but Crypto-Signal provides more advanced features and flexibility, while Gekko focuses on simplicity and ease of use for beginners. The code examples demonstrate the different approaches and programming languages used in each project.
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 and feature-rich platform for crypto trading and analysis
- Active development with frequent updates and a larger community
- Supports multiple exchanges and trading strategies out of the box
Cons of Superalgos
- Steeper learning curve due to its complexity and extensive features
- Requires more system resources to run effectively
- Setup process can be more time-consuming compared to simpler alternatives
Code Comparison
Gekko (JavaScript):
const config = require('./core/util.js').getConfig();
const mode = util.gekkoMode();
const gekko = new Gekko(mode);
gekko.run();
Superalgos (JavaScript):
let bot = TS.projects.superalgos.botModules.tradingBot.newTradingBot(dataFiles);
bot.initialize(onInitialized);
function onInitialized(err) {
if (err) { throw err; }
bot.start(onFinished);
}
Both projects use JavaScript, but Superalgos has a more modular and complex structure, reflecting its broader feature set and flexibility. Gekko's code is simpler and more straightforward, making it easier for beginners to understand and modify.
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
This repo is not maintained anymore
I am officially not maintaining this project anymore. It was an amazing journey and I want to thank everyone for playing the role in this amazing story!
More details can be found here: https://medium.com/@gekkoplus/archiving-open-source-gekko-dba02e6efc7
This only impacts my Gekko repo (askmike/gekko). There might be other forks of Gekko out there that are being maintained!
Old content:
Gekko
The most valuable commodity I know of is information.
-Gordon Gekko
Gekko is a Bitcoin TA trading and backtesting platform that connects to popular Bitcoin exchanges. It is written in JavaScript and runs on Node.js.
Use Gekko at your own risk.
Documentation
See the documentation website.
Installation & Usage
Community & Support
Gekko has a forum that is the place for discussions on using Gekko, automated trading and exchanges. In case you rather want to chat in realtime about Gekko feel free to join the Gekko Support Discord.
Final
If Gekko helped you in any way, you can always leave me a tip at (BTC) 13r1jyivitShUiv9FJvjLH7Nh1ZZptumwW
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
An advanced crypto trading bot written in Python
Github.com/CryptoSignal - Trading & Technical Analysis Bot - 4,100+ stars, 1,100+ forks
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.
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