What does it take to build a stock trading platform?

I’m just 11 days into learning how to code coming from knowing nothing and it has been great thus far. One of my goals which motivate me to keep learning is to develop a stock trading platform. By that I’m referring to a web based or desktop based program which allows stock traders to buy and sell stocks in real-time. Although I have come to accept that this will take some serious time and skill to get to this point, I’m confident that day will come.
In the meantime, I would love to hear your thoughts on what it would take to build a stock trading platform? This will help me keep my eyes open for specific programming topics as I continue learning. Thank you.

Well, you want to build a fullstack app, which has its backend connected with a frontend app. This is the simplest possible answer to your question. I would suggest you to follow the FCC curriculum and to give yourself time to grasp all the necessary things.
Everyone can learn to code and then build something cool and useful. So just keep it up. :smiley:

For example, in one of the FCC curriculum’s projects, you have to build an app where you can check out stock prices. It’s a very simple app with a very few features. Building a real trading platform requires a lot more of coding and probably you will need other coders to help you build it. But working on this simple app, you will get some sense of what does it take to build the app you want.

2 Likes

Hello there, I think this idea would be great, but you need to have a lot things taken in sight. This is a trading app so you will need a real time tracking on currencies and wall street journals to have a full list of ongoing tradings. So to say, I don’t know if that is easy to get. You can take an example, if you want, look at Investous app and you will be able to see how a perfect trading platform should work, more than that you can speak with a Investous broker and you will have a little bit more information, in other words if you want to do a great trading app you need to take an example from a great trading app. I am trading on Investous for a long term and I am pretty sure this is the best and the safest place for tradings on CFD

Unless you are planning to open your own brokerage, you’ll likely need to learn to consume an API, from either your server or client platform. You’ll need serious authentication/authorization (so learning OAuth), a good understanding of data structures, and the like. And definitely, a solid understanding of the asynchronous nature of javascript - front-end delays can cause serious repercussions on trading.

If I were to arrange the areas of study, and without really knowing what sort of back-end language you’d be looking at (so keeping the back-end pretty abstract), I might suggest:

  • As much javascript as you can cram in, largely for your front-end work but also in case you’re looking at a JS backend.
  • JSON/XML/CSV - whatever API feed formats you can. Get comfortable with consuming data from third-party sites, and it can come in a wide variety of formats.
  • Authentication and authorization - your consumers will need to log into your site, and likely both your site and your users will need to log into a brokerage somehow.
  • Database / data structures. Both front and back end will need a consistent structure for the data, and that will need to be kept current.
  • Sockets, or some sort of push technology - your front-end system will need to allow for real-time updates to brokerage/back-end changes.

That would be a list of where I’d start. Obviously, a part of that would also be whatever back-end language you choose: Python, Ruby, PHP, Javascript… that is a learning curve too. And that would need to generate its own API, as well as consuming other third-party APIs.

It’s a bit of work, may take quite some time to realize. But it is do-able. Might be something you consider opening up, having a github repository and forming a core “working group”, where each of you work on certain parts of it. It’s a lot for one person to manage.