Search content
Sort by

Showing 16 of 16 results by br00t
Post
Topic
Board Exchanges
Re: Our contribution to Bitcoin community
by
br00t
on 27/04/2015, 17:36:47 UTC
Incredibly cool and generous of you guys to give donate this to the community! A++
Post
Topic
Board Meetups
Re: Bitcoin Montreal April 27th 2013 - Introducing Bitcoin to Merchants & Customers
by
br00t
on 22/11/2012, 21:25:17 UTC
My wife has promised to kill me in my sleep if she has to listen to one more extended rant about the virtues of the coin.
Post
Topic
Board Speculation
Re: R quantmod xts load bitcoincharts.com data
by
br00t
on 31/05/2012, 01:31:51 UTC
You know when I posted this I didn't realize that stochastic had already written this post https://bitcointalk.org/index.php?topic=61495.0 months ago, which goes into much greater detail and is probably of far greater value to someone looking to develop a quantitative model based on ticker data from bitcoincharts... definitely worth a read!
Post
Topic
Board Speculation
Topic OP
R quantmod xts load bitcoincharts.com data
by
br00t
on 29/05/2012, 03:32:33 UTC
Code:
library('quantmod')
library('zoo')

TEMP_FILE <- './data/temp.csv'

ohlc <- function(ttime,tprice,tvolume,fmt) {
  # function which converts raw bitcoincharts ticker data to ohlc data
  # possible formats include: "%Y%m%d %H %M" (minute ticker), "%Y%m%d %H" (hourly ticker), "%Y%m%d" (daily ticker)
  ttime.int <- format(ttime,fmt)
  data.frame(time = ttime[tapply(1:length(ttime),ttime.int,function(x) {head(x,1)})],
             .Open = tapply(tprice,ttime.int,function(x) {head(x,1)}),
             .High = tapply(tprice,ttime.int,max),
             .Low = tapply(tprice,ttime.int,min),
             .Close = tapply(tprice,ttime.int,function(x) {tail(x,1)}),
             .Volume = tapply(tvolume,ttime.int,function(x) {sum(x)}),
             .Adjusted = tapply(tprice,ttime.int,function(x) {tail(x,1)}))
}

getTicker <- function(symbol,period,datasource,filename='') {
  # this method retrieves ticker data from bitcoincharts.com or a a CSV downloaded from bitcoincharts.com for any symbol listed on the site
  # usage: ticker <- data.frame(getTicker('mtgoxUSD|virtexCAD\...', 'daily|hourly|minutes', 'web|file','./data/mtgoxusd-recent.csv'))
  # filename parameter is optional and only used when datasource = 'file'
  ColClasses = c('numeric','numeric','numeric')
  if(datasource == 'web') {
    RECENT_TRANSACTIONS_FILE <- paste('./data/', symbol, sep='')
    RECENT_TRANSACTIONS_FILE <- paste(RECENT_TRANSACTIONS_FILE, '-recent.csv', sep='')
    # let's be good and only download the data that we have to ...
    if(file.exists(RECENT_TRANSACTIONS_FILE)) {
      # get the last id
      mawk_command <- paste("mawk 'END {print}' ", RECENT_TRANSACTIONS_FILE, sep='')
      lastline <- system(mawk_command, intern = TRUE)
      lastid <- strsplit(lastline[1], split=',')[[1]][1]
      url <- paste('http://bitcoincharts.com/t/trades.csv?symbol=', symbol, sep='')
      url <- paste(url, '&start=', sep='')
      url <- paste(url, lastid, sep='')
      download.file(url, destfile=TEMP_FILE, method='auto', quiet = FALSE, mode = "w", cacheOK = TRUE, extra = getOption("download.file.extra"))
      cat("\n",file=RECENT_TRANSACTIONS_FILE,append=TRUE)
      # now we need some additional sanity checking here to see if this delta already exists in the
      # current local file or we will sometimes wind up repeatedly downloading the same transactions
      file.append(RECENT_TRANSACTIONS_FILE, TEMP_FILE)
      file.remove(TEMP_FILE)
    }
    else {
      download.file(url=paste('http://bitcoincharts.com/t/trades.csv?symbol=', symbol, sep=''), destfile=RECENT_TRANSACTIONS_FILE, method='auto', quiet = FALSE, mode = "w", cacheOK = TRUE, extra = getOption("download.file.extra"))
    }
    ticker <- read.zoo(RECENT_TRANSACTIONS_FILE, colClasses = ColClasses, sep = ",", header = FALSE)
  }
  else {
    ticker <- read.zoo(filename, colClasses = ColClasses, sep = ",", header = FALSE)
  }
  index(ticker) <- as.POSIXct(index(ticker), origin="1970-01-01", tz="GMT")
  if(period == 'monthly')  ohlcObj <- ohlc(index(ticker),ticker$V2,ticker$V3,"%Y%m")
  if(period == 'daily')  ohlcObj <- ohlc(index(ticker),ticker$V2,ticker$V3,"%Y%m%d")
  if(period == 'hourly') ohlcObj<- ohlc(index(ticker),ticker$V2,ticker$V3,"%Y%m%d %H")
  if(period == 'minutes') ohlcObj <- ohlc(index(ticker),ticker$V2,ticker$V3,"%Y%m%d %H %M")
  # clean up column names a bit
  names(ohlcObj)[names(ohlcObj) == ".Open"] <- 'Open'
  names(ohlcObj)[names(ohlcObj) == ".Close"] <- 'Close'
  names(ohlcObj)[names(ohlcObj) == ".Volume"] <- 'Volume'
  names(ohlcObj)[names(ohlcObj) == ".Adjusted"] <- 'Adjusted'
  names(ohlcObj)[names(ohlcObj) == ".High"] <- 'High'
  names(ohlcObj)[names(ohlcObj) == ".Low"] <- 'Low'
  names(ohlcObj)[names(ohlcObj) == "time"] <- 'Time'
  row.names(ohlcObj) <- NULL
  ohlcObj$row.names <- NULL
  return(ohlcObj)
}

getChartable <- function(ohlcObj) {
  # this method takes a raw ohlc data frame and rebuilds it in a way that emits an xts objects that can be used by chartSeries
  rownames(ohlcObj) <- ohlcObj$Time
  ohlcObj$Time <- NULL
  ohlcObjXts <- as.xts(ohlcObj)
  return(ohlcObjXts)
}

# Let's try it out now
#ticker <- data.frame(getTicker('mtgoxUSD', 'minutes', 'file','./data/mtgoxusd-recent.csv'))
#ticker <- data.frame(getTicker('virtexCAD', 'monthly', 'file','./data/cavirtex-2012.csv'))

# populate a data frame from web
ticker <- data.frame(getTicker('mtgoxUSD', 'hourly', 'web'))

# get xts object that can be used for charting
tickerxts <- getChartable(ticker)
chartSeries(tickerxts)

#Add a few technical indicators to the chart
addEMA(n=6*7,col='red')
addEMA(n=3*7,col='green')
addMACD()

Useful for modelling of bitcoincharts.com ticker data from all (?) exchanges in R. R data frame can also be imported into RapidMiner with the R plugin.
Post
Topic
Board Development & Technical Discussion
Re: Version 0.6 release candidate 1
by
br00t
on 11/03/2012, 20:29:55 UTC
Thanks mcorlett I'll give it a try...
Post
Topic
Board Development & Technical Discussion
Re: Version 0.6 release candidate 1
by
br00t
on 11/03/2012, 20:17:31 UTC
v0.6.0rc2 built from master branch still stuck at block 170059 :-( Tried -rescan and -paytoscripthashtime ... any thoughts?
Post
Topic
Board Project Development
Re: .NET Wrappers for: MtGox API v0, v1, TradeHill
by
br00t
on 21/02/2012, 03:35:52 UTC
Fireball clued me into to ru_zelyony's very very nice implementation (see https://socketiowebsockets.codeplex.com/) ... I have started playing around with it. It works as advertised and is quite simple to use. I've integrated it into our code base and we hope to release a little GUI which uses zelyony's socketio implementation and fails over to our (clunky) implementation of the v0/v1 HTTP API if socketio goes belly up. Hoepfully by the end of this week. After that we hope to delve into the ICBit API...

@twa: we'd love to see what you've written as well... the more the merrier...
Post
Topic
Board Bitcoin Discussion
Re: The First Montréal Restaurant to Accept Bitcoin
by
br00t
on 21/02/2012, 03:26:23 UTC
We're all about the coin :-) I am definitely interested in seeing Canada take a leadership position vis-a-vis digital currencies in general and Bitcoin in particular. In order for this to happen I think there needs to be some clarity regarding the various legalities. I have started talking to people in government (FINTRAC, OSFI, etc) about this issue and I hope others will do the same. I am starting to think that an organization like openmedia.ca might be a partner to the BTC community... but I digress. I like many others here am fascinated by the idea of Bitcoin as a standalone currency but I also am very firmly convinced that the underlying technology will lead to ancillary uses of the coin (or some variation of the current blockchain) that are extremely compelling. People far smarter than me have expounded on these ideas and I think we can all agree they have quite a bit of merit. I would like see this amazing technology and the associated ecosystem move out of the "shadows" and ease into the mainstream. Is the coin 100% ready for the masses? Probably not by a longshot but I think we are at the stage where we either start thinking of pushing for mainstream acceptance in the legal sense (if not actual adoption as a currency) or accept being relegated to the status of novelty item for the forseeable future. My two cents.

Also I think the idea of a Montreal meetup is really cool ... seems like there are probably at least 5 - 10 of us who are pretty active? I'm down if people want to meet up...
Post
Topic
Board Bitcoin Discussion
Re: The First Montréal Restaurant to Accept Bitcoin
by
br00t
on 16/02/2012, 19:32:36 UTC
We're based in Montreal and interested in getting in on the fun/work as well!
Post
Topic
Board Project Development
Re: .NET Wrappers for: MtGox API v0, v1, TradeHill
by
br00t
on 09/02/2012, 16:59:46 UTC
Post
Topic
Board Project Development
Re: .NET Wrappers for: MtGox API v0, v1, TradeHill
by
br00t
on 09/02/2012, 16:21:49 UTC
Hi All,

As promised, just posted first release of MtGoxWrapper to codeplex. This release includes a very simple windows form app which queries the MtGox ticker via the HTTP API at 10-second intervals and displays the results. Changes will be pushed to Github shortly.

https://mtgoxwrapper.codeplex.com/releases/view/82004

Enjoy!

br00t
Post
Topic
Board Project Development
Re: .NET Wrappers for: MtGox API v0, v1, TradeHill
by
br00t
on 09/02/2012, 15:12:43 UTC
Hi Seal,

For a number of reasons, we will not be making our trading bot public (for the time being). We would prefer to focus on contributing tools to the community that can speed innovation and increase adoption of the beloved coin Smiley  We will however, be releasing some sample apps and proper documentation in the very near future so people can start using our libraries without too much digging. If you have projects, suggestions, requests, etc don't hesitate to give us a shout!

Cheers,

br00t
Post
Topic
Board Project Development
Re: .NET Wrappers for: MtGox API v0, v1, TradeHill
by
br00t
on 07/02/2012, 16:57:03 UTC
Hi Fireball!

Sorry for the late reply. We would be very happy to do the ICBit integration :-) Can you please PM me to discuss at your convenience?

Thanks!

br00t
Post
Topic
Board Project Development
Topic OP
.NET Wrappers for: MtGox API v0, v1, TradeHill
by
br00t
on 02/02/2012, 05:32:44 UTC
MTGOX WRAPPER:

Written in C#, very simple wrapper around v0 and v1 HTTP API. Sorry, streaming API (Socket.io) not yet implemented. This will change shortly!

GitHub (Git):

https://github.com/br00t999/MtGox-Trading-API-Wrapper

CodePlex (TFS, Mercurial, SVN):

https://mtgoxwrapper.codeplex.com/

TRADEHILL WRAPPER:

Written in C#, very simple wrapper around TradeHill HTTP API.

GitHub (Git):

https://github.com/br00t999/TradeHill-Trading-API-Wrapper

CodePlex (TFS, Mercurial, SVN):

https://tradehillwrapper.codeplex.com/

Hope someone finds this helpful!

Coming soon: CAVirtex, CryptoX, Intersango, BTC-e
Post
Topic
Board Beginners & Help
Re: Bitcoin Businesses and Developers, Let's Get Started!
by
br00t
on 02/02/2012, 03:32:58 UTC
Greetings everyone!

I represent TAYPE International https://taypeinternational.com, a Canadian company with over 10 years of IT consulting expertise and operations both north and south of the border. We have just released two small open-source projects:


CryptoX, BTC-e and Intersango coming soon! There is nothing particularly revolutionary about this code, just a good old fashioned .NET wrapper provided as a convenience for the M$ developer community. Hope it helps someone out there! Feel free to contact us with requests!
Post
Topic
Board Beginners & Help
Re: Introduce yourself :)
by
br00t
on 02/02/2012, 03:21:24 UTC
I am br00t greetings fellow enthusiasts and businesspeople :-)