Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

trading bot framework for zaif exchange

Project description

chart_with_upwards_trend:
 algorithmic trading bot for zaif exchange

Python version PyPI version License: MIT

ZaifBot is a Pythonic algorithmic trading library that run on Zaif Exchange.
It is developed by using Python 3.5.3 and tested in Python 3.4, 3.5, 3.6.

Features

  • Easy to use: Zaifbot is library for trading beginners, so designed simple.
  • Support all currency pairs dealt with Zaif Exchange
  • Technical indicators like SMA, EMA, Bollinger Bands, RSI, ADX
  • You don’t have to prepare market data. Zaifbot internal get data from zaif API
To get started with Zaifbot take a look at the tutorial and the full documentation.

Note: ZaifBot is unofficial library of Tech Bureau, Inc. Please use it at your own risk.

Installation

instaling with pip

After activating an isolated Python environment, run

$ pip install zaifbot

currently supported platforms includes:

  • Linux 64-bits
  • OSX 64-bits
  • Windows 64-bits

Note: if you use OSX, we assume homebrew is installed.

Setup

After installing Zaifbot, run

$ install_ta_lib
TA-Lib is open-source library of technical analysis indicators that ZaifBot is depending on.
This command install TA-Lib in your operating system.

then,

$ init_database
When init_database command is executed,
db/zaifbot.db is created for SQLite and schema is migrated.
Your Trade records will be saved in this file.

Quick Start

See our getting started tutorial

The following code implements a simple trading algorithm using zaifbot

from zaifbot.trade import Strategy
from zaifbot.rules import Entry, Exit
from zaifbot.config import set_keys
from zaifbot.trade.tools import last_price

# setting your Zaif API key
set_keys(key='your_key', secret='your_secret')


# creating rule to buy
class BuyWhenCheap(Entry):
    def can_entry(self):
        if last_price(self._currency_pair.name) < 25000:
            return True
        return False

# creating rule to exit
class ExitWhenPriceGoUp(Exit):
    def can_exit(self, trade):
        # 'trade' has the entry information
        current_price = last_price(trade.currency_pair.name)
        if current_price > trade.entry_price + 5000:
            return True
        return False

my_entry = BuyWhenCheap(currency_pair='btc_jpy',
                        amount=0.01,
                        action='bid')
my_exit = ExitWhenPriceGoUp()

# strategy is an unite of automated trading
my_strategy = Strategy(entry_rule=my_entry,
                       exit_rule=my_exit)

my_strategy.start(sec_wait=1)

Feedback

If you have a question, or find a bug, feel free to open an issue.

Contributing

Any kind of contributions are welcome.
Please contribute by following the steps below.
  1. Fork and clone this repository to your computer
  2. Run docker build -t zaifbot . to create development environment
  3. Edit source code and make pull request to depelop branch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
zaifbot-0.0.8.tar.gz (6.3 MB) Copy SHA256 hash SHA256 Source None Sep 5, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page