For a software analyst, is a trading system any different software, well initially no, its no different than a data processing system, but the growth in "trading mechanisms", types of instrument and more importantly the traders (or broker's) requirement to tackle other competitors has made it rather more complex. Uh! oh!, i just introduced three new terms "INSTRUMENTS" , "TRADING MECHANISMS" and "Investments Bankers"(just sneaked in) well these are reasons we software engineers impose romance with both financial terminologies along with computing expertise, but I cant carry a blind man with me, can I ? so lets just give you some light here:
"Instruments" are the underlying products (viz. stocks) , the contracts (a future contract) or to be clear, the entities which are traded, the symbols along with price.
The software gods has always mentioned, the hardest part of a project delivery is a transperant requirement gathering. To start with, a stock exchange is like a dean of a college. Trades cannot complete (not in all cases) without the consent of the stock exchange. They act as a stage where both the buyer and seller exchange stocks. You got to be carefull, I just sneaked a new terminology (clever me!), "TRADING CYCLE", honestly to be precise its a algorithm to complete a trade, but not something like a pseudocode, the bankers follow a series of steps from, authenticating the clients monetary capabilities validating their information till billing them for the service. Dont panic! I will try my best to give you the best to understand all of this from both a coder's and a little from the traders point of view. Now lets switch paradigm, consider a trading system as you yourself. I just need you to do one one simple task, buy me a stock of a company XYZ. Hoping that you already switched your existence (being a trading system), Now in order to buy a stock, your first few questions are:
where would you buy/sell:
Ans. In a stock exchange, so from a coders point of view you would like to analyze the a few environmental constraints: connectivity to the exchange, format of data to converse with the exchange servers (the exchange understandable protocol), details about the trade(amount to buy, price to buy etc), confirm your trade execution.
How will you buy ?
By submitting a buy/sell order to the exchange. Verification of your positions in your account. But what language you converse with the exchange. How will you understand what the exchange had to say about your trade, whether it got accepted or rejected.
Okay, I got your point! perhaps I got to build the bridge before taking you to next step, how about a diagrammatic illustration:
Well will drill down the individual components, but first learn/evaluate the above diagram
The trades can flow to the exchange in various different ways. The trader can directly send to the exchange, or send it to another broker who in turn can send it to the exchange depending upon his infrastructure.