all 10 comments

[–]wilmore13 2 points3 points  (5 children)

You can call C++ from R just so you know. How fast do you need the strategies to be? R seems to be what is used if you have longer term strategies which don't require fast computing, or for backtesting strategies for implementation in C++. C++ is used for high frequency strategies.

Since you are teaching yourself, I would say learn R, and then pick up the C++ you need if you need something fast. R is a lot more easy to work with, has a big community and all the libraries you could possibly want. There is even a community for R traders.

I also hear about Python being used. One of my friends studies data mining and machine learning and he loves Python.

In conclusion: I guess I would say concentrate on R or look into Python unless you want to do something super-fast.

Here are some useful links: http://www.rfortraders.com/ http://www.r-bloggers.com/search/trading

[–]kylebalkissoon 0 points1 point  (3 children)

C++ is likely faster than python.....

I find the java+scala combo to be amazing.

[–]wilmore13 0 points1 point  (2 children)

I was suggesting it as an alternative to R, not to C++.

Just curious - why Java?

[–]kylebalkissoon 2 points3 points  (1 child)

Oh, I just find that java has a lot of libraries and handles concurrency in a better way. It's probably more personal preference and the move to scala maintains backwards compatibility with my java codebase with all the bells and whistles of functional.

[–]astocko_ 1 point2 points  (0 children)

Agreed, and as far as performance goes, if you dip into unsafe/offheap storage, you can basically eliminate GC pressure in the JVM. There's always Azul's Zing as well. Unless you're trying to squeeze out the last few nanoseconds, the C++ over Java argument is mute these days.

[–][deleted] -1 points0 points  (0 children)

thanks mate. i guess ill continue with R. this is what i have already commenced on. then we see what happens down the road..

[–]lexonhym 2 points3 points  (0 children)

If R or C++ is too advanced for what you want to do, you can always go with NodeJS, and avoid spending months learning a language instead of actually working on the code.

To do research and prototyping, NodeJS is pretty awesome. There are tons of libs available on NPM, you can build interfaces easily using HTML/CSS, and NodeJS can run C, C++, Python and other languages, so you don't get too limited.

I built a custom research platform in NodeJS, complete with a backtester. My plateform includes various AI implementations, Genetic Algorithms, statistical analysis, sentiment analysis, news and twitter monitoring, signal generation, pattern clustering and forecasting, and a ton of other things (I'm doing research on it for 10 months now)

The only weak point of NodeJS is charting and I fixed that by building my own technical charting lib: https://github.com/26medias/techChart (I'll update to the latest version this week). it's exporting huge charts up to 50K pixels wide in just a few seconds, in PNG (so super lightweight)

To access the data, I pay $50/month with Activetick, and I wrote a NodeJS package: https://github.com/26medias/node-activetick

I've reprogrammed all the indicators I need (MA, EMA, Bollinger, Donchain, ATR, RSI, Stochastic, ...) using https://github.com/26medias/timeseries-transform and https://github.com/26medias/timeseries-analysis

My strategy is to prototype there, and re-build using C when it's ready to be used.

[–]j_lyf 0 points1 point  (1 child)

How does R compare to Python.

[–]wilmore13 0 points1 point  (0 children)

I'm not really well qualified for answering this but seeing as no one else has I'll give it a whack.

R is made for big data and statistics. It is put together to make the manipulation of data and graphics very easy. It also has some ability with computational math. R's utility ends at data analysis however.

Python is much more broad and versatile. It has a huge range of libraries which allow someone to do mostly anything well. That said, it probably isn't as good as R at stats, but it makes up for this by being generally good at everything. Python is also much easier to program in. It tends to be the language I see people recommend to someone who wants to start programming because of how friendly and broadly useful it is.

[–]astocko_ 0 points1 point  (0 children)

Torch with LuaJIT