I'm attempting a "hello world" of live algorithmic trading.

A script that pulls in tick data, presents it visually, and allows me to buy / sell at the press of a button.

Also a toggle between { fake money + historical data } or { real money + current data }

I'm entirely new to this scene; my background is in maths / computer programming.

Also my enquiry is mainly academic; I would like to learn the basic principles through creating basic functional machines.

I believe that what I need to do is find some broker that offers a web API, and allows free or low cost accounts.

How can I find such a broker? Every one I have found so far requires an initial deposit of several hundred dollars or more.

I'm hoping to find some broker that allows you to open a free account, and practice with historical data and fake money, and then allows you to trade with real money, but with tiny amounts, say $1.

Intuitively I would expect such a service to exist, as it would be a good way to attract a customer base. And I would expect so go to their website and see maybe a "Hello World" style script written in Python, to help get you started.

But I can't find any!

Is there anyone offering this service?

And is that question is off topic, then my apologies, and may I ask instead:

Where would be an appropriate forum for such an enquiry?

EDIT: http://www.tradingwithpython.com/ looks good!

EDIT (August 2016): https://www.quantopian.com is where it is at!

  • 1
    $\begingroup$ There are certain economic quanta in the values of financial instruments, so you are effectively limited to micro-transactions in FX or Bitcoin, both of which I wouldn't recommend as a starting point for a serious academic inquiry. $\endgroup$
    – madilyn
    Feb 6, 2014 at 1:01

2 Answers 2


Python / R (my favorite) / mathlab are fine to make a quick analysis, visualize data, prototype and backtest your strategy. But I'm not aware of any trading platform that runs with them.

Keep going with whatever you feel comfortable for prototyping, but I would invest time to learn C (or even C++ on phase II, if you have enough time) as many trading platforms have C-like languages where you could implement the results of your analysis.

I would suggest a desktop platform, instead of web-base ones.

I started with MT4 (metatrader), because: - mql4 language is C-like what means in the future you could probably move your results to other platforms with minor problems. - There are plenty brokers (specially Forex ones) that offer demo accounts for MetaTrader with 0$ cost. (example: FXCM, ... - search on the web, you'll find a lot of them. Make sure you get the demo account for MT4) - it runs on Windows, but I've seen it also running on Linux (using wine), so it may even work on Mac too.

Finding something similar for stocks is going to be more difficult. (I haven't find any). I remember using Visual Chart, where if I'm right you have free end-of-day data (even for 1 m time series) that you could export as xls or csv. It may be useful as a data source for stocks worldwide (US & Europe). (www.visualchart.com). They use Visual Basic if you want to program something. But with a little bit of practise you may build your program in C / C++, make a windows DLL and call it from within visualchart ...

It could be great if anyone has something else ...

  • $\begingroup$ Why waste time in C instead of going straight to C++? $\endgroup$ Feb 9, 2014 at 15:21

I think Interactive Brokers offers everything you want. They do have a low cost student(by age) offering but it's not free. You can test your program for free if you use a demo account but it's very limited.

They do have paper trading and live trading accounts that are better than the demo account but you must pay for real time data. This is required even if you just want historical data and there's a limited amount of that.

There are no python examples from IB but there is an IbPy open source solution that I've never used. There are plenty of C and Java examples from IB.


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