Coder Social home page Coder Social logo

bowhead's Introduction

bowhead

a REST-API and console-based cryptocurrency trading bot boilerplate and framework

Written by Joel De Gan, 2017

Bowhead (a type of whale) is the codename for a boilerplate within Laravel for building Cryptocurrency and Forex automated systems.

Utilizing a RESTful API, Bowhead can be used as a middle-layer for your favorite language to interface with multiple brokerages and market makers, just add your API keys.

Bowhead utilizes all the TALib functions implemented in the Trader extenstion for PHP and creates some of it's own indicators which are composites of those from TALib.

Focus of the project.

The primary focus is to have an easy to use boilerplate/framework that you can rapidly create a fully functional trading system on various strategies on BTC funded trading platforms that typically do not require that you are "verified" this way you can trade with funds without funneling them through your bank and having to deal with some potential tax issues (depending on the country you live in)

Companion article

This project has a companion article which walks you through how to set it up and walks you through setting up your first strategy and running it on Whaleclub and on 1Broker, which you will need accounts on both.

The companion article is on Medum and is:

Part 1: Let’s write a cryptocurrency bot (part 1).

Part 2: Let’s write a cryptocurrency bot (part 2)

Part 3: Let’s write a cryptocurrency bot (part 3)

I highly suggest you read through it and follow along to get it up and running.

basic setup

You will need

  • PHP7.1
  • Redis
  • MySql
  • the PHP Pecl Trader extension,

for Python you will need the dotenv package.

pip install python-env

Notes

This project was initially done in the Laravel-Lumen (lightweight) framework however the move to a fully open sourced boilerplate/framework I felt that having the full ability of Laravel could be important, particularly Jobs and other parts which utilize queues could be invaluable.

Bowhead was written and tested on a Mac and I have it running in the cloud on an Ubuntu linux server in AWS making real money trades every day on the Crypto markets, on Forex pairs and on binary options.

One limitation that may mess up this running on Windows is the usage of a named pipe for passing data between Python and PHP in real time, there are ways around this, such as using Redis, or piping the output to a parser.

I am open to suggestions for how to get it to work on Windows

A note about editors.

I would like to additionally say that when you are working with Laravel, it it is almost mandatory to use an editor like PHPStorm, you 'can' use something like Atom but it would be like trying to use notepad to work on a dotNet project, you can technically 'do it' but it will be frustrating and you will not have a good time. I cannot recommend PHPStorm more highly. They have a free trial and with updates it extends the trial period, even still, if you choose to purchase it, it's not expensive.

additional libraries

I have added a couple utility libs that I like to use with this.

  • Console class, this is for colorizing, doing progress bars and doing text tables in console which look like the following.
 ╔═══════════════════════════════════════════════╗
 ║ BTC    │                                      ║
 ║ LTC    │                                      ║
 ╚════════╧══════════════════════════════════════╝

If you feel in a tipping mood send BTC to

14d9xxG1h5DkaDihiDBwzp5nj82dTcWfHc

DONE:

  1. Write my own Coinbase, Whaleclub, 1Broker wrappers.
  2. Create Indicators wrapper for TALib.
  3. Create Candles wrapper for TALib
  4. Collect console functions into one Console class.
  5. Streaming data from Oanda
  6. Streaming data from Bitfinex
  7. Dockerfile easy-setup done and tested.
  8. Signals module
  9. Strategies module
  10. REST mapping module

IN PROGRESS:

  1. REST-API
  2. Write my own Oanda, Bitfinex and Poloniex API wrappers.

TODO:

  1. Standardize the calls to brokerages so the method names are the same across all of them.
  2. reporting, logging and backtesting tools.

bowhead's People

Contributors

rxmg-joeldg avatar artturik avatar joeldg avatar oktapodia avatar

Stargazers

Valerii Vasyliev avatar

Watchers

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