kafitz / btc-arbitrage

Fork of bitcoin-arbitrage

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

btc-arbitrage

(main private fork of bitcoin-arbitrage) - will run independently
IRC version found here: https://github.com/kafitz/bitbot

Live trading mode will need:

  • the ability to monitor the amounts of funds we have in each exchange so that we can focus only on trades that we are able to make. (so if we had $0 in mtgox and $10 in bitstamp, we would only see the trade for bitstamp --> intersango and not one from mtgox --> intersango)
  • the fees involved with every exchange we use. This way we can add a calculator function that will only execute trades that are profitable to us after the cost of making the transaction.
  • as many exchanges as we can, concentrating on those with buy/sell APIs so we can automate the process.
Future modifications:

Extending btc-arbitrage to include our own math can be done through editing def arbitrage_opportunity() in arbitrage.py.
def arbitrage_opportunity(self, kask, ask, kbid, bid) takes the following arguments as generated by its calling function, def tick():

  • kask: string of exchange1's name
  • ask: dict of lowest asking price and available volume - {'price': 45.06, 'amount': 18.42}
  • kbid: string of exchange2's name
  • bid: dict of highest big price and available volume - {'price': 56.0932, 'amount': 14.5}

Needed features:

  • Built-in fee calculator. First step, gathering a spreadsheet of fees for each exchange we use and add that as attributes to their public_market class. Then include that information in the arbitrage_opportunity() calculation.
  • A system to keep track of our balances at each exchange. This way it can be intelligent in only notifying us of transactions we are currently able to make. We should still probably keep track of the transactions we cannot make so we can deem if we feel its worth it to directly wire money to the exchange to exploit some arbitrage opportunities.
  • Separate bitbot irc code from btc-arbitrage and have them communicate some other way so that we dont have to update two versions of the same project. This is debatable.
Code layout:

classes: Image packages: Image

About

Fork of bitcoin-arbitrage


Languages

Language:Python 100.0%