A multi-factor stock selection system and the method therefor
Field of the invention
The present invention relates to an electronic financial tool used for stock market, specifically, an internet-based stock selection system and a stock selection method, integrating both fundamental and technical analysis techniques for individual and institutional stock traders to select their preferred stocks.
Technical background
Stock market is always concerned by the individual and institutional share holders. As more and more people are involved in the stock market in China, there is growing demand for stock selection tool to help the investors to extract the best stocks from the mass amount of stock data, based on the investor' s consideration on different aspects of the data of a specified stock.
In the conventional stock trading systems, there are few sophisticated tools to help the investors to select stocks based on their own consideration on various aspects. Fig. 1 is an illustrative diagram of a conventional stock selection technology used on the internet provided by, for example, Microsoft Investor and DJL Stock Watcher. As shown in Fig. 1 , a user can generate one or two search criteria, and the stocks selected by this technology are ranked based on one and only one individual criteria.
Obviously, this technology has the following defects: selection criteria are limited; performance of a stock selected cannot be reflected in a multi-facet manner; and consequently, the stocks selected tend to be less satisfied.
Object of the invention
The object of this invention is to provide a flexible, easy-to-use, web-based stock selection system and the method therefor to facilitate the stock selection process for individual and institutional stock traders. This stock selection system, which is also called "New Eight-factor Stock Selector (NEFSS)" , can recommend the best stocks that meet the trader' s multiple selection criteria; integrate the best analysis techniques and modules that practically and theoretically proved valid and effective; provide a friendly user interface for the trader; help the trader to manage his investment portfolio in the long run.
Summary of the invention
The present invention provides a stock selection system, comprising: at least one computer system; stock data receiving means for receiving raw stock data from external stock information sources; a database for storing said raw stock data; stock data pre-processing means for processing the stock data from said database to obtain factor data; factor storage means for storing the processed factor data; input means for presenting a user a plurality of financial indicators and receiving search criteria set by the user for each of said financial indicators; selection means for searching stocks which meet the plurality of search criteria using the factor data stored in the factor storage means according to a predetermined algorithm, and selecting the
stocks as recommended stocks; output means for presenting the selected stocks to the user.
The present further provides a computerized stock selection method , comprising the steps of: receiving raw stock data from external stock information sources; pre-processing the raw stock data to obtain factor data; presenting a user a plurality of financial indicators and receiving search criteria set by the user for each of said financial indicators; searching stocks which meet the plurality of search criteria using said factor data according to a predetermined algorithm, and selecting the stocks as recommended stocks; presenting the selected stocks to the user.
Brief description of the drawings
Fig. 1 shows an illustrative diagram of a conventional stock selection technology used on the internet;
Fig. 2 illustrates the architecture diagram of the stock selection system according to the present invention;
Fig. 3 illustrates main process according to the stock selection method according to the present invention; Fig. 4 illustrates the selection process according to an embodiment of the stock selection method according to the present invention;
Fig. 5 illustrates the logic and relationships among these models in one embodiment of this invention;
Fig. 6 shows the architecture diagram of an embodiment of the stock selection system;
Fig. 7 shows the process executed in the preprocessor in the stock selection system;
Fig. 8A shows a sample user interface provided on the basis of the internet for the user to input the search criteria;
Fig. 8B shows an interface for presenting the user with the selected stocks in a ranked manner; Fig. 9 illustrates the main data flow diagram of the stock selection operation in an embodiment of the stock selection system of the present invention;
Detailed description of the preferred embodiments
The preferred embodiments of the present invention will be described below with reference to the drawings.
Fig.2 shows the illustrative diagram of the stock selection system according to an embodiment of the present invention. As shown in Fig. 2, the stock selection system comprises: stock data receiving means for receiving raw stock data from external stock information sources; a database for storing said raw stock data; stock data pre-processing means for processing the stock data from said database to obtain processed factor data; factor data storage means for storing the processed factor data; input means for presenting a user a plurality of financial indicators and receiving search criteria set by the user for each of said financial indicators; selection means for searching stocks which meet the plurality of search criteria based on the processed data in the fast storage means according to a predetermined algorithm and selecting the stocks as recommended stocks; output means for presenting the selected stocks to the user.
The selection means may be a stock selection server integrating different financial models(will be described later) for selecting stocks. The input
means and output means may be user interfaces provided to the clients on the basis of web browsers.
Fig.3 illustrates main process according to the stock selection method according to the present invention. As shown in Fig.3, the raw stock data are received from external stock information sources; the raw stock data are preprocessed to obtain common used financial factors, such as the factors listed in Table 1 ; presenting a user a plurality of financial indicators and receiving search criteria set by the user for each of said financial indicators; searching stocks which meet the plurality of search criteria based on the factor data in the factor data storage means according to a predetermined algorithm and selecting the stocks as recommended stocks; and presenting the selected stocks to the user. As shown in Fig. 3, after conducting a selection, the user can return to the criteria setting step to set other criteria and conduct another selection.
The idea of this invention is to integrate the different models in both fundamental and technical analysis techniques. To achieve this, the raw stock data such as daily quote data, company information, published yearly report, etc. are collected and stored in a central database, and the factors used in the various analysis models are extracted or calculated in advance from the above collected raw stock data, including factors about company basics, valuation ratio, profitablity ratio, growth rates, dividends, financial strength, market price, and trading volume, and stored in a fast factor storage means, which can be a file storage in the central database, or an Object Oriented database. When conducting search for the recommended stocks, these factor
data can be used directly, therefore the process for selecting stocks is accelerated.
Table 1 shows the factors to be prepared for each of the stocks in the preprocessing process in one embodiment of the multi-factor stock selection system according to the present invention.
Table 1 Factors used in the system
Since the stock selection system is developed in both English and Chinese, the factor names in both English and Chinese are listed in the Table 1. Of course, this system can be implemented in any other language. And the factors listed here can be changed, added, or deleted if necessary.
Fig.4 illustrates the selection process according to an embodiment of the stock selection method according to the present invention. As shown in Fig.4, on a user interface(will be illustrated below), the user determines the
selection scope, such as exchange and industry, chooses multi-criteria for the above financial indicators, and customize the preference and value range for each of the criteria; then the system performs the search and rank stocks based on the multi-criteria set by the user, finally, the selected stocks are presented with details to the user.
In one embodiment of the present invention, the following commonly used stock market analysis tools are used: 1. Moving Average Techniques 2. Ratio Analysis Techniques
3. Gantt' s Trading theory
4. Oscillator Theory
5. Random Index Theory
6. Relative Strength Theory 7. Comprehensive Dow ' s Index Analysis 8. Elliott' s Wave Theory
The Elliott ' s wave theory serves as the main model in the embodiment of the stock selection system according to the present invention.
The logic and relationships among these models in one embodiment of this invention are shown in Fig. 5. The user will choose the primary stock selection model out of the above eight models, the outcome of the first model serves as the full set of candidate stocks subject to further evaluation. Other seven models are triggered. For each model, a normalized value is given as outcome, i.e., Nl, N2, N3, N4, N5, N6, N7 and N8. Respective data are retrieved from the factor database for each model. Then the outcomes of all eight models are re-evaluated with normalization, the re-normalized
individual model outcome data are summed as single indicator N, N=N1+N2+N3+N4+N5+N6+N7+N8, and the stock with the maximum N is recommended first. The algorithm for generating the Normalized value for the models will be described below.
For the factors set by the user, the normalized values thereof are calculated according to the criteria(preference, selected Maximum, Minimum) set for a certain factor by the user, respectively. If the Value of this factor is none, this calculation is not performed.
For example, the exchange is "Shenzhen" , and the industry is
"Harbour" , and the stock codes are 0088, 0999, Here only use 0088 as an example.
Table 2 shows the user' s setting for factor of 16, 27 and 28.
The Max,Min,Value in the formula are all values in the database.
Factor 16:
Max=35.663349 Min=0.056723 Value=0.449949000000000
From table 2: selectMax=1498.101 1 selectMin=615.5058 bestSelection=2(low) therefore:
1.calculating normMax, normMin, normValue normMax= (selectMax -Min)/(Max-Min)
=(1498.101 1 - 0.056723)/(35.663349 -0.056723) =42.0720676 normMin= (selectMin- Min)/(Max-Min)
=(615.5058 -0.056723) / (35.663349 -0.056723) =17.28467833 normValue=(Value -Min)/(Max-Min)
=(0.449949-0.056723)/ (35.663349 -0.056723) =0.0110436187
2. judging if normValue is between normMax and normMin , based on the different condition, calculating the factor value(retval)
the result is: since normValue < normMin retval=norm Value -normMin
=0.0110436187-17.28467833 = -17.273634711
factor 27 Max=459.5 Min= -1.0 Value= -0.265515000000000 From Table 2: selectMax=459.5 selectMin= - 1.0 bestSelection=l (intermediate)
hence:
1.calculating normMax, normMin, normValue normMax= (selectMax - Min)/(Max-Min) =(459.5 -(-1.0) )/(459.5 -(-1.0)) =1 normMin= (selectMax- Min)/(Max-Min) =(-1.0-(1.0)) / (459.5 -(-1.0)) =0 normValue=(Value-Min)/(Max-Min) =(-0.265515 - (-1.0) )/ (459.5 -(-1.0))
=0.0110436187 2. judging if normValue is between normMax and normMin, based on the different conditions, calculating the factor value(retval)
the result is: normMin<norm Value < normMax therefore since bestSelection=l (intermediate) retval= |normValue- normMin+ (normMax-normMin)/2 | =| 0.0110436187 - 0 + (1 - 0 ) / 2 |
=0.5110436187 (if bestSelection =2(low) retval = normMax- normValue if bestSelection is other values(high) retval = normValue - normMin
factor 28:
Max= -0.393617 Min= -1.733945 Value= -0.951807000000000 From Table 2: selectMax=- 1.2 selectMin= - 1.2772406 bestSelection=3(high) (can be any number except 1 and 2) hence:
1.calculating normMax, normMin, normValue normMax= (selectMax - Min)/(Max-Min)
=(-1.2 - (-1.733945) )/(-0.393617 -(-1.733945)) =0.39836 normMin= (selectMix- Min)/(Max-Min)
=(-1.2772406-(- 1.733945)) / (-0.393617 -(-1.733945)) =0.34074077 normValue=(Value -Min)/(Max-Min)
=(-0.951807- (-1.733945) )/ (-0.393617 -(-1.733945)) =0.5835422
2. judging if normValue is between normMax and noimMin , based on different conditions, calculating the factor value(retval)
the result is: normMax<normValue therefore retval= normMax -normValue =0.39836-0.5835422 = -0.1851822
summing the above factor values:
sum= -17.273634711+0.5110436187-0.1851822 =-16.9477329
Accordingly, the N value for stock 0088 is -16.9477329.
The N values of the other stocks are calculated in the same manner, and all the stocks are ranked in descending order of their respective N values .
The above algorithm is only for exemplary purpose, the present invention is not limited to this algorithm. A person skilled in the art can use other algorithm based on the principle and spirit of the present invention.
Fig. 6 shows the architecture diagram of an embodiment of the stock selection system. As shown in Fig. 6, the stock selection system includes a central database for storing various financial data; a continuous loader, such as a receiver capturing data from broadcast or satellite, for loading quote data from the stock market; a data administration tool for operator to enter or edit individual company report or information; data batch loader for interpreting published yearly reports, such as extracting relevant financial parameters from company financial statements, organise and insert into the central database; a stock selector data preprocessor for pre processing data each day against market data and company financial data available in the central data base and file storage system, and storing the result into the data base for future retrieval; the stock selector server module collects user criteria, selects and ranks securities with the eight factor model algorithm, and outputs retrieval list to the user with hyperlinks to detailed security information such as charts and financial reports. The raw stock received
from the continuous loader, admin tool and data batch loader are stored in the main database.
This stock selection system accesses to the internet by means of a web server, so as to present programmed Graphic User Interface(GUI) provided on the client terminals based on browser technology, to receive the user' s preference and value range criteria set for the financial indicators. After the stock selector server selects the stocks which meets the criteria set by the user based on the factor data in the file storage, the system presents the selected ranked stocks on the screen of the user terminal with another GUI.
In this stock selection system, the stock selection server integrating the financial models includes a Java Server that serves the NEFSS request. The Java server performs all major computation of NEFSS according to the financial models. In the first implementation, it selects and ranks securities according to user selected financial criteria.
The NEFSS JAVA Server talks to the web server through Java Servelet technology, which also manages threads. The Java Server loads security data from the central database, for example, Informix, through JDBC(Java Database Connection), stores the data in the memory space. Each client request then accesses the memory space and performs retrieval and calculation on it.
Servlets are modules that run inside request/response-oriented servers, such as Java-enabled web servers, like Netscape Enterprise server 3.5.1 and up, and extend them in some manner. For example, a servlet may be responsible
- l o-
for taking data in a HTML order-entry form and applying the business logic used to update a company' s order database.
Servlets are an effective substitute for CGI(Common gateway interface) scripts: they provide a way to generate dynamic documents that is both easier to write and faster to run. They also address the problem of doing server-side programming with platform-specific APIs(Application interfaces). Servlets are developed with the Java Servlet API, a standard Java extension.
The Servlet module sends user request to the Java server, creates a multi- factor object for the user request, it then obtains a network connection from the socket pool. If not available, it creates one. The factors object with the user specified criteria is sent to the Java server, the Servlet waits on a response.
The Java server performs the task of selecting stocks based on stock exchange and industry group selection. It uses Basic select model to further limit and rank the stocked selected. The main modules of the Java Server are the JavaServer package and the JavaServer Communication package. The JavaServer packages starts up a server process that listens to a specified port, when a multi-factor request is sent to the server. The initialized phase of the Jave server loads an JDBC driver, obtains a JDBC connection and loads the stock and parameter data into the criteria hash table.
Fig. 7 shows the process executed in the preprocessor in the stock selection system. As shown in Fig. 7, the quote data and company financial report data are utilized to calculate the factors as listed in Table 1 for each of the stocks according to common known algorithm. The factor data are stored in a file storage in the central database for fast retrieval. The factor data can also be an object-oriented database.
By presenting user a friendly interface/form as mentioned above, the trader can select from many financial indicators(factors) and then set criteria for the selected indicators. Once the criteria is set, the system selects and ranks the securities according to the criteria chosen and present the retrieved securities. Besides the financial indicators, the system allows users to limit the domain of search to a subset of all securities with specifications on stock exchange and industry groups.
Fig. 8A shows a sample user interface(in Chinese) provided on the basis of the internet for the user to input the search criteria. According to the user' s selection: the exchange is Shenzhen, the industry is Utilities. The financial indicator displayed in Fig. 8 A is 3 indicators of the type of trading volume, specifically, previous days' volume, average daily volume-last 120 days, and average daily volume-last 10 days. The user can select his preferred parameters related to the indicators: for example, the previous Days' volume is high, the average daily volume-last 120 days is intermediate; the average daily volume-last 10 days is low. Also, the user can set the value range for each of the indicators(factors). Factors of different types can be set by the user in the same interface.
The user can also set the search criteria for the other seven financial indicators with other similar interfaces. Or alternatively, all the multiple indicators can be set in one user interface.
Fig. 9 illustrates the main data flow diagram of the stock selection operation in an embodiment of the stock selection system of the present invention. As shown in Fig. 9, the user selects the scope of exchange and industry, then selects criteria group and value range for each of the multiple financial indicators with the above interface(s). The system uses the factor data stored in the factor data storage to calculate the factor values for each of the stocks in the selected scope, then normalize the respective factor values; and the related stocks are ranked according to their normalized values as described before, and listed as selected stocks to the user on a user interface.
Fig. 8B shows an interface for presenting the user with the selected stocks list in a ranked manner.
Below is an concrete example of Shanghai Exchange, Automobile Industry for the selection procedure:
criteria I is: P/E ratio: Preference? Low Value range? 1-50 Criteria II is profιt/share( 1 year) Preference? High Value range? 100,000- 100,000,000RMB
Assume there are 4 stocks have value within the data range, and the normalized P/E ratio are 50, 1, 40, 100 and Profit/share are 1, 100, 49, 22. They are normalized and summed as shown in table 3.
The rank of this stock list will be:
1. Stock B; 2. Stock C; 3. Stock A; 4. Stock D
Industrial applicability
In summary, the present invention provides an electronic financial tool used for stock market, and meets the demands for a sophisticated stock selection system integrating both fundamental and technical analysis techniques of different models for the individual and institutional stock traders. This stock selection system overcomes the long-time outstanding difficulty in handling the mass amount stock information, and extracts valuable information from the raw stock data efficiently to help the traders to select their preferred stocks according to their multiple selection criteria. Furthermore, this system can be integrated with online-trading tools, and become a very high efficiency trading tool.
Having described and illustrated the principles of the invention in preferred embodiments thereof, it should be apparent that the invention can be modified in arrangement and detail without departing from such principles. All modifications and variations coming within the spirit and scope of the invention are covered by the appended claims.