Good Luck!
On Friday, July 24, 2015 at 2:19:24 AM UTC+2, [email protected] wrote: > > Hi Danny, > > I've been using Julia full-time for close to a year now for my research in > financial econometrics. Once you work out the (fairly simple) rules for > getting good performance out of Julia, the speed is amazing! However, be > aware that there aren't a whole lot of packages for working with > time-series in the official repository yet. It works for me, since > typically most of the things I want to do haven't been implemented in other > languages anyway, so if I've got the write it, I might as well write it in > a fast language that is easy to use. > > I will be adding some time-series packages to the official repository soon > though. I'll do it when Julia v0.4 comes out (with its new documenting > capabilities). Packages will include dependent bootstraps (with optimal > block length selection procedures), forecast evaluation (diebold-mariano, > reality-check, SPA test, etc), ARIMA models (the current ARIMA stuff in > TimeModels only allows you to simulate I think), bandwidth selection > procedures, and HAC variance estimators. > > Regarding workflow, the data-frames package works well, although > personally I don't use it. My preference is to store the time-index for any > time-series data in a sorted vector and then keep the corresponding data > in a vector or matrix (again, I'll add my package for sorted vectors and > sorted data structures to the official repository once v0.4 comes out). > > For the specific problem you describe in your email, the code provided by > Andreas should do the job. However, be aware, you probably won't see much > performance improvement doing that task than you would from doing it in R, > in fact, it may even run slower as my understanding is that reading data > from csv files is currently a bit slower in Julia than R (personally I find > it more efficient to store all my data in HDF5 format, and the Julia HDF5 > package is very nice). Computing a covariance will run at about the same > speed in both languages, since R's function for this is essentially just > calling C. Where Julia really shines for working with time-series is when > you need to implement something that hasn't already been written in C, and > that you don't want to have to write in C yourself. Particularly large > benefits if it is an algorithm that can't be vectorized (and so will run > slow in R or Matlab). > > If you want to see the current state of the packages I'll be adding in > v0.4, just check my github page: > > https://github.com/colintbowers > > Be aware though, most of these are still actively being developed, and > there are a few bugs here and there that I'm aware of but haven't fixed or > documented yet. I'll sort them out before adding them to the official > package list. > > Cheers, > > Colin > > On Wednesday, 22 July 2015 23:08:52 UTC+10, Danny Zuko wrote: >> >> I am new to Julia and would like to try it to deal with financial time >> series. I read there has been a good bunch discussions within the Julia >> community about it (for example, some interesting ones on indexing). >> >> As a test, I would like to read some 100MB .csv file containing prices >> into an array (or data-frame?), computing their logarithmic returns and >> eventually compute a covariance matrix. >> >> Something that in R I might do like: >> >> ## Read CSV file and store contents in a dataframe: >> ## - fields are separated by semicolons, >> ## - first line contains column names, >> ## - first column contains row names, >> ## - decimal separator is a comma. >> prices <- read.table ("prices.csv", >> sep = ";", header = TRUE, row.names = 1, dec = ",") >> >> ## Convert prices into logarithmic returns by applying the diff function >> on >> ## the log of the prices: >> returns <- apply (log (prices), 2, diff) >> >> ## Compute the covariance matrix for the logarithmic returns: >> returns_covariance <- cov (returns, use = "pairwise.complete.obs") >> >> As far as the current state of the art is concerned, which are the latest >> packages that are considered a reference at the moment? Is it TimeSeries.jl? >> >
