I was hoping someone was feeling charitable and could give me a rough idea of how the programming logic behind high frequency automated strategies work; this is partly out of idle curiosity but also so I can better understand how various trading applications work. I'm not interested in strategy logic, just how receiving market data and checking for signals is prioritized / triggered. Ultimately, I'm curious about how this is properly done on a large scale (say 1000s of symbols) but I think I need to start with baby steps and basic concepts.
I currently use Amibroker to autotrade and that will loop through all symbols and check for signals on a fixed time interval. Could be wrong, but I'm guessing that the HFT space is entirely event driven rather than endless looping. Having said that, I can see the one potential advantage to the looping approach is that you evaluate the latest market data when you're ready for it (whenever each loop executes) rather than getting a backlog of tick events that you're signal checking code may not be able to keep up with. I guess that's the gist of my question:
-If you're using a tick event driven model and you receive 5 tick events in the time it takes to process the strategy logic once, how is that typically handled? Does it:
1) Finish executing the code in response to the first tick then ignore the 2nd,3rd, and 4th and go to the 5th (most recent)?
2) Execute the code in response to every single tick (2nd,3rd,4th,5th) and have to play catch up?
If it's #1, then I can't see much of a reason to ever use the interval approach...at least not on a single symbol -- that much isn't clear to me yet on a large multi-symbol portfolio but that's a question I'll save for now. Appreciate any insight on the above.
I currently use Amibroker to autotrade and that will loop through all symbols and check for signals on a fixed time interval. Could be wrong, but I'm guessing that the HFT space is entirely event driven rather than endless looping. Having said that, I can see the one potential advantage to the looping approach is that you evaluate the latest market data when you're ready for it (whenever each loop executes) rather than getting a backlog of tick events that you're signal checking code may not be able to keep up with. I guess that's the gist of my question:
-If you're using a tick event driven model and you receive 5 tick events in the time it takes to process the strategy logic once, how is that typically handled? Does it:
1) Finish executing the code in response to the first tick then ignore the 2nd,3rd, and 4th and go to the 5th (most recent)?
2) Execute the code in response to every single tick (2nd,3rd,4th,5th) and have to play catch up?
If it's #1, then I can't see much of a reason to ever use the interval approach...at least not on a single symbol -- that much isn't clear to me yet on a large multi-symbol portfolio but that's a question I'll save for now. Appreciate any insight on the above.