Hello,
I have 4 years of experience programming financial analysis tools. My portfolio contains only one item (a personal project) because all of my projects have been under an NDA. However, the one item is very relevant to this project (a correlation matrix built from historical forex data).
You should hire someone that knows Python's limitations, how to optimize Python, and convert Python to C (if needed) and/or build C bindings for Python. That person is me.
Why?
Let's say you want to find the highest positive correlation between two stocks listed on the NYSE and you want to use the daily close price for the computations. Correlation has to be calculated for all permutations (e.g., correlation of A,B, correlation of A,C, correlation of A,D, and so on and then correlation of B,A; B,C; B,D etc.). That means, correlation has to be calculated 7,837,200 times. Let's say the data set contains 252 close prices for each symbol (1 year's worth of data).
Consider how many calculations have to be done just to get one correlation value: covarianceX,Y / (stdevX * stdevY) (>3026 calculations for 252 prices). That is at least 23,715,367,200 calculations. Think about if you wanted to calculate this over 20 years of daily prices (~20*3026*7,837,200) ...