I'm currently writing something to script arbitrage between two exchanges to test the concept.

I know I can determine the difference in prices by using

(ExhangeA_sell - ExchangeB_buy) <- this will give me the price difference. i.e. gross profit (before fee's)

My question, how do I take the fee's into account when calculating net profit?

Currently my thinking is that I add the commission % to the buy price on ExchangeA and subtract the commission % from the sell price on ExchangeB.

Any ideas on this?


  • Hi Conor, just wanted to explain the close votes that are starting to pop up on this question. It's a perfectly valid question, but because it's not specifically unique to Bitcoin, it may be better suited to a site like money.stackexchange.com or math.stackexchange.com so don't be surprised if it gets moved there. – eMansipater Sep 21 '11 at 14:41

nmat: i think you got the signs wrong in there somewhere. the fees will /decrease/ your effective selling price, and /increase/ your effective purchase price. so it should in fact be:

ExchangeA_sell * (1 - ExchangeA_fee) - ExchangeB_buy * (1 + ExchangeB_fee)

and also, you should take into account any deposit/withdrawal fees (E.g., when you withdraw via LR from mtgox, that's a 2% hit, when you use dwolla, that's 0.25USD fee, etc) that you'd incur when moving money between the exchanges.

| improve this answer | |

It's pretty simple. Like you said, you only have to add the fees to the selling price and subtract them from the buying price. Considering that the fee is a number between 0 and 1 that represents the percentage, here is an example:

ExchangeB_bidPrice * (1 - ExchangeB_fee) - ExchangeA_askPrice * (1 + ExchangeA_fee)

This will give you the profit per coin for buying at ExchangeA and selling at ExchangeB.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.