Convert Figma logo to code with AI

askmike logogekko

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

10,067
3,950
10,067
0

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

5,509

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

  1. 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;
  1. 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"
    }
  }
};
  1. 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

  1. Clone the repository:

    git clone https://github.com/askmike/gekko.git
    cd gekko
    
  2. Install dependencies:

    npm install
    
  3. Configure your settings in config.js

  4. Run Gekko:

    node gekko --ui
    
  5. 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.

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 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
28,022

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.

5,509

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 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

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 npm Build Status Build status

Gordon 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

See the installing Gekko doc.

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

NPM DownloadsLast 30 Days