Code Monkey home page Code Monkey logo

nombot's Introduction

https://travis-ci.org/karma0/nombot.svg?branch=master Documentation Status Updates Python 3

nombot

A flexible cryptocurrency trading bot written in Python and bors.

Dependencies

Some assumptions are made that you are familiar with Python and operate in Linux. There is currently no way to test on Windows or Apple operating systems, and while you may use the OTS strategies that come with this repository, in order to expand on your strategy development time is a likely requirement.

If you are able to use docker, this will solve the first problem. If you are able to pay for development services, that will solve the second.

Python Dependencies

  • Python 3.6+ is assumed
  • bors
  • ccxt
  • dataclasses

Key Features

Exchanges

  • Extensible for any exchange using CCXT.
  • Exchange helper facilities; _connection pooling, websockets, shared contexts.
  • Mutiple exchange connectivity allowing for arbitrage.
  • Strive toward dynamic, forward-compatible interfaces.

Currencies

All currencies supported; if the exchange supports it, it will work. * Wallet support, allowing for automated coin transfers. (coming soon)

Algorithms

Implementation is independent of strategy, allowing for maximal reuse, flexibility, and enforcing DRY principles.

Strategies

  • "Plugable" strategy architecture using IStrategy inheritance.
  • "Stackable" architecture allows you to isolate grouped functionality for reuse.
  • Utilizes a middleware pipeline for processing.
  • Shared context objects allow for maximum versatility in complex scenarios.
  • Utilization of algorithms as backend functional libraries (strategy equates to "business logic").
  • Automatic configuration pass-through.
  • See bors for more information.

Configuration

Flexible modularized configuration using JSON. See config.json.example.

Security

  • Namespaced immutable configuration will greatly reduce your chance of information leakage and manipulation.
  • File system storage & security (requires careful consideration of file permissions; see install notes below).

Coming soon...

  • Backtesting and supporting documentation.
  • More documentation around creating exchanges, algorithms, and strategies.
  • Tests, tests, tests!
  • For a deployment example, see siphonexchange.

Setup

Installation

git clone https://github.com/karma0/nombot.git nombot && cd $_
pip install requests numpy pandas

Upgrading to the latest

The master branch will contain the latest release. develop will contain the latest developments and may break things.

git pull

Configuration

  1. Create your strategy class, using any available algorithms, or creating your own algorithms.
  2. Copy config.json.example to config.json and execute chmod 600 config.json.
  3. Change the configuration required for your strategy, exchange(s), API calls, etc. based on the examples.

Execution

./trader.py

Contributing

Options: 1. Follow the instructions here: https://help.github.com/articles/fork-a-repo/ 2. Submit an issue or feature request here.

nombot's People

Contributors

karma0 avatar pyup-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.