I think, for the benefit of myself and others, I'm going to detail the development of a trading system from scratch in C++. I've only been working on implementing a blackbox for Genesis only recently. My past experience was as a contractor writing software to manage and distribute quote data from feeds, and Genesis was the cheapest alternative to getting data similar to what I had already seen with ITCH and ARCA.
I'll post screenshots as I progress and possibly UML diagrams detailing the architecture of the system. Since I've already begun, I'll try and keep the reader upto date on where I'm trying to go. I'm encourage readers to interact with me so I take this to completion with a valid system. Dare I dream, I'd like to be a one-man market-maker someday.
If you have strategies you'd like to see run on this framework, feel free to suggest. Obviously, I don't expect to get very many good ones and believe I'll be going it alone for the most part; however, I am open to ideas.
Here is my rough, ultra-beta application's screenshot, along with Genesis Laser and E-Signal in the background to help me understand the progress:
<img src="http://www.losingtrader.com/images/incisor1.jpg">
The "Incisor Trade Runner" is the front-end plain alpha-blended window that reports during the course of the day on what's going on in the market. Initially, I didn't even want a GUI; however, the GTAPIB API that Genesis provides requires an HWND parameter. If that parameter is a console window, the application fails. The application does a lot more than its plain white window suggest, but it's still primitive in comparison to the applications we were running in the former hedge fund I was employed at.
The menus allow you to subscribe to various products, control the degree of alpha-blending (so you can compare the bot's internal variables to what's going on in the market on the same screen), and let you manage your connection state. Right now, the main window is nothing more than an edit control onto which the application reports information. Most of the critical information right now is sloppily reported with OutputDebugStringW() [yes, performance penalties and all] into a WinDBG window pane on the side -- I will show that as well in the future.
The features so far:
- Can process and record Level-1 and Level-2 quotes from NASDAQ and the NYSE
- Has a hacked-together cheap database [that could use work] to store this information
- Is capable of maintaining several NASDAQ books at the same time, though I have decided to focus on just one product in the time being for trading. [NTAP]
Since I'm not much of a DBA, my database is garbage. However, I'll detail that as well. Right now, the C++ application uses ADO with worker threads to commit data from write queues into the database.
I am currently in the process of writing a "product manager" that allows me to track and maintain state variables for multiple products [i.e., stocks] that are traded in the system. When I come back, I will detail the architecture I envision for this.
Tonight, I intend to clean up the child-windows inside the main application window and try to add something to reflect analysis of quote data and level-2 data.
I may move this thread to a personal blog as soon as I clean the C# ASP.NET code for presenting information in that blog correctly.
I want to take the application from start to finish with an actual trading strategy.
I'll post screenshots as I progress and possibly UML diagrams detailing the architecture of the system. Since I've already begun, I'll try and keep the reader upto date on where I'm trying to go. I'm encourage readers to interact with me so I take this to completion with a valid system. Dare I dream, I'd like to be a one-man market-maker someday.
If you have strategies you'd like to see run on this framework, feel free to suggest. Obviously, I don't expect to get very many good ones and believe I'll be going it alone for the most part; however, I am open to ideas.
Here is my rough, ultra-beta application's screenshot, along with Genesis Laser and E-Signal in the background to help me understand the progress:
<img src="http://www.losingtrader.com/images/incisor1.jpg">
The "Incisor Trade Runner" is the front-end plain alpha-blended window that reports during the course of the day on what's going on in the market. Initially, I didn't even want a GUI; however, the GTAPIB API that Genesis provides requires an HWND parameter. If that parameter is a console window, the application fails. The application does a lot more than its plain white window suggest, but it's still primitive in comparison to the applications we were running in the former hedge fund I was employed at.
The menus allow you to subscribe to various products, control the degree of alpha-blending (so you can compare the bot's internal variables to what's going on in the market on the same screen), and let you manage your connection state. Right now, the main window is nothing more than an edit control onto which the application reports information. Most of the critical information right now is sloppily reported with OutputDebugStringW() [yes, performance penalties and all] into a WinDBG window pane on the side -- I will show that as well in the future.
The features so far:
- Can process and record Level-1 and Level-2 quotes from NASDAQ and the NYSE
- Has a hacked-together cheap database [that could use work] to store this information
- Is capable of maintaining several NASDAQ books at the same time, though I have decided to focus on just one product in the time being for trading. [NTAP]
Since I'm not much of a DBA, my database is garbage. However, I'll detail that as well. Right now, the C++ application uses ADO with worker threads to commit data from write queues into the database.
I am currently in the process of writing a "product manager" that allows me to track and maintain state variables for multiple products [i.e., stocks] that are traded in the system. When I come back, I will detail the architecture I envision for this.
Tonight, I intend to clean up the child-windows inside the main application window and try to add something to reflect analysis of quote data and level-2 data.
I may move this thread to a personal blog as soon as I clean the C# ASP.NET code for presenting information in that blog correctly.

I want to take the application from start to finish with an actual trading strategy.