Hello Quantopians!
I am new to algorithmic trading (and trading in general). I do not have much experience in programming other than some exposure to VB, agent-based modeling in NetLogo, and a little Javascript/PHP here and there. My background is purely theoretical in logic and some mathematics (particularly probability theory).
I have become interested in trading and have wondered if some of my theoretical ideas would be possible to implement in a computational framework. I was hoping that the knowledgeable Quantopian community might have some insight on things that I have been considering.
So I'll begin by sketching a strategy that I have in mind while posing some questions throughout.
First, can qualitative data---analyst opinions in particular---be accessed within the programming environment? I am not sure what the data source is for Quantopian, but I know that MarketWatch, Yahoo Finance, and various other sources of financial data provide qualitative opinions from analysts, e.g. "BUY", "HOLD", "SELL. If yes, great! If no, then let's suppose that in the future such data may be accessed.
Next, taking the data or the supposedly accessible future data, I would like to assign numerical values to each qualitative attitude (BUY, HOLD, SELL). Using numerical values, for each opinion O, compute the average of the values as the aggregated opinion, i.e. Sum(O1, O2,..,On) / n = V. The aggregated opinion could also be a weighted average where each opinion O is assigned a weight W. This might be useful if certain analysts or institutions are better or worse in forecasting.
The latter model is simple and should be easy to write in code. What I would want to do with this model is to execute a loop over a large set of stocks and return a list. The list would be organized by qualitative categories. To determine which category a stock S belongs to, we set threshold values (assigned by the user) where a threshold A sets the lowest aggregated opinion that one would be willing to accept as a "BUY" and a threshold R sets the highest aggregated opinion that one would be willing to reject as a "BUY". If Sum(O1, O2, ..., On) / n = V for any stock S and V is in the open interval (R,A), then the aggregated opinion would neither be sufficient to reject or accept as a "BUY" and consequently turns out to be a "HOLD".
Ultimately, the algorithm would produce a list covering a large set of stocks that would be impractical for an individual to go through and calculate the aggregated opinion for each member of the set. Additionally, the list would update in real time so that the user is provided with the most current information.
Of course, I don't think that this is the end of the story. Rather, further backtesting could be done with a group of stocks (ideally with the ones that are in the category "BUY"). The proposed strategy is just meant to provide one with a guide.
Does anyone know if something like this would be possible or has been done?
Obviously, I would need to get up to speed in programming before attempting something like the above, but I figured I would ask around before embarking on something that I am unsure of.
Thanks for reading!