The developer created a custom .NET 10 application to filter 13,420 active stock tickers from a database of 16,066 entries. The system processes 14.5 million daily bars stored in a local SQLite file, which occupies approximately 2 GB of disk space.
The application uses a specific filtering pipeline, including trend analysis based on EMA50 and EMA200, relative strength ranking, and volume constraints. The system excludes delisted or inactive stocks to prevent data distortion during relative strength calculations.
Performance optimizations include using a single sequential database query for the last 500 trading days, manual date parsing, and string interning for ticker symbols to reduce memory overhead. The scanner processes data in parallel using PLINQ while ensuring thread safety.
The relative strength rank is calculated as a 63-day return percentile among active stocks. To ensure consistency, the system uses stable sorting and handles single-element samples by assigning a neutral 50th percentile rank.
The architecture relies on local execution without external servers, using xUnit for testing and ScottPlot for visualization. Error handling in the parallel scan ensures that a failure in processing a single ticker does not terminate the entire operation.






