Патент US8635130 Method and system for analyzing and screening investment information Google
Post on: 18 Апрель, 2015 No Comment
Патенты
CROSS-REFERENCE TO RELATED APPLICATION
This application claims priority to U.S. Provisional Application Ser. No. 60/182,149, filed 14 Feb. 2000 (the ‘149 application). The ‘149 application is hereby incorporated by reference as though fully set forth herein.
BACKGROUND OF THE INVENTION
a. Field of the Invention
The instant invention is directed toward a method and apparatus for screening securities. More specifically, it relates to apparatus and processes to facilitate screening of equities by investors while tracking various information about the equities.
b. Background Art
In the practice of evaluating securities, specifically stock equities, there are two common approaches: technical analysis and fundamental analysis. Technical analysis is the study of price and volume patterns displayed on charts, and fundamental analysis is the study of the performance of a company’s business results. Applications that allow users to screen for investment prospects using technical and/or fundamental data points are called decision support tools. Competing decision support tools allow users to screen for many data points and present a flexible environment for users to test investment ideas.
However, existing applications require users to execute screens on a local computer in an ad hoc fashion. Such applications commonly require a user, for each screen query, to retrieve historical pricing and fundamental data from a local hard drive, one stock at a time in a serial fashion. Existing software must examine the data to see if it matches each argument of the query and then include or eliminate it from the hit list. Existing software must execute this process one time for each stock’s historical pricing and once for each stock’s fundamental data set. On a fast computer (Pentium III 500 MHz class) this process requires ten to fifteen minutes. This laborious pattern severely limits the average users desire to adjust their screens and perform what-if analysis, thus presenting the great need for a quicker stock screening process.
A further deficit in existing decision support tools in the lack of a rich results display. Currently available systems, see for example FIG. 8. generally provide a client with limited capabilities for sorting and viewing screen results. As shown in FIG. 8. one such prior art system 178 is displayed. This system 178 merely allows a client to sort a listing of stocks 180 based upon a single parameter 182 in either ascending or descending order 184. Additionally, this system 178 merely displays in the field 186 one parameter at a time. Therefore, a system is needed which allows a client to select and view multiple parameters pertaining to Stocks at a single instance on a single screen, based upon pre-determined and pre-selected screening requirements.
The idea that two heads, or more, are better than one is a concept that has been heavily adopted within the investment community. The term “community” in investment community denotes a sharing of information among investors. This sharing can take the form of organized investment clubs with a common goal or friends with an interest in sharing investment information. When an individual has found some useful information that has helped him or her, there is often a tendency to share this information with others. The advent of message boards, chat rooms, and other related Web sites have expanded this community and facilitated instant sharing of information with many individuals.
Existing products provide a limited attempt to help facilitate this sharing of information in the form of allowing investors to e-mail a stock chart to another individual. Investors can send other information by cutting or copying it from the application and putting it into another application that can then be attached into an e-mail. However, this is of greatly diminished value in that the process and data are not integrated and seamless. Thus, there remains an unfilled need to better facilitate the sharing of information (e.g. charts, screens, and watch lists) among investors.
While a few existing products offer users some help in understanding or interpreting the overall condition of the market, most offer limited or simplistic and isolated perspective on the market, while some provide single point data such as the percentage increase or decrease of some of the popular indexes. A problem with widely-quoted indexes (the Nasdaq Composite Index, Dow Jones Industrial Average, or the Standard and Poors 500 Index) is that they are weighted, meaning more consideration is given to larger companies. If one large stock on an index moves up and ten small stocks on the same index move down, the index could very likely show an overall move up, thus masking the true overall status of how all stocks have performed on a given day. Some fundamental news sources calculate and publish the Advance-Decline line. The Advance-Decline measurement indicates the number of stocks on the New York Stock Exchange (NYSE) that have advanced and the number of stocks that have declined over a given period of time. No tool exists, however, for gaining insight into how the broader market (all stocks trading on the NYSE, the American Stock Exchange (AMEX), and Nasdaq Stock Exchange (NASDAQ) performs on an end-of-day basis. Therefore, there remains a need for a decision support tool offering overall performance information as to how all stocks have performed on a given day.
Additionally, professional investors realize, day trading is generally ill advised for the personal investor. Commonly, the personal investor will accept small gains in one position while letting losses grow too large in other positions—often to the detriment of the personal investors financial wealth. However, day traders often realize tremendous personal satisfaction when they choose that one correct position and reap, often temporarily, significant financial gains. Thus, a system is need which allows a personal investor to experience the highs of investing without suffering too many of the losses.
SUMMARY OF THE INVENTION
The present invention provides a stock analysis, management and education system and process. More specifically, the present invention provides an Internet based software application which allows a client to receive daily trading information from a central web server on all the Stocks traded without having to conduct multiple queries and/or extended downloads. The present invention also allows a client to manipulate the various data variables associated with a stock in determining in which stocks to invest.
The present invention utilizes an Internet based server which is in communication with the various stock exchanges, clearing houses, brokerages, news wires, and other entities which provide financial, stock, and/or market information on a real-time basis. The server extracts the needed information from these various sources via the Internet, dial-up connections, or similar communications links. The server is also connected via the Internet with at least one client system. The client system provides those functions and features necessary to interact with the server and provide the stock analysis and management features described herein.
The present invention also provides for the efficient transfer of daily stock information from the server to the client system. Under the process of the present invention, the server receives all the stock information from the various exchanges and processes the information into a plurality of distinct files. These files are preferably stored in a binary format. When a client desires to receive updated stock information, the client system establishes a communications link with the server, receives a list file from the server, and requests and receives from the server those files indicated on the list file which the client system has not received. In this manner, the present invention rapidly decreases the amount of information and time for transmitting such information to a client system. Upon receiving the download from the server, the client system suitably merges the received information with existing files, thereby creating a complete data file of relevant stock information.
Another feature of the present invention, is the process by which clients may create screening criteria. The present invention allows a client to create screening criteria for Stocks by choosing from phrases and pre-defined lists of terms to describe the types of Stocks for which they are searching. The present invention preferably provides this feature within a point and click environment such that upon selection of a criteria a listing of available and relevant operands are provided along with an entry field and/or a listing of relevant parameters. In this manner, the present invention enables a client to quickly develop screening criteria. Additionally, the present invention allows a client to conduct multiple query/criteria screenings of stocks.
In addition to providing the features and functions mentioned previously with regards to screening, the present invention enables a client to specify how, which, and what variables will appear on a screen display. This functionality is provided by a completely configurable, customizable results pane which allows a client to display up to 80+ indicators, in any combination
The present invention also provides a more efficient system and process for receiving charting information for Stocks. The present invention separates charting data from screening data. By so separating these data types, the present invention reduces the download time necessary for screening data by not attempting to also send historical charting data at the same time. Also, the present invention reduces the transmission times associated with retrieving historical charting data for stocks by providing “quick update” files which preferably contain two weeks of charting data for Stocks. By connecting a client system with a server implementing the present invention, the client may retrieve update files on a periodic basis and is not required to retrieve an entire historical chart for a Stock every time current historical information is needed.
Additionally, the present invention allows a personal investor to experience the excitement of day trading by providing the relative low risk practice of exiting positions before closing. The present invention provides these capabilities through its Stock screening features. More specifically, the present invention, through it Day Trader’s Average (DTA) screening criteria allows a personal investor to pick those Stocks which habitually move in a certain direction based upon an opening price without having to risk trying to pick a stock’s intra-day tops and bottoms. Similarly, by utilizing the present invention’s Overnight Average (ONA) screening criteria, the personal investor can identify those stocks which they can buy wholesale—during the last few minutes of trading, and sell retail—during the first few minutes of trading the following morning, based upon established trading data.
An En Fueg-o-meter is also provided by the present invention. This meter enables a client to view the recent performance of any stock at a glance. By providing color and other indicators, the meter indicates whether a stock is trending down, trending up, or within a preset range. Additionally, the present invention provides alert indicators which signal to a client when a stock is performing in a non-desired characteristic. The alert indicators may be custom designed by the client and/or default alerts may be used.
Another feature of the present invention is the ability to monitor the performance of a stock using known candlestick algorithms. This feature provides pattern matching capabilities by which the client may use a decision tool in determining whether to invest in a stock. This feature also provides for the simultaneous display of model and ideal patterns.
The present invention also allows an investor to test trading ideas back in time using historical stock information. By utilizing this back testing feature, the client may view at-a-glance the price performance and the raw gain or loss in dollars and percentage points since a designated back testing data date.
The present invention also combines the before mentioned features with e-mail, and watch list features. A client using the present invention may receive and generate e-mails, receive watch lists, conduct trades, perform research, and various other functions from a single Internet browser. The present invention also provides on-screen demonstrations and various other educational features which allow a client to learn and manage the various features of the present invention at any time, from any place, with or without an Internet connection.
Lastly, the present invention allows system administrators to track various user data including update frequency, whether such updates are successful, how many times an application is used between updates, whether they respond to advertisements or other communications, and various other information.
The before mentioned features and functions of the system and process of the present invention are more fully described herein with reference to the following drawing figures, the detailed description, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic representation of a preferred embodiment system of the present invention;
FIG. 2A is an exemplary screen shot showing the various fields and menu bar options provided by a first configuration of a display for the present invention;
FIG. 2B is an exemplary screen shot showing the various fields and menu bar options provided by a second configuration of a display for the present invention;
FIG. 3 is a representation of a drop down list by which a client selects the column control feature of the present invention;
FIG. 4 is a flow diagram of the process of the present invention by which stock information is processed by the server and utilized by the client system;
FIG. 5 is a flow diagram of a prior art process for processing information for a single stock at a time;
FIG. 6 is a flow diagram of the process by which the present invention selects and displays stocks which are to be presented on a customized column control screen display;
FIG. 7 is an flow diagram of the method for the present invention by which column control templates are developed;
FIG. 8 is an exemplary screen shot of a prior art system used in selecting the order and arrangement of information;
FIG. 9 is a representation of a customized column control display created by the process of the present invention;
FIG. 10 is an exemplary screen shot of a column control template used in providing the customized screen display capabilities for the present invention;
FIG. 11 is a representation of a drop down list by which a client directs the present invention to calculate various indicators for a Stock(s);
FIG. 12 is an exemplary screen shot of the present invention wherein the results of a DTA screening are displayed;
FIG. 13 is an exemplary screen shot of the present invention showing data fields in which a price range for the DTA screening criteria may be entered;
FIG. 14 is an exemplary screen shot of a Big Screening options display by which a screen is selected for execution by the process of the present invention;
FIG. 15 is an exemplary screen shot of a screening pull down menu which provides the option of creating new folders and/or screens for the present invention;
FIG. 16 is a representation of the data entry field in which a name is entered for a new screen for the present invention;
FIG. 17 is a representation of a data entry field in which screening criteria may be entered and/or modified for the present invention;
FIG. 18 is a representation of a drop down list of screening options provided by the present invention;
FIG. 19 is a representation of a the drop drown list of FIG. 18 which has been expanded to include various sub-categories related to the Price option for the present invention;
FIG. 20 is a representation of a data entry field for the screening criteria in which a client selects the operator associated with a chosen criteria for the present invention;
FIG. 21 is a representation of a data entry field for the screening criteria in which a client selects a completion criteria for the present invention;
FIG. 22 is a representation of a data entry field for the screening criteria in which a screening is displayed for the present invention;
FIG. 23 is an exemplary screen shot showing the addition of the screening criteria “Closed Below $20” to the menu tree of screening options for the present invention;
FIG. 24 is a representation of a data entry field for the screening criteria function of the present invention in which multiple criteria have been entered;
FIG. 25 is a flow diagram of the process by which the present invention creates, adds and/or modifies screening criteria;
FIG. 26 is a representation of a data entry field for the screening criteria in which a client selects an operator associated with a chosen criteria for the present invention;
FIG. 27 is a representation of a data entry field for the screening criteria in which a client selects the operator associate with a chosen criteria from a drop down menu for the present invention;
FIG. 28 is a flow diagram of the process by which charting data for Stocks is retrieved and/or updated by a client system from the server;
FIG. 29 is an exemplary screen shot of the present invention showing a current stock quote information for a stock selected by a client;
FIG. 30 is a representation of a data entry field for the present invention in which a client may select various market indicators and charting options for a stock selected by the client;
FIG. 31 is a thermometer-looking graphic used by the En-Fueg-o-meter indicating a trending up rating;
FIG. 32 is a thermometer-looking graphic used by the En-Fueg-o-meter indicating a trending down rating;
FIG. 33 is a thermometer-looking graphic used by the En-Fueg-o-meter indicating a range-bound rating;
FIG. 34 is a screen shot showing the watch list pane and a chart;
FIG. 35 is an enlarged view of a portion of a watch list pane similar to that depicted in FIG. 34 ;
FIG. 36 depicts a header for presentation of the Moving Average Convergence Divergence (MACD) data presented by the En-Fueg-o-meter;
FIG. 37 depicts a header for Moving Averages data;
FIG. 38 depicts a header for the Relative Strength data;
FIG. 39 depicts a header for the Price Movement data;
FIG. 40 depicts a header for Volume data;
FIG. 41 depicts the text decision tree used by the En-Fueg-o-meter;
FIG. 42 is a sample screen shot depicting the En-Fueg-o-meter thermometer graphic next to a chart;
FIG. 43 is a screen shot depicting the Big Picture header and corresponding data displayed after invoking the En-Fueg-o-meter when viewing a chart for a selected stock;
FIG. 44 is a screen shot depicting the Big Picture header and a summary of the data points;
FIG. 45 depicts a sample Candlestick Guru window;
FIG. 46 is a sample screen shot depicting a chart for IBM data and showing a matched candlestick pattern within a box;
FIG. 47 is a screen shot depicting the Candlestick Guru window open on top of a chart having a recognized candlestick pattern within a box;
FIG. 48 is a screen shot depicting alternative ways to invoke the Candlestick Guru;
FIG. 49 depicts a sample Alerts Report window;’
FIG. 50 is a flow chart of the candlestick screening system according to the present invention including invocation of the Candlestick Guru;
FIG. 51 is an enlarged view of the Virtual Backtesting window;
FIG. 52 depicts a chart with a vertical line at the backtesting data date;
FIG. 53 is a flow chart depicting the overall flow of the Virtual Backtesting process through return of hits to the client computer;
FIG. 54 is a flow chart depicting how Virtual Backtesting hit information is graphically displayed for review by an
FIG. 55 and 56 are flow charts for the process of e-mailing charts;
FIG. 57 shows a pop-up window open in the files pane;
FIGS. 58 and 60 are sample-mail windows;
FIGS. 59 and 61 are sample notification e-mails;
FIG. 62 is a sample message that an addressee will see on the Web server;
FIG. 63 is an overall flow chart depicting how the overall market barometers are calculated;
FIG. 64 is a sample screen shot depicting presentation of the market barometers;
FIG. 65 is a flowchart of the overall update process;
FIG. 66 is a flowchart of the user authentication process;
FIG. 67 is a flowchart of the update identifier process;
FIG. 68 is a flowchart of the update success/failure tracking process;
FIG. 69 is a flowchart of the user-specific statistics tracking process;
FIG. 70 is a flowchart of the advertisement click tracking process;
FIG. 71 is a sample advertiser summary report that is stored on the Web server;
FIG. 72 illustrates the user statistics, like update success/failure and screen resolution, that are stored on the server;
FIG. 73 illustrates the general statistical and user demographic information that is stored in the server-side user database;
FIG. 74 depicts sample data about advertisement users that is stored on the Web server in connection with a particular advertisement; and
FIG. 75 is a sample advertisement summary report that is stored on the Web server.
DESCRIPTION OF THE PREFERRED EMBODIMENTS Data Conditioning and Optimization
One aspect of the present invention provides a system and methodology for processing and analyzing information pertaining to stock, bonds, mutual funds, and other investment vehicles (hereafter, “Stock”) from a personal computer in an optimized time period. More specifically, the present invention provides a novel data conditioning and optimization process and system which allows a user to screen thousands of stock and other investments based upon pre-determined parameters from a personal computer in an optimized time period.
As shown in the FIG. 1. the present invention provides a system which utilizes the data processing capabilities of many commonly available servers (100 ), the data sharing and retrieval capabilities of the Internet (102 ), with flexibility and dependability of personal computers commonly utilized in a home and/or business setting (104 ). By utilizing each of these components, the present invention provides the before mentioned features and functions of interpreting, messaging, and filtering stock data such that clients may identify those stocks which possess specific characteristics and/or fall within predetermined parameters via an Internet connection in a timely manner. Additionally, while the present invention is described herein with reference to stocks, those skilled in the art appreciate that with minor variations the present invention may be configured to provide the features and functions provided herein, with reference to stocks, for various other investment vehicles.
The system 10 utilizes the Internet 102 to provide the communications links necessary to allow a client system 104 to communicate with the server 100. The server 100 may also utilize the Inter net 102 and/or dial-up or similar communications links (all of which are commonly known in the art) to communicate with systems provided by the various exchanges 106 (for example, NASDAQ, AMEX, and NYSE), rating houses 108 (for example, Standards & Poor and Bloomberg), or brokerages 110 (for example, Schwab, JP Morgan, Ameritrade), all of which are hereafter collectively referred to as “exchanges” 114. The server 100 also is in communication with various databases 112. These databases 112 may be collocated with the server or remotely located. Those skilled in the art readily appreciate that the server 100 may access various databases via the Internet, direct dial-up links, local networks, and in similar manners. While the present invention is described in the context of a server 100 in communication with various other systems, it is to be appreciated that the present invention is not limited to any single system configuration. A distributed network of servers, stand-alone servers, mainframe computers, and various other system configurations may be utilized by the present invention. Similarly, the client systems 104. while preferably utilizing computer workstations (for example, a Compaq® personal computer with a Pentium III® processor), may be any device capable of establishing an Internet connection, communicating with the server 100. and downloading files from the server 100. as necessary. Those skilled in the art appreciate that such devices include (or soon will include) computer workstations, lap top computers, personal data assistants, and digital wireless telephones. As such: the present invention is not limited to specific system components or communications links.
Utilizing the system 10 as described above, one aspect of the present invention provides for the optimized data conditioning of stock information. The present invention provides such optimization by utilizing the before mentioned system components (the server 100. client systems 104 and exchange 114 ) in an optimal manner. More specifically, instead of requiring client system 104 to process thousands of pages of Stock information in order to process, filter and categorize Stock data, these functions are accomplished by the server 100 .
FIG. DC02 provides one example of a prior art methodology (implemented by an appropriately equipped system) for processing Stock information. This process is commonly accomplished in prior art systems by a user’s system. Since a user’s system often does not have the data storage and manipulation capabilities of today’s servers, such functions commonly require greater than 15 minutes to process a single query. In contrast, the present invention allocates these process functions to the server 100 and thereby allows a client to retrieve the same information at a rate which is 1800 times faster.
As shown in FIG. DC02. one such process for managing Stock information begins when a query is parsed (Block 146 ). The query may comprise any indicator for a Stock, including, for example, a query seeking all stocks that moved above their 10-day moving average line, which also traded by more than twice their normal trading volume. The server 100. parses such a query into its sub-elements, and then screens the NASDAQ, NYSE, and AMEX databases for stocks which fit each criteria. When screening, the server 100 first selects a stock to screen (Block 150 ). The server may begin its screening by selecting stocks in alphabetical order, by most frequently traded (for example, ignoring stocks which show very little volatility—such as an utility stock), or based upon any other parameter.
After determining a stock to screen, the server accesses a database 112 ( FIG. 1 ) which contains stock data. Alternatively, the server might also access a database or data file provided by an Exchange 114, as desired. As shown in Block 154. this step (in Block 152 ) may be very time consuming since the server 100 has to access a database (for example, one contained on a hard drive) repetitively for each sub-element of the parsed query. Additionally, the server 100 must determine which algorithms are necessary for the screening process (Block 156 ). Those skilled in the art appreciate that a data search query is fundamentally a search via an algorithm for data meeting specific parameters. When numerous parameters are desired, a search might be performed for each parameter, or the parameters might be combined via an appropriate algorithm. The present invention preferably combines parameters using commonly known algorithms. As mentioned in Block 158. processing algorithms repetitively is often a very time consuming process which requires significant processing capabilities in order to accomplish in an efficient time period.
After opening the data from the hard drive and processing the necessary algorithms (all of which are commonly known in the art), the server 100 processes all of the query’s parameters (Block 162 ). When the processing is completed, the server closes the Stock data files (Block 164 ), and checks whether a particular Stock met the conditions in the query (Block 166 ). If so, the stock is added to a hit list (Block 168 ). If the stock did not meet the conditions, the server advances to Block 170 .
At Block 170. the server 100 queries whether there is another stock to screen. For the thousands of stocks on the various exchanges (NASDAQ, NYSE, and AMEX) the server 100 will repeat the above process until each has been analyzed (Block 160 ). On a personal computer, performing the above process steps would generally be extremely time consuming.
After every stock has been examined (Block 170 ), the server then determines whether any stock made the hit list (which was generated in Block 168 ) (Block 172 ). If so, the server 100 ends the screen and records as a result the raw data which made the hit list (Block 176 ). If not, the server 100 ends the screen and records zero hits as a result (Block 174 ).
As mentioned previously, the before mentioned Stock data processing methodology is well known in the art. However, currently available systems require a client’s system 104 to perform the before mentioned processing steps, which is quite time consuming. One of the novel aspects of the present invention is its ability to screen millions of data points (over 400 MB) for each Stock for each day which are sent to a client each day in a data file of less than 2.0 MB, and preferably of only 1.6 MB.
The present invention accomplishes these performance gains by breaking out information for each Stock into separate data files. As shown in FIG. DC01. information for each Stock is broken into two file categories: Highly Dynamic and Infrequently Updated. Additionally, the information is broken into five file types: Historical Price/Volume Information (hereafter, the “H file”) (Block 116 ); Split Information (hereafter, the “E file”) (Block 134 ); Raw Fundamental Information (hereafter, the “I file”) (Block 128 ); Company Name (hereafter, the “K file”)(Block 126 ); Industry Information (hereafter, the “F file”)(Block 118 ); and Option Information (hereafter, the “G file”)(Block 120 ). The H file and the E file are classified in the Highly Dynamic category, while the remaining files are classified in the Infrequently Updated category.
The server 100 obtains information from the H file (Block 116 ), the F file (Block 118 ) and the G file (Block 120 ) and, via various commonly available algorithms (Block 122 ), processes this information into an End of Day (EOD) data file (hereafter, the “B file”) (Block 124 ). The B file is preferably stored in a binary file format. Those skilled in the art appreciate that a binary file format, versus a byte file format, provides for greater data compression and therefore a smaller data file size. Using the binary file format, the B file is preferably provided as an output file of around 900 Kb in size. In the preferred embodiment, the B file is named “out1.txt”. The B file contains one PRICE_T structure for each stock. The PRICE_T structure for one stock (in “C” code) is found below:
typedef struct
- characteristics sym[7]; characteristics ind; long prop,macd,trigs; float op,cl,h,l,h52,l52,vol,pr_ch,vol_ch,pr_ch30,pr_ch5; float vol_ave1,vol_ave2,vol_ave3,rsi,h_l,Di; characteristics dtaBull, dtaBear, dtaDollarBull, dtaDollarBear, GapUp, GapDown, Adx; characteristics dta50Bull,dta50Bear; characteristics on a50Bull,on a1Bull,on a25Bull, on a50Bear, ona1Bear, ona25Bear; characteristics cPerUpMacd, cwPerUpMacd; char bull, bear; characteristics cStoch,cQPDay; float f3pbLimit;
> PRICE_T;
Referring again to FIG. 4. the server 100 also processes the fundamental information for each stock (i.e. the I file)(Block 128 ). The fundamental information includes variables such as the number of shares outstanding, the market capitalization, the Beta for the Stock, the dividend, and various other parameters. For the preferred embodiment, the fundamental information (I file) is provided in the “fund_t” structure for a professional investor version of the present invention and in the “r_finfo” structure for a non-professional investor version of the present invention. The “I” file is also converted from an ASCII format into a binary format (Block 130 ). Various algorithms are performed upon the information such that an Optimized Fundamental Information File (hereafter, the “C file”) is generated (Block 132 ). The C file is provided as an output file by the server 100 and is called “resex_main.txt.” The fundamental information structure for one stock for a professional investor is:
typedef struct
- characteristics date[3]; characteristics sym[7]; // things that don’t change
- float fSharesOutStanding; //366,10
// float fMarketCap; //386,10
- float fBeta; //246,10 float fFloat; //376-10 float fGrossMarginTTM; //942,10 float fOperationMarginTTM; //972,10 float fProfitMarginTTM; //1032,10 float fRevEmployee; //1271,10 float fCashPerShare; float fCurrentRatio; float fDebtEquity; //1886 1826,10 to Equity float fLTDebtEquity; //3183,10 1766,10 to Equity float fBookValue; //1906,10 float fPrice2Sales; //2115,10 float fPrice2CashFlow; //2115,10 float fRetEquity; //862,10 float fRetAssets; //902,10 float fRetInvest; //2883,10 float fLastQtrEpsInc; //1536,10 float fLastQtrEpsExc; //1566,10 float fEps12TTM; //1576, 10 float fEps[5]; // calculated float fEps12Chg; //3083,10 float fEpsPriorQtrChg; //3063,10 float fDiv; //396,10 float fInst; //276,10 float fInsiderBuy; //585,10 float fInsiderSells; //595,10 float fInstBuy; //644,10 float fInstSells; //654,10 float fShortIntPerFloat; //702,10 /* at 123 bytes already*///earnings stuff // date, symbol,multex,company,current fiscal, current quarter,end month //prevyear1, prevyear2,last 4 quarters, mean opinion, num opinion, // curryearest,nextyr1est,nextyr2est,next 4qtrest, ltgaverest
// int nAnalysts;
- float fCurYrEst; float fNextYr1Est; float fNextYr2Est; float fCurQtrEst; float fNextQtr1Est; float fNextQtr2Est; float fNextQtr3Est; //159 bytes—1.43 M file
>fund_t;
Similarly, the fundamental information structure for a non-professional investor for one stock is:
typedef struct R_FINFO
- char sym[7]; float eps[5],inst,eps12,div; long shares;
>r_finfo;
In addition to providing the B file and the C file data to a client, the server also provides the K file and E file information. Whenever a client desires to utilize the present invention for Stock analysis, the client preferably establishes a communications link, via the Internet 102. with the server 100 (Block 136 ). The server 100 then sends to the client system 104 a list identifying the most current version of the Stock information. The client system compares its stored version against the list and determines which segments of stock information identified on the list need to be downloaded from the server. The client then downloads those B file, K file, C file, and E file segments previously identified (hereafter, collectively the “Download files”). These Download files are then compared with existing files on the client’s system 104 (except, when a client accesses the server for the first time, no comparison is performed). The client’s system 104 then performs updates of the data files stored on the client system 104. In particular, when fundamental information (i.e. the C file) is requested, the client system (which is utilizing a suitable application software such as software provided by Big Easy at the bigeasyinvestor.com web site) sends the date it last tried to update its fundamental information. The server 100 reads the date and returns only the stocks that have been updated since that date. Similar comparisons and data retrievals from the server 100 are also performed for the K file and E file information.
Once the necessary files are downloaded from the server 100. the client system 104 merges these files into one EOD Screening file (as represented in FIG. 4 by the letter “D”, hereafter the “D file”)(Block 140 ). Using the D file and preferably the Big Easy Investor application software (which at this point does not require an Internet connection), the client may then select stocks to screen using a myriad of criteria combinations (Block 142 ). More specifically, the client system performs these screening functions by utilizing a look-up table approach based upon a local data file (Block 144 ). By utilizing a local data file, the present invention eliminates the need for a client system to remain connected to the Internet and more importantly the server 100. These reductions conserve Internet bandwidth and download times. Additionally, since all the data processing for Stock information is accomplished on the server 100. the method and system of the present invention increases the processing time for various screenings by 1800:1. Instead of requiring 15+ minutes to process a single query, the present invention may process a single query in less than half (½) a second. Additionally, the present invention reduces memory requirements on the client system 104 from approximately 400 MB (using currently available methodologies and systems) to around 1.6 MB.
Additionally, in the preferred embodiment, the client system 104 processes the screening of parameters by utilizing AND logic. Those skilled in the art appreciate that by utilizing AND logic instead of the more common OR logic, the data set identified by this process is significantly reduced and the processing time correspondingly minimized. The preferred embodiment preferably utilizes the following “C” code to provide the AND logic processing:
int nLEN;
while ((nLen—xmlQry.Parse Query(pScreen))>0)
- xmlQry.GetCond(&c);
m_bMatch=QueryDatabaseEx(&m_eod,&c);
pScreen+=nLen;
By utilizing the AND logic, an order difference in processing operations is achieved over OR logic. For OR logic, which must hold all results in anticipation if one condition is true, the order is N(C), where N*C is the number of operations performed.
In contrast, for AND logic, items not meeting the current condition are discarded. As such, the order is Nx(x+1), where N(1)+N1(2)+Nx−1(x). where x=Cth condition is the number of operations performed.
The present invention also allows the client system 104 to receive and utilize historical data for charting (Block 138 ). The historical data is preferably updated automatically whenever a client system 104 contacts the server 100 and requests a complete data download. Also, the present invention may be configured such that the client may merely request updates of historical data, split information, company name information, fundamental information and/or any other information processed by the server.
In addition to providing the various information and data files mentioned above pertaining to Stocks, the present invention also provides a client system 104 with the capability of utilizing various commonly known in the art indicators to screen Stocks. For example, the following indicators are provided with and accessible by a client using a system implementing the present invention: