I've just launched a trading app that trades on MTGox and TradeHill.

I'm noticing something strange on TradeHill though. Basically I get my quote and place an order directly after. The order never gets filled as the price has already moved. I don't notice this on MTGox which is a surprise because there are higher volumes there and one would think that the price would move quicker there. Also, if I log on to TradeHill myself and fill the order form manually using the quoted price my order has been filled by the time my browser reloads the page?

Have any of you guys noticed this? These orders are being made when there is an arbitrage opporunity between MTGox and TradeHill.. Could this be the reason for the momentary volatility.. i.e. lot's of bots place orders to exploit the difference?

Any ideas on this appreciated.

Thanks :)

P.S. I forgot to mention that there is often a pretty large spread between bids/asks on TradeHill.

EDIT: I'm using the ticker API to grab buy/sell quotes. I will then place an order for 1BTC to buy/sell at the quoted price. I'm not currently looking at market depth. I have planned on looking at it later to figure out the max volume I could use any given time.

Also, yes, that was silly of me high volume = low volatility.

  • Can you be more precise about what quote your getting and what order you're placing? Are you trying to buy a particular offer you see in the market depth? (Also, higher volumes tend to mean less volatility.) Sep 26, 2011 at 19:45

1 Answer 1


The problem might be that TradeHill adds orders to the Orderbook before processing them. For example, this happened today:

  • Around 18h10 UTC, the highest bid was 4.842524 and the lowest ask was 4.840000

  • Around 22h00 UTC, the highest bid was 4.820000 and the lowest ask was 4.819900

I have also detected similar situations at ExchangeBitcoins.com. CampBX and MtGox seem to be matching orders before displaying them so you shouldn't have these problems there.

If you don't want to risk putting an order that will never go through, you should detect situations like this in your code and wait for the orders to solve. If the lowest ask is lower than the highest bid, something is not right.

  • Yes, i've just spotted that. I tried making an order for the quoted price and never went through even though I refreshed the ticker and the price was the same. That's complete garbage, why do TradeHill do it that way? Good tip on spotting the spread, i'll add that now. What kind of threshold should I have that could be considered safe for putting an order?
    – jim
    Sep 29, 2011 at 15:02
  • I noticed that you are using the ticker. I am talking about market depth so I am not sure how the ticker behaves in this situation... Anyway, I always wait until this is solved in the order book before placing an order. I have seen things like lowest_ask=12 / highest_bid=14 so I won't trust the numbers until they sort it out. Most APIs are very unpolished. I have found lots of other annoying tiny details.
    – nmat
    Sep 29, 2011 at 15:34
  • Here's a post I made at bitcointalk regarding the issue.
    – nmat
    Sep 29, 2011 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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