Bitcoin Charts – Bid Comparison

For information about Bitcoin and its history I provide a brief overview in my other post “Bitcoin – Is it dead yet?“. To better understand bullet graphs have a read of the Bullet Graph Design Spec.

There are a large number of exchanges listed on These exchanges are all competing to exchange bitcoin for you. For a better understanding of these exchanges I wrote a go script to list the bid prices for all the USD exchanges on bitcoincharts. While some of these exchange appear to be out of operation others show a very competitive exchange rate. The measure (bar) shown on these charts is the best bid price currently being offered. When compared with mtgox some of these exchanges appear to offer a better bid price. On the right side of the bar the lighter color indicates a range where the user would expect to be making a profit on the exchange (approximated as mtgoxUSD.Ask + 1% exchange fee). At the time of producing this graph bitfloor appears to be offering a very competitive price. An intelligent arbitration bot could take advantage of this.

Comparison of bid prices for bitcoin exchanges

I’m not the first to notice this. Searching github shows a few attempts at arbitration on the bitcoin exchanges. My script was written in go and produces an SVG image. Three important packages are used to help produce the image.

1. – Produces the SVG markup.
2. – Queries for bitcoin market information.
3. – Produces the bullet charts.

The code to produce this chart is below:

package main

import (

func main() {
	canvas := svg.New(os.Stdout)
	canvas.Start(1024, 1800)
	canvas.Rect(0, 0, 1024, 1800, "fill:white")
	canvas.Title("Bitcoin Bid Comparison")
	bg := bulletgraph.New(canvas)

	bitcoin := bitcoincharts.BitcoinCharts{Timeout: time.Millisecond * 1000}

	mtgoxUSD, err := bitcoin.GetMarket("mtgoxUSD")
	if err != nil {
		fmt.Errorf("%s: %s", err.MyError, err.TheError)

	usd, err := bitcoin.GetMarketsWithCurrency("USD")
	if err != nil {
		fmt.Errorf("%s: %s", err.MyError, err.TheError)

	//Want to sell bitcoin at a profit
	for _, market := range *usd {

		//We will assume the mtgoxUSD.Bid price is current "real" price for selling bitcoin
		//To make a profit we must be able to "buy" the bitcoin back at a better price
		//We will assume the fee for transaction is 1%
		qm := fmt.Sprintf("%v,%v", mtgoxUSD.Bid, mtgoxUSD.Ask+(mtgoxUSD.Ask*0.01))
		scale := fmt.Sprintf("%v,%v,%v", 0, math.Floor(mtgoxUSD.Bid)*2, math.Floor(mtgoxUSD.Bid/12))
		if market.Ask > 0 {
			//CMeasure will be the current Asking price. If someone is lucky enough to get this price they will make a profit.
			//Measure is the actually price we can currently sell our bitcoin for
			bg.Data = append(bg.Data, bulletgraph.Bdata{Title: market.Symbol, Subtitle: market.Currency, Scale: scale, Qmeasure: qm, Cmeasure: market.Ask, Measure: market.Bid})

		//--not yet--

Be Sociable, Share!

One thought on “Bitcoin Charts – Bid Comparison

Leave a comment

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>