Automated lending on Cryptocurrency exchanges Poloniex and Bitfinex
Clone or download
utdrmac and Evanito Increase Bitfinex API sleeps (#632)
* merge upstream (#1)

* Plugin Graphs: make history file configurable (#518)

* make history file configurable

* removed extra paren

* Reduce chances of nonce collisions (#520)

* Check currency is being analysed before trying to get a rate for it (#528)

* Check currency is being analysed before trying to get a rate for it

* Fix Capital C in "Lending.py", line 85 (#529)

* Resolves Issue 526 (#533)

* add dashboard link in navbar
* aggregate correct column

* Fix recorded data when no rate offers exist, don't print traceback unless ma_debug is on (#531)

* Return a dict of all currencies even if balance is 0 (#540)

* Log bot "version" on error handling (#543)

* When logging an exception also log the number of commits on current branch, will allow to easily identify if reporter is on master and updated.

* Move get_git_version to Data module

* Change fallback version number to 3.0.0

* A safer approach for handling errors in the git call

* Html response fix (#546)

* prevent exception overloading when receiving an html response error

* prevent unicode from throwing an exception

* File log using ensure_ascii

* Change min/max daily lend rate depending on exchange (and simplify xdays) (#547)

* Change min/max daily lend rate depending on exchange

* Lending.py

Simplify code with xdays and max/min daily rate

* Update Lending.py

* Update Lending.py

* Bitfinex sync fix (#555)

* Sync Bitfinex API requests completely

* Update test

* Update test

* ERR_RATE_LIMIT_fix (#549)

* Return a dict of all currencies even if balance is 0

* Sleep and reduce requests per min if we get ERR_RATE_LIMIT

* Reduce request window to 1 sec

* Move the timers to millisecond resolution in the coach, MA changes times now when it catches 429

* Comments, logs, fix exception

* Don't change api request times unless using bitfinex

* Update polo coach to milliseconds

* Catch 429 at top level and more sensible api_req_period calc

* PEP-8

* Unrelated bug I found from ERR_RATE_LIMIT_fix

* Sync Bitfinex API requests completely

* Update test

* Update test

* Messed up the merge from bitfinex_sync_fix

* Move timer change methods to base class and catch 429 at API level

* Add poloniex timer changes

* Make sure to re-raise the error, sleep in the MA module not the API.

* Converted a tab to spaces

* Added Blacklist Option & enforce whitelist (#570)

* Added Blacklist Option for Lending

* Mistake in Configuration.py

* Optimized config description

* Optimized description

* Minimized api requests by using blacklist_currencies and all_currencies parameter

* Removed BTG from all_currencies

* Changed to more simple blacklist and changed documentation

* Changed default config

* Changed configuration description

* Addition of a Slack Username parameter as a configuration option. (#576)

* Addition of a Slack Username parameter as a configuration option.

* Backward compatibility for configs which lack a slack_username

* split multiline message into multiple irc messages (#582)

the irc lib in use doesn't support sending multiline messages. this patch splits messages containing newline characters into multiple irc messgaes to resolve issue: #565

* Discover minimum amount in EUR (#594)

I think this solves #589.

* Use docker image with pandas and numpy already installed (#593)

* Fixes absolute reference

This way the webpage will work even if under a directory, otherwise it redirects to the root directory.

* Use FRR on bitfinex as min_daily_rate (#554)

* Return a dict of all currencies even if balance is 0

* Sleep and reduce requests per min if we get ERR_RATE_LIMIT

* Reduce request window to 1 sec

* Move the timers to millisecond resolution in the coach, MA changes times now when it catches 429

* Comments, logs, fix exception

* Don't change api request times unless using bitfinex

* Update polo coach to milliseconds

* Catch 429 at top level and more sensible api_req_period calc

* Use FRR for min_daily_rate

* Missing from last commit

* PEP-8

* Config and docs for frr as min

* Use config for frr and use configured min if higher

* Unrelated bug I found from ERR_RATE_LIMIT_fix

* Unrelated bug I found from ERR_RATE_LIMIT_fix

* Sync Bitfinex API requests completely

* Update test

* Update test

* Messed up the merge from bitfinex_sync_fix

* Messed up the merge from bitfinex_sync_fix

* Move timer change methods to base class and catch 429 at API level

* Add poloniex timer changes

* Make sure to re-raise the error, sleep in the MA module not the API.

* Converted a tab to spaces

* Added FRR Delta for Bitfinex

* Added FRR Delta for Bitfinex

* PEP-8

* Log when using FRR as min daily rate

* Allow config to be picked up from 'BOT' section rather than just coin_cfg

* Declare variables to allow global access

* This is why we should use classes!

* exchangeMax needs defined

* add larger sleeps to prevent API bans

* only display active coins in charts
Latest commit 13d6cb1 Jul 20, 2018

README.md

Mika Lending Bot

Mika Lending Bot is written in Python and features automatic lending on exchanges Poloniex and Bitfinex. It will automatically lend all cryptocurrencies found in your lending account.

It uses an advanced lending strategy which will spread offers across the lend book to take advantage of possible spikes in lending rates. Inspired by MarginBot and BitfinexLendingBot.

Join the discussion at:

Join the chat at https://gitter.im/Mikadily/poloniexlendingbot

- Recommended for communicating with Devs

Subreddit - Recommended for focused discussion

We also have a public FAQ on the Github Wiki, feel free to add your questions or check there for support!

Workflow management with Waffle.io

Throughput Graph

Documentation

Click here to read the Documentation, hosted by readthedocs.io

Features

  • Automatically lend your coins on Poloniex and Bitfinex at the highest possible rates, 24 hours a day.
  • Configure your own lending strategy! Be aggressive and hold out for a great rate or be conservative and lend often but at a lower rate, your choice!
  • The ability to spread your offers out to take advantage of spikes in the lending rate.
  • Withhold lending a percentage of your coins until the going rate reaches a certain threshold to maximize your profits.
  • Lock in a high daily rate for a longer period of time period of up to sixty days, all configurable!
  • Automatically transfer any funds you deposit (configurable on a coin-by-coin basis) to your lending account instantly after deposit.
  • View a summary of your bot's activities, status, and reports via an easy-to-set-up webpage that you can access from anywhere!
  • Choose any currency to see your profits in, even show how much you are making in USD!
  • Select different lending strategies on a coin-by-coin basis.
  • Run multiple instances of the bot for multiple accounts easily using multiple config files.
  • Configure a date you would like your coins back, and watch the bot make sure all your coins are available to be traded or withdrawn at the beginning of that day.
  • Docker support.
  • And the best feature of all: It is absolutely free!

Donations

If you find it useful, please consider donating some bitcoins: 37VoSLbiqVWGDA5Y8rmo5XaQxPo551gBY8

This address goes to a multisignature wallet with keys held by the lead contributors: Mikadily, rnevet and Evanito.