I have been an observer on this forum for some time now, not sure why now, but feeling like making my first contribution.
There are a lot of different ways people approach trading, it is remarkably difficult to find those who actually do have a working mechanical system, which is required for any automated trading. Such system itself has to be able to generate entry/exit signals, determine positions size and maximum positions number. All of that is done using some high-quality data source which is continuously updated and has enough data to backtest the system's performance on. Basically, that system is responsible for all the trading rules. How often entries are done greatly varies, you can have anywhere from few per second to few per month. The more trades - the more expensive your data and execution infrastructure/software will cost.
Assuming you have a mechanical system - you need to figure out how to run it (automated trading). By running I mean - actually entering orders based on the system's signals with your broker, monitoring and recording executions, limiting the number of concurrently open positions and (preferably) generating reports along the way. Perhaps few more things, depending on a market and whatever is required to follow that mechanical system.
Assuming you have both - most retail traders actually do some semi-automation or just execute manually in accordance with their mechanical system rules. Meaning - at the best of their ability. You'll hear lots of complains from them - how their actual performance wasn't good, but their system still works in backtesting. If your system gives you a few trades per minute - that's beyond a human ability to execute reliably to long enough time, not sure how many people are trading those, I'd imagine most individual mechanical traders execute a few trades per day or even a week kinda systems.
On the other end of the spectrum - full automation of execution. It is very possible but outside of technical abilities for most. Some hire a developer. 100% automation of execution is not unheard of but is very rare. In that case, a trader is reviewing result/reports generated by the automation at least daily and decides if all runs within expected parameters. Rational to automate ranges from - don't want to stay glued to a screen whole day to impossible to execute manually. Let's say if you're trading Russel 3000 universe of stocks and have many signals from your system (typically are conditional entry rules if the price hits certain level) - chances are that you will miss your entries, too many stocks to watch.
Perhaps an example would also help. This is just 1 out of a million ways how to do it.
I trade US Equities and have a number of mechanical systems which generate signals for entries and exits, as well as position sizes and maximum numbers of open longs/shorts depending on wherever market conditions are favorable for that system or not. Execution is 100% automated.
How my automation setup works:
Normally there are ~30-200 signals for every day coming from step #1, execution software does a lot of work but actual executions are very infrequent, ~1-2 new entries per day on average, positions are held from 1 to 10 days. On some days there can be too many signals triggering simultaneously and execution software stops opening new positions after reaching pre-defined max for long/short/per strategy. During market hours execution software dumps status reports capturing how far prices are from my entry points etc (mostly for troubleshooting if something goes wrong). After market close I run "/trader eod" and receive a detailed
- A batch job runs on research machine with backtesting software every 1 hour to (a) update data (b) run the mechanical system on the latest data and generates next day signals (c) run the system on yesterday data to see which signals triggered according to backtest (d) prepare mini-market data dump with key indicators and values for system execution (e) send all of that to a data store on AWS.
- "trader", my execution software runs 24/7 on a Linux server. And does 3 things: (1) executes trades according to the system signals (2) periodically picks up new data from the data store (3) sends out alerts/reports on key events (4) provides APIs for remote control via Slack Bot
- "trader" has a Slack bot that gives me an ability to get all-important reports and receive alerts if something important happened. Since backtest results are run continuously and fed to "trader" app, it automatically does a comparison of live vs backtest execution which is extremely important when running a mechanical system
End of Day report with:
If next day data is received, live trades match backtest - all is good and nothing to do, that's what happens on most days. Then can quickly browse thru traded charts to feed subconscious with the info for new strategies ideas or betterment of current systems. All observations are written to daily journals.
- Status of next trading session data (how many signals loaded/when they were generated etc)
- Live vs backtest trades
- Account balances
- Open positions and if there are exits anticipated next day
Example of execution report below (intentionally detailed)
![]()
Just FYI there was no image attached (at least none that I could see).
How long did it take you to develop this approach?