USOO6349291B1

(12) United States Patent    (10) Patent No.:    US 6,349,291 B1
    Varma    (45) Date of Patent:    Feb. 19, 2002

(54) METHOD AND SYSTEM FOR ANALYSIS,    OTHER PUBLICATIONS
    DISPLAY AND DISSEMINATION OF
    FINANCIAL INFORMATION USING    Hansson, B., and Persson, M. “Time Diversification and
    RESAMPLED STATISTICAL METHODS    Estimation Risk”, Financial Analysts Journal, vol. 56, No. 5
    (Sep./Oct. 2000): pp.55-62.*
(75) Inventor: Samir Varma, Greenwich, CT (US)    Gardner, G., and Stone, D. “Estimating Currency Hedge
    Rations for International Portfolios”, Financial Analysts
(73) Assignee: Attractor Holdings LLC, Greenwich,    Journal, vol. 51, No. 6 (Nov./Dec. 1995): start p. 6.*
    CT (US)    Choong, N.K., and R. McLeod, Jr. “Expert, linear models,
    and nonlinear models of expert decision making in bank
    Notice:    Subject to any disclaimer, the term of this    ruptcy prediction: a lens model analysis”, Journal of Man
    patent is extended or adjusted under 35    agement Information Systems, Vol. 16, No. 1, (Summer
    U.S.C. 154(b) by 0 days.    1999): pp. 189–206.*
    Mitchell, M., and Stafford, E. “Managerial decisions and
(21) Appl. No.: 09/489,364    long-term Stock price performance', The Journal of Busi
    ness, vol. 73, No. 3 (Jul. 2000): pp. 287-329.*
(22) Filed:    Jan. 21, 2000    Laster, D. "Measuring gains form international equity diver
    sification: The boofstrap approach”, journal of investing:
(51) Int. Cl................................................. G06F 17/60    New York; vol. 7, No. 3, (Fall 1998): pp. 52–60.*
    (List continued on next page.)
(52)    U.S. Cl. ............................................ 705/35; 705/37
    Primary Examiner Vincent Miller
    ASSistant Examiner-Daniel S Felten
(58) Field of Search .............................. 705/35, 36, 37,    (74) Attorney, Agent, or Firm-Kenyon & Kenyon
    705/38
    (57)    ABSTRACT
(56)    References Cited
    The present invention provides a method and System for the
    U.S. PATENT DOCUMENTS    Statistical analysis, display and dissemination of financial
    4,541,115 A    9/1985 Werth .......................... 282/14    data over an information network Such as the Internet and
    5,283,856. A   2/1994 Gross et al. .................. 395/51    WWW. The present invention utilizes resampled statistical
    5,359,699 A * 10/1994 Tong et al. ................... 395/22    methods for the analysis of financial data. ReSampled Sta
    5,598.439 A * 1/1997 Wagner .....    ... 375/326    tistical analysis provides a meaningful and reasonable Sta
    5,774,878 A * 6/1998 Marshall ...................... 705/35    tistical description of financial information, which typically
    5,790,177 A * 8/1998 Kassatly ....    348/13    escapes modeling using parametric methods (i.e. assump
    5,893,069 A * 4/1999 White, Jr. ...................... 705/1    tions of a Gaussian distribution). The present invention
    5,918,217 A * 6/1999 Maggioncalda et al. ...... 705/36    provides at least a GUI that provides functionality for user
    5,946,666 A * 8/1999 Nevo et al. ................... 705/36    input of Statistical queries, a Statistical computation engine
    6,003,018 A * 12/1999 Michaud et al. .............. 705/36
    6,012,043 A * 1/2000 Albright et al. .............. 705/36    that performs Statistical analysis of financial data and a
    6,064,662 A    5/2000 Makivic ...................... 705/36    graphical rendering engine that generates graphical display
    6,064.984. A * 5/2000 Ferguson et al. ............. 705/36    of Statistical distributions generated by the Statistical com
    FOREIGN PATENT DOCUMENTS
    putation engine. According to one embodiment, the present
    invention employs a parallel processing architecture to
JP    8-22.1573    * 8/1996    Speed generation of the resampled Statistics.
JP    8-221574    * 8/1996
JP    10-512985    * 12/1998    31 Claims, 17 Drawing Sheets

    US 6,349,291 B1
    Page 2

    OTHER PUBLICATIONS    Putnam, B. “Is the trend still my friend?” Global Investor,
Kemp A. W. “Bootstrap Methods: A Practitioner's Guide',    No. 66, (Oct. 1993): Start p. 21.*
Biometrics, vol. 56, No. 1 (Mar. 2000): Start p. 317.*
Caudill, S., and Holcombe, R. “Specification search and    Fiellin, D., and Feinstein, A. “Bootstraps and jackknives:
levels of Significance in econometric models”, Eastern    New computer-intensive Statistical tools that require no
Econonic Journal, vol. 25, No. 3 (Summer 1999): pp.    mathematical theories” Journal of Investigative Medicine,
289-300.
Deis, D., and Hill, R., “An application of the bootstrap    vol. 46, No. 2, (Feb. 1998): start p. 22.*
method to the Simultaneous equations model of the demand    Berkowitz, J., and Kilian, L., “Recent Developments in
and Supply of audit Services, Contemporary Accounting
Research, vol. 15, No. 1 (Spring 1998): pp. 88–99.*    Bootstrapping Time Series”, manuscript, Sep. 25, 1996.*
Magnar, L., and Steinar, E., “Exact confidence intervals
generated by conditional parametric bootstrapping”, Journal    Michaud, R. The Markowitz Optimization Enigma: Is Opti
of Applied Statistics (May 1999): pp. 447–459.*    mized Optimal?, Financial Analysts Journal, (Jan./Feb.
Coleman, M., Lynford, L., and James, F., “A newly inte    1989): pp. 31-42.*
grated and dynamic approach to Securitized real estate risk
analysis and valuation” Real estate Finance, vol. 12, No. 1
(Spring 1995): Start p. 68.*    * cited by examiner



U.S. Patent   Feb. 19, 2002   Sheet 3 of 17   US 6,349,291 B1

    .
    O    L

U.S. Patent    Feb. 19, 2002    Sheet 4 of 17    US 6,349,291 B1

    Preference Parameter 1-340(1)
    Preference Parameter 2-340(2)

    Preference Parameter N-1-340(N-1)
    Preference Parameter N-340(N)

    F/G 3

    405
    Investment ID - 410

    InVestment Name - 415
    InVestment Data' - 420

    A/G 4

U.S. Patent   Feb. 19, 2002   Sheet S of 17   US 6,349,291 B1

    505
    Rule D-510

    Rule Object" - 515

    F/G, 5a

    Function - 525

    A/G 6f)

U.S. Patent    Feb. 19, 2002   Sheet 6 of 17   US 6,349,291 B1

    Return Object N-1-625(N-1)
    Return Object N-625(N)

    F/G, 6a

    625
    Date - 630
    Value - 635

    F/G, 6f)

U.S. Patent    Feb. 19, 2002   Sheet 7 of 17   US 6,349,291 B1

    705
    Function prototype ID-710
    Function Prototype Object - 715

    A/G 7

    Return Object N-1-625(N-1)
    Return Object N-625(N)

    A/G 3


U.S. Patent    Feb. 19, 2002    Sheet 9 of 17    US 6,349,291 B1

    - - - - - - -- - - - - - - - - -- - -- - -- - - - - - - - - m -- - - -- - - - - - - - - - - -- - - -- - - - - - - - Generate EDF,
    Fa(6)
    Bootstrap
    935    -
    - tReplications
    e

    \.or    er    - ---e

U.S. Patent   Feb. 19, 2002    Sheet 10 of 17    US 6,349,291 B1

    uest for Resampled 1005
    Regtatistical Analysis

    Receive input Parameters -100
    Request Aysis
    RSA
    FOm

    ReSampling
    Computation
    Finished
    1025

U.S. Patent    Feb. 19, 2002    Sheet 11 of 17    US 6,349,291 B1

    Initiate Resampled    1105    1135
    Statistical Method    O BiaS Reguese
    yes
    Set SampleSpace    1115
    PerformAlgorithm
    Bias initialization    1140
    Calculate Memory    1117
    Requirements. Request
    Memory Range in Shared    1145
    Memory Area and Output    Data To Be
    emory Area    Jansgrmed    O

    yes
    Transfer Selected Sample    1119
    SpaceData from Raw    Transform Data    1150
    Financial database to
    Portion of Shared Memory    1160
    Area
    M = Int(Q/N)
    Calculate Basic Statistics 6 h-1120
    Initiate Parallel Processing    1165

    For Range of Lag intervals    1125
    Calculate AutoCorrelations    1170
    (a) and Partial    Parallel    AN/
    AutoCOrrelations    PrOCeSSin
    Complete
    Determinelag Factor (N)    1130
    That Minimizes
    AutoCorrelation (a) =    Notify Back End Processor
    and TranSmit Memor
    1175
    Number of Consecutive
    Periods of Data to Pick at    Address in Output Data
    One Time (N)    Area

    Terminate.    1180
    Initiation ROutine

    F/G 11

U.S. Patent   Feb. 19, 2002    Sheet 12 of 17    US 6,349,291 B1

    Initiate Parallel    1205
    Processing

    Perform Load Balancing    1210
    Analysis

    Request Parallel Process on r-1220
    PrOCeSSOr 1-P

    1230
    All
    Parallel PrOCeSSes
    O
    Completed
    yes

    ASSemble Data
    Area
    Output Datar\-1240

    Notify Control Server of    1250
    Completion

    Initiate Parallel    1260
    Processing

    F/G, 12

U.S. Patent    Feb. 19, 2002    Sheet 13 of 17    US 6,349,291 B1

    Initiate PrOCeSS    1305

    Determine Output Address    1310
    Range

    Set Random Start Point in    1320
    Array
    1360
    1325    -/    1365
    Notify Server of COmpleted
    Replication-9
    Build Bootstrap Sample
    "replication

    Pick N Consecutive
    Periods. Using Bias and
    Stole internporary Array

    COunt = COunt +1

    Calculate Replication
    Calculate s(x"replication)    S("replication)
    1355
    St0re s(x'replication)
    A/G 13

U.S. Patent    Feb. 19, 2002    Sheet 14 of 17    US 6,349,291 B1

    Initiate BiaS    1405

    Separate SampleSpace into    1410
    Up Day Set get Down Day

    Pick Random Number?,    1420
    Between 0-1

 1440 Y    Pick Up Day    Pick Down Day    1450

    A/G, 14

P    RÈ    US 6,349,291 B1

    S?S#E.38
    £(6H[0Y12M]INS
    Q_2
    F
    ––
    –
    –+
    H-
    –]
    1
    –%9?

    ---|-------*----|---------%|,0Z    |---------,----XOOO?OZ/------|-|-|-|-------%0.    _-._ _•%68_ _%9

    E   O


U.S. Patent    Feb. 19, 2002    Sheet 17 of 17    US 6,349,291 B1

    ·ØN
    SN    N
    ZZZZZZZZZZZZZZZZZZZZZZZZZ
    ZZZ

    ZZZZZZZZZZZZZZ 22
    NNNN
    &N
    NXSSS
    N
    ZZZZZZ

    VALKOZRNFTØGNET?
    NYNY YYY
    NOE
    Ø

    N. Y. Ya Ya Ya Ya Ya YYYY

    ZZZZZZZZZZZZZZZZZZZZZZZZ
    Y

    N
    ZZZZZZZ

    S00uen000 JOU000d

    US 6,349,291 B1
    1    2
    METHOD AND SYSTEM FOR ANALYSIS,    Statistical description of financial information, which typi
    DISPLAY AND DISSEMINATION OF    cally escapes modeling using parametric methods (i.e.,
    FINANCIAL INFORMATION USING    assumptions of a Gaussian distribution).
    RESAMPLED STATISTICAL METHODS    The present invention includes a financial information
    network node that is coupled to an information network Such
    FIELD OF THE INVENTION    as the Internet. The financial information network node
   The present invention relates to the area of electronic    includes a front end Subsystem, a resampled Statistical
information Systems. In particular, the present invention    analysis engine ("RSAE) and a graphics rendering engine
relates to a method and System for the delivery of financial    (“GRE”). The front end Subsystem provides a graphical user
information using resampled Statistical methods over an    interface (“GUI”) that allows clients also coupled to the
information network.    information network to Submit requests for resampled Sta
    tistical analysis of various financial investments and receive
    BACKGROUND INFORMATION    graphical display of the results. The RSAE performs resa
    mpled Statistical analysis of financial data in response to user
   Investors and financial analysts rely upon electronic infor 15 queries and incorporates routines to preserve temporal cor
mation Systems for the delivery of accurate financial and relation in financial data, which necessarily provides more
investment data and analysis in order to devise meaningful accurate analysis. In addition, the RSAE provides for user
investment strategies. The growth of the Internet and World control of a number of parameters to Simulate various
Wide Web (“WWW) highlights the potential for global financial environmental conditions. For example, according
distribution of “real time' or “near real time' financial    to one embodiment, the RSAE allows a user to simulate
information and analysis. For example, a number of WWW either bull or bear market conditions by Setting a bias
SiteS provide financial information to clients Such as inves parameter that controls a degree of randomneSS in the
tors and financial analysts.    resampling process. The GRE generates a graphical display
   However, conventional financial information Sites do not    of statistical distributions generated by the RSAE.
provide meaningful analysis tools to accurately analyze, 25 According to one embodiment, the present invention
forecast and predict the behavior of financial markets. Con employs a parallel processing architecture to Speed genera
ventional technology for delivery of financial information tion of the resampled Statistics. The parallel architecture is
over information networkS Such as the Internet typically afforded by the nature of the resampling algorithm itself,
allows users to track returns for various investments and    which permits the financial data to be vectorized. This
perform rudimentary Statistical analysis (e.g., computation parallel processing architecture provides at least two Sig
of the mean and Standard deviation) for these investments. nificant advantages. First, the architecture permits the deliv
However, these rudimentary Statistical functions are not ery and processing of financial data in compressed time
useful to investors in forecasting the behavior of financial frames, which facilitates “real time” or “near real time”
markets because they rely upon assumptions that the under Statistical analysis. In addition, the parallel computation
lying probability distribution function (“PDF) for the finan 35 Scheme provides the ability to perform Statistical analysis on
cial data follows a normal or Gaussian distribution, which is    a large number of financial entities (e.g., a mutual fund or
generally false.    hedge fund) through a weighting process.
   The true distribution of returns for any financial market    According to one embodiment of the present invention for
(and thus of a trading strategy) is unknown. It is therefore 40 implementation on the Internet, a financial information site
incorrect to rely upon a Statistical model based on assump is coupled to the Internet via a front end Subsystem including
tions of normality (e.g., standard deviation). Typically, the a WWW server. The financial information site includes a
PDF for financial market data is heavy tailed (i.e., the front end Subsystem, a RSAE and a GRE. In addition, the
histograms of financial market data typically involve many financial information Site maintains a database of financial
outliers containing important information). Thus, Statistical 45 data for any number of financial entities Such as companies,
measures Such as the Standard deviation provide no mean    mutual funds etc. The financial information site also main
ingful insight into the distribution of financial data.    tains a database of clients that have registered with the
   Providing reasonable methods for the analysis of financial    financial information Site and desire to obtain Statistical
market data is essential for investors. Reasonable Statistical   analysis of financial data.
analysis of financial data should at a minimum provide an 50 In order to perform a resampled Statistical analysis, a
accurate assessment of potential financial risk and reward. query is received from a client via the front end Subsystem.
However, conventional methods, which rely upon assump A client may specify a number of parameters including an
tions of a Gaussian distribution, are dangerous to investors investment or investments (e.g., a portfolio) to be analyzed,
because these analyses understate the true risk and overState a financial function, a Sample size, a period, a type of plot
potential rewards for an investment or trading Strategy. 55 and a bias parameter, which controls the randomness of the
Thus, this information is not generally useful and if relied resampling process. Based upon the parameterS Specified by
upon promotes imprudent investment decisions. In general, the client, the RSAE performs a resampled Statistical analy
the heavy tailed nature of financial data presents significant sis of relevant financial data. The GRE then produces a
challenges in providing meaningful Statistical analysis.    distribution plot based upon the output generated by the
    60 RSAE, which is presented to the client via the front end
    SUMMARY OF THE INVENTION    Subsystem.
   The present invention provides a method and System for    According to one embodiment of the present invention,
the Statistical analysis, display and dissemination of finan the RSAE performs at least three types of financial functions
cial data over an information network Such as the Internet    on financial data. A groSS rate of return function provides
and WWW. The present invention utilizes resampled statis 65 analysis of the groSS rate of returns for an investment over
tical methods for the analysis of financial data. ReSampled a specified time period. A maximum drawdown function
Statistical analysis provides a meaningful and reasonable provides analysis of a maximum drawdown for an invest

    US 6,349,291 B1
    3    4
ment over a Specified period. A monitor function provides    grOSS rate of returns according to one embodiment of the
analysis of a number of “up” and “down” days for a    present invention.
particular investment over a period of time.    FIG. 16 is an exemplary plot of a resampled Statistical
   The financial information site also provides functionality    analysis comparing two investment Strategies with respect to
for Storing a set of client specified alert rules that are used    maximum drawdown returns according to one embodiment
to automatically monitor the behavior of investments based    of the present invention.
upon a resampled Statistical analysis process and notify    FIG. 17 is an exemplary plot of a resampled statistical
clients of the financial information site when the behavior of    analysis comparing multiple investment Strategies with
a particular investment violates a specified rule.    respect to a monitor function according to one embodiment
    BRIEF DESCRIPTION OF THE DRAWINGS
    of the present invention.
    DETAILED DESCRIPTION
   FIG. 1 is a block diagram of a network architecture that
illustrates the relationship between a financial information    Although   the  embodiments described herein utilize the
Site and a client according to one embodiment of the present 15 Internet and WWW, the present invention is compatible with
invention.    any type of information network public or private and thus,
   FIG. 2 is a detailed block diagram of a financial infor    the embodiments described herein are not intended to limit
mation site according to one embodiment of the present the Scope of the claims appended hereto. For example, the
invention.    present invention could be implemented using a private
   FIG.3 depicts the structure of a client record that is stored Intranet, local area network (LAN), metropolitan area net
in a client database at a financial information site according work    (MAN), wide area network (WAN) or even a wireless
    network
to one embodiment of the present invention.
    FIG. 1 is a block diagram of a network topology that
   FIG. 4 depicts the structure of an investment record that illustrates
is Stored in an investment database at a financial information    the relationship between the Internet, a financial
Site according to one embodiment of the present invention. 25 information
    embodiment
    site and various clients according to one
    of the present invention. Based upon queries
   FIG. 5a depicts the structure of an alert rule record that is submitted by clients,    financial information site 119 performs
Stored in an alert rules database at a financial information
Site according to one embodiment of the present invention.    resampled   Statistical analysis of financial data and provides
    a graphical display of distribution results. Details of the
   FIG. 5b depicts the structure of a rule object record functionality provided by financial information site 119 are
according to one embodiment of the present invention.    described below.
   FIG. 6a depicts a data Structure for Storing financial data    Clients 105a-105c communicate with financial informa
in a financial database according to one embodiment of the tion site 119 via Internet 114. According to the embodiment
present invention.    depicted in FIG. 1, financial information site 119 is coupled
   FIG. 6b depicts a data Structure for Storing a financial 35 to Internet 114 via T1 line 130b. Client 105a illustrates a
return according to one embodiment of the present inven typical narrowband client coupled to Internet 114 via a
tion.    dial-up connection described in more detail below. Client
   FIG. 7 depicts a data structure for storing a function 105b illustrates a typical broadband client coupled to Inter
prototype in a function database at a financial information net 114 via a cable modem. Client 105c illustrates a corpo
Site according to one embodiment of the present invention. 40 rate client that is coupled to Internet via T1 line 130c and
   FIG. 8 depicts a data structure for storing plot information server 151. Corporate client 105c includes three network
in a plot database at a financial information site according to    nodes 171a–171c that share bandwidth on Ethernet 161.
one embodiment of the present invention.    Although FIG. 1 illustrates three clients (105a-105c), it is
   FIG. 9a (reprinted from Efron and Tibshirani) depicts the to be understood that financial information site 119 may
underlying theory of the bootstrap method.    45 serve any arbitrary number of clients 105 limited only by the
   FIG. 9b depicts a procedure for performing a bootstrap processing power and bandwidth available.
method to generate a distribution of bootstrap replications    As illustrated in FIG. 1, client 105a communicates with
according to one embodiment of the present invention.    financial information site 119 via personal computer 112a,
   FIG. 10 is a flowchart of steps for performing a resampled modem 115a, POTS telephone line 117 and Internet service
analysis of an investment and generating a graphical output 50 provider 120a. Internet service provider 120a includes
according to one embodiment of the present invention.    modem bank 121 and router 135a that routes packets
    received from modem bank 121 onto Internet 114 via T1 line
   FIG. 11 is a flowchart that depicts a set of steps to initiate 130a. Packets are routed over Internet 114 to client gateway
a resampled Statistical analysis of financial data using a server    14.0a at financial information site 119 via T1 line
parallel processing architecture according to one embodi 55 13Ob.
ment of the present invention.    Client 105a utilizes personal computer 112a to navigate
   FIG. 12 is a flowchart of a parallel processing control Internet/World-Wide-Web (WWW 114 via browser software
process according to one embodiment of the present inven (not shown) and display device (not shown). The browser
tion.
    Software permits navigation between various file Servers
   FIG. 13 is a flowchart of a set of steps for performing a 60 connected to Internet 114, including client gateway Server
reSampled Statistical analysis according to one embodiment 14.0a at financial information site 119. The browser Software
of the present invention.    also provides functionality for rendering of files distributed
   FIG. 14 is a flowchart of a set of steps for performing a on the Internet (i.e., through plug-ins or Active X controls).
biasing procedure according to one embodiment of the    In order to transmit data to financial information site 119,
present invention.    65 personal computer 112a transmits signals through a dial-up
   FIG. 15 is an exemplary plot of a resampled statistical connection utilizing modem 115a. Modem 115a performs
analysis comparing two investment Strategies with respect to modulation of digital Signals generated by personal com

    US 6,349,291 B1
    S    6
puter 112a onto an analog carrier Signal for transmission    requests to RSAE for resampled Statistical analysis of finan
over the public Switched telephone network (“PSTN) (not    cial data and Submits requests to GRE for graphical render
shown). Modem 115a also performs demodulation of signals    ing of output generated by RSAE. Back end server 140b
received over local lines (e.g., 117) from the PSTN extract communicates with control server 140c at RSAE 139,
ing digital byte codes from a modulated analog carrier.   5 graphics rendering server 140e at GRE 149 and SMTP
   Signals are received at ISP 120a, which is connected to server 140fat front end 1 subsystem 29.
the PSTN through modem bank 121. Digital IP packets are    RSAE 139 includes control server 140c, parallel process
then transmitted via Internet 114 and various routers (not    control server 140d, parallel processors 112a-112e (each
shown) to WWW server 140a. IP packets are also transmit    including local respective cache 112a1-112e 1), financial
ted in the reverse direction from WWW server 14.0a to 10 database 150d, investment database 150e, function database
personal computer 112a.    150f shared memory area 160a and output data area 160b.
   Client 105b is coupled to Internet 114 via a broadband Note that RSAE 139 depicted in FIGS. 1-2 utilizes a parallel
cable connection. In particular, personal computer 112b processing architecture. This parallel Scheme is merely
transmits packets via cable modem 115b to ISP 120b where 15 exemplary and is not intended to limit the Scope of the
the packets are routed over Internet 114 to client gateway claims appended hereto. Other embodiments may not rely
server 140a. Packets from financial information site 119    upon a parallel processing architecture at RSAE 139.
traverse a reverse path to client 105b. Similar to client 105a,    Control server 140c provides communication functions
client 105b utilizes browser Software to navigate Internet between back end server 140lb and RSAE 139 and controls
114 and WWW.    the overall operation of a resampled Statistical analysis
   Corporate client 105c includes network nodes 171a–171c,    process. Control Server 140C is coupled to parallel proceSS
which are coupled to Internet via Ethernet 161, server 151 control server 140d and shared memory area 160a. Shared
and T1 line 130c. Network nodes 171a–171c may commu memory area 160a Stores Sample data for financial invest
nicate with financial information site 119 via Ethernet,    ments currently being analyzed by RSAE 139. As described
server 151, T1 line 130c, Internet 114 and T1 line 130b. 25 in detail below, control server 140c receives requests for
Similar to clients 105a-105b, it is assumed that users at    parallel processing computations from back end Server
network nodes 171a–171c utilize browser Software to navi    140b, performs certain initialization functions, loads appro
gate Internet 114 and WWW.    priate data into shared memory 160a and forwards these
   The specific nature of clients 105a-105c and the methods requests to parallel process control Server 140d for perfor
through which they are coupled to Internet 114 depicted in mance. Control server 140c then waits for a completion
FIG. 1 are merely exemplary. The present invention is Signal from parallel process control Server 140d and pro
compatible with any type of Internet client and/or connec vides the output results to back end server 140b for further
tion (broadband or narrowband). In general, it is to be    processing (e.g., graphical rendering via GRE 149).
understood that clients 105 may connect to Internet 114    Control server 140c is also coupled to financial database
using any potential medium whether it be a dedicated 35 150d, investment database 150e, function database 150f and
connection such as a cable modem, T1 line, DSL (“Digital shared memory area 160a. Financial database 150d
Subscriber Line”), a dial-up POTS connection or even a    (described in more detail below) stores financial Sample data
wireleSS connection.    relating to particular investments. Investment database 150e
  FIG. 2 is a detailed block diagram of a financial infor    (described in more detail below) Stores financial data regard
mation site according to one embodiment of the present a ing investments for which clients may be interested in
invention. Financial information site 119 includes front end performing resampled Statistical analysis (i.e., Stocks,
subsystem 129, RSAE 139, GRE 149, back end server 140, mutual finds, etc.). Function database 150f (described in
client database 150g and alert rules database 150c.    more detail below) stores function prototypes for functions
   Front end subsystem 129 includes client/gateway server to be performed on financial data.
140a, which is coupled to GUI database 150a. Front end 45 Parallel process control server 140d is coupled to parallel
Subsystem 129 provides a GUI, which allows clients 105 to processors 112a-112e and output data memory area 160b.
transmit information to and receive information from finan Parallel processors 112a-112e, which are each coupled to a
cial information site 119. According to one embodiment respective local cache 112a1-112e 1 and shared memory
GUI database 150a stores HTML (“Hypertext Markup area 160a, perform resampled Statistical analysis of Sample
Language') code (i.e., WWW pages) relating to various so data stored in shared memory area 160a (i.e., resampled
    Statistical computations). Parallel process control server
information and functions provided by financial information
site 119. For example, GUI database 150a may store a    140d (described in more detail below) orchestrates and
HTML “home page” for financial information site 119 or    controls parallel computation processes running on parallel
HTML pages including forms, which allow the input of data    processors 112a-112e. In particular, parallel process control
at financial information site 119.    55 Server 140d requests initialization of resampled Statistical
   Front end subsystem 129 also includes SMTP (“Simple analysis of data stored in shared memory area 160a from
Mail Transport Protocol”) server 140f SMTP server 140f individual processors 112a-112e. Upon completion of all
performs transmission of e-mail messages to clients 105 parallel processes running on processors 112a-112e, parallel
associated with financial information site 119 in order to    process control server 140d retrieves the results stored in
provide notification regarding various events (as described 60 local caches 112a1-112e 1 and Stores the aggregate data in
in more detail below).    output data area 160b where it can be processed further (e.g.,
   Client gateway server 14.0a communicates with back end in GRE 149).
server 140b, which controls and orchestrates the large-scale    GRE 149 performs graphical rendering (e.g., plots) of
processing of data at financial information site 119. In output data generated by RSAE 139. GRE 149 includes
particular, back end server 140b handles responses to 65 graphics rendering engine Server 140e, which is coupled to
requests from clients 105 for resampled statistical analysis plot database 150b. As described in detail below, plot
of investments. For example, back end server 140b Submits database 150b Stores data regarding the rendering and for

    US 6,349,291 B1
    7    8
matting of distribution plots generated by graphics rendering    information site 119 executes a process to notify clients if a
engine server 140e.    threshold percentile of a resampled Statistical distribution is
   Back end server 140b is also coupled to client database    either below or above a current value of a financial event,
150g and alert rules database 150c. Client database 150g    indicating that the event is unlikely. For example, a client
Stores information related to clients that have registered with   105 may desire to be alerted if the gross rate of returns for
financial information site 119. Alert rules database 150c    a specified investment over a 200-day period assumes an
Stores data pertaining to client specified rules for alerting improbable    value. In this case, each day (or at a frequency
clients to near real time behavior of investments. According calculates the aactual
    specified  by    client 105), financial information site 119
    groSS rate of returns for the investment
to one embodiment of the present invention, clients are over the last 200 days.    Then, financial information site 119
alerted to rule violations by e-mail via SMTP server 140f    executes a resampled Statistical process to evaluate the groSS
which is also coupled to back end server 140b.    rate of returns for 200-day periods described in detail below)
   FIG.3 depicts the structure of a client record that is stored to determine whether a percentile value of the distribution is
in a client database 150g at a financial information site 119 above or below the current value. If so, the current value is
according to one embodiment of the present invention. Each highly unlikely and the client 105 is notified via e-mail.
client record 305 includes client ID field 310, client pass 15 Each alert rule record 505 includes rule ID field 510 and
word field 315, portfolio pointer field 320, alert rules*    rule function object pointer field 515. Rule ID field 510
pointer field 325, e-mail address field 330, billing parameter Stores a unique 32-bit integer value pertaining to an alert
field 335 and preference parameter fields 340(1)–340(N).    rule, which is used for identification purposes. Rule function
   Client ID field 310 stores a unique 16-byte character array object pointer field 515 stores a reference to a rule object
or pointer to a character array of a client that has registered (described with reference to FIG. 5b) relating to the occur
with financial information site 119. Client password field rence of a financial event for which a client desires notifi
315 Stores a unique 16-byte character array or pointer to a cation.
character array of a password associated with a client 105.    FIG. 5b depicts the structure of an alert rule object
Clients 105 may establish a client ID and password upon 25 according to one embodiment of the present invention. Each
registration with financial information site 119.    rule alert rule record 507 includes investment ID field 520,
   Portfolio pointer field 320 stores a pointer to a linked list function field 525, periods field 530, operator field 535,
of investments that a client 105 has selected for tracking percentile value field 540, Sample size field 545 and repli
using financial information Site 119. According to one cations field 550. Investment ID field stores a 32-bit integer
embodiment of the present invention, each link in the linked value identifying an investment, as described below with
list Stores an identifier of an investment entity as described respect to FIG. 6a. Function field 525 stores a 32-bit
in more detail below. Alert rules* pointer field 340 stores a function ID of a function record as described below with
linked list of alert rule record IDs (discussed in more detail respect to FIG. 7. Periods field 530 stores a number of
below) that specify particular financial alert rules that are    periods (i.e., days) for which the client 105 desires to
monitored by financial information site 119 and associated 35 evaluate the investment. Operator field 535 stores a 4-bit
with individual clients 105. These rules are used to notify field indicating an operator Such as < or'>. Percentile
individual clients 105 of the occurrence of particular events value field 540 Stores an integer representing a percentile
they wish to follow based upon a resampled Statistical value. Sample size field 545 stores a 32-bit integer value
analysis of financial data. E-mail address field 330 stores a representing a Sample size for which to conduct a resampled
32-byte character array or pointer to a character array of an 40 statistical analysis. Replications field 550 stores a 32-bit
e-mail address of a client 105. Billing parameter field 335 integer value representing a number of replications to per
Stores a pointer to billing object record that includes billing form in conducting a resampled Statistical process.
information for a client 105. Preference parameters 340(1)    AS described in detail below, the resampled process is
-340(N) store preference parameters related to customiza conducted based upon parameters stored in fields 520, 525,
tion functions associated with financial information site 119. 45 530, 545 and 550. Based upon operator filed 535, it is then
   FIG. 4 depicts the structure of an investment record that determined whether the distribution results for a resampled
is stored in an investment database 150e at a financial    Statistical proceSS above or below the current value exceed
information site 119 according to one embodiment of the the percentile value stored in percentile value field 540. If so,
present invention. Investments may represent Stocks, mutual the client is notified
funds, etc. Each investment record 405 includes investment 50 FIG. 6a depicts a data Structure for Storing financial data
ID field 410, investment name field 415 and investment data    in a financial database according to one embodiment of the
pointer 420. Investment ID field 410 stores a unique 32-bit present invention. Each financial data record 605 includes
value corresponding to a particular investment. Investment investment ID field 610, and one or more return objects
name field 415 stores a 16-byte character array of a name of 625(1)–625(N). Investment ID field 610 stores a 32-bit
an investment. Investment data pointer 420 Stores a pointer 55 integer value uniquely identifying a financial record. Return
to a linked list of financial data records related to an    objects 625 (as described in FIG. 6b) store actual data values
investment, which are stored in financial database 150d    of returns associated with the investment represented by
(described in more detail below).    investment ID field 610.
  FIG. 5a depicts the structure of an alert rule record that is    FIG. 6b depicts a data Structure for Storing a return object
stored in an alert rules database 150c at a financial infor 60 according to one embodiment of the present invention. Each
mation site 119 according to one embodiment of the present    return object 625 includes a date field 630 and a value field
invention. According to one embodiment of the present    635. Date field 630 stores a data object corresponding to the
invention, each alert rule Specifies a percentile constraint of   data of a return and value field 635 stores the value (dollar
a resampled distribution for which a client 105 desires    amount or otherwise) of the investment on the date Stored in
notification. Clients 105 of financial information site 119 65 date field 630.
may desire to be notified if the occurrence of a current event    FIG. 7 depicts a data Structure for Storing data in a
is extremely unlikely. AS described in detail below, financial    function database 150f at a financial information site 119

    US 6,349,291 B1
    9    10
according to one embodiment of the present invention.    FIG. 9a (reprinted from Efron and Tibshirani) depicts the
Function database 150f Stores various function prototypes    underlying theory of the bootstrap method. Ideally Statistical
for functions to be performed on investment data, which are    inferences are based on a known probability distribution F.
used in performing resampled Statistical analysis of financial    A parameter is a function of a known probability distribution
data. For example, according to one embodiment function    F.
database 150f Stores function prototypes for gross rate of
return, maximum drawdown and/or a monitor function.
Each function record 705 includes function prototype ID    Furthermore, generally financial data may not be modeled
710 and function prototype object 715. Function prototype parametrically because it is heavy tailed (i.e., non-Gaussian)
ID field 710 stores a unique 32-bit integer value pertaining 10 and therefore, F is not known or ascertainable. For example,
to a function prototype, which is used for identification with respect to financial data, an investor may desire to Study
purposes. Function prototype object field 715 stores a 1024 a specific parameter of a financial investment Such as the
byte character array of a function prototype. The Syntax for grOSS rate of return of a Stock over a certain period of time
representing a function prototype Stored in function proto that is dependent upon knowledge of the true probability
type object field 715 is variable. Practitioners skilled in the 15 distribution function for the investment. However, generally
art will recognize that many data structures and techniques neither the PDF for an investment, nor the PDF for a
may be utilized to represent function prototypes. According parameter Such as the groSS rate of return over a specified
to one embodiment of the present invention, a maximum time period for the investment (which is dependent upon the
drawdown function prototype is Stored in function database underlying PDF) is known.
150 based upon the following equation: For a set of returns 20 Resampled Statistical methods Such as the bootstrap
(r-r):    attempt to estimate the PDF of an unknown distribution

Max. Drawdown =

    1 +r    (1 + r.) (1 + 2) (1 + r )(1 + 2)(1 + 3)    (1 + r )(1 + 2)(1 + 3) ... (1 + r.)
    1    1    1    1
    (1 + r.) (1 + 2) (1 + r )(1 + 2)(1 + 3)    (1 + r )(1 + 2)(1 + 3) ... (1 + r.)
    (1 + r.)    (1 + r.)    (1 + r.)
    1 - Mi    O    O    (1 + r )(1 + 2)(1 + 3)    (1 + r )(1 + 2)(1 + 3) ... (1 + r.)
    (1 -- r1)(1 + r2)    (1 + r )(1 + 2)

    O    O    O    (1 + r )(1 + 2)(1 + 3) ... (1 + r.)
    (1 + r.) (1 + 2)(1 + ra) ... (1 + r. 1)

According to one embodiment of the present invention, a using Sampled data. Typically, Sample data is available for
grOSS rate of returns function prototype is Stored in function an investment that is dependent upon an unknown PDF F.
database 150f based upon the follow equation: For a set of 40    F x=(x1, x2, ... x.)
returns (r-rn):
    The empirical distribution function F is defined to be the
    discrete distribution that puts probability 1/n on each value
    Gross Rate of Return = || (1 + r.) - 1    X, i=1,2,... n. Fassigns to a set A in the sample space of
    X its empirical probability Prob{A}=#{xeA}/n, In, the pro
    45 portion of the observed Sample X=(x1, . . . X).
According to one embodiment of the present invention, a    The plug-in principle is a method of estimating param
monitor function calculates a number of 'up' or down days    eters from samples. The plug-in estimate of a parameter
for a given investment over a certain period. Thus, the    0=t(F) is defined to be 0=t(F) 910. These statistics are
following equation describes a monitor function:    referred to as Summary Statistics, estimates or estimators.
    50 Resampled statistical methods attempt to determine the
    distribution of 0, an estimator of 0, derived from a sample
    X.
    Bootstrap methods depend on the notion of a bootstrap
    sample. If F is an empirical distribution with probability of
   Thus, for example, according to one embodiment, the 55 1/n for each of the observed valueS X, i=1,2,. . . ... Il, a
maximum drawdown function, the groSS rate of return bootstrap Sample is defined to be a random Sample of size n
function (as described above) and the monitor function are drawn from F, X*=(X,X2,...,x), where F->(x, *,x*,
coded according to a predefined Syntax and Stored as a ..,x). The Star notion indicates that X* is not the actual
function prototype in function database 150f    data Set X, but rather a randomized, or resampled version of
   FIG. 8 depicts a data structure for storing plot information 60 X. The bootstrap data points X1,X2,.. .,X, are a random
in a plot database at a financial information site according to Sample of size n drawn with replacement from the popula
one embodiment of the present invention. Each plot type tion of n objects (x1, x2, . . . , X). Corresponding to a
record 805 stores plot type ID field 810 and one or more plot bootstrap data set X* is a bootstrap replication of 6, 6*-s(x*)
parameter fields 825(1)–825(N). Plot ID field stores a    915. The quantity S(x) is the result of applying the same
unique 32-bit integer identifying a particular plot type. Plot 65 function S() to X as was applied to X (i.e., the statistical
parameter fields 825(1)–825(N) store various parameters    function of interest). For example, S() may be the gross rate
relating to formatting of plots.    of return of an investment over a Specific period of time.

    US 6,349,291 B1
    11    12
   Thus the bootstrap attempts to estimate a parameter of    used in the resampling process. The plot type parameter
interest 0=t(F) from an unknown distribution F using a    Specifies a plot type identifier (i.e., 810) pertaining to
random Sample X=(X1,X2,...,x). Given a random Sample    formatting parameters to be used in generating a plot of
X=(X,X2,...,x) and a statistic 0=S(X, F) that depends on the    distribution results.
sample and possibly the underlying distribution F, the dis    In step 1015, back end server 140b requests the initiation
tribution of 0,    of a resampled statistical analysis process at RSAE 139. In
    particular, according to one embodiment of the present
    t(0=S(x,F))    invention, back end server 140b transmits the following
    vector to control server 140c at RSAE 139:
is estimated by that of    request resampling process (investment, function, peri
    (6*=S(x*F)    ods (Q), bias, Sample size, replications, plot type)
    Back end server 140b then waits for completion of the
   FIG. 9b depicts a process for performing a bootstrap    resampled Statistical analysis task. In Step 1020, back end
method (a resampled Statistical method) to generate a dis server 140b determines whether RSAE 139 has completed
tribution of bootstrap replications according to one embodi 15 the resampling process. According to one embodiment, upon
ment of the present invention. In Step 920, a Sample Space completion of the resampling process, control Server 140c
X is selected. In step 925, a statistical function based on the transmits a completion Signal to back end Server 140b and an
Sample Space data is computed 6=t(F). In step 930, bootstrap address in output data area 160b where output data of a
Samples X*=(X,x, . . . .X.), are generated from the resampled Statistical process is Stored. If the resampling
Sample Space using a resampling process. In Step 935, a process is not completed (“no branch of step 1020), back
bootstrap replication 6=S(x) is computed for each bootstrap end server 140b continues to wait for notification. If the
sample using a desired function. In step 940, a plot of the resampling method is completed (yes' branch of step 1020),
distribution of bootstrap replications (s(x*").s(x**) . . . in step 1025, back end processor 140b requests a graphics
s(x)) is generated in order to estimate the distribution of plot from GRE 129. In particular, according to one
0.    25 embodiment, back end processor 140b transmits the follow
   FIG. 10 is a flowchart of steps for initializing a resampled ing vector to graphics rendering server 140e at GRE 149:
Statistical analysis of financial data at a financial information    plot(OutAddr, plot type, plot parameters).
site 119 according to one embodiment of the present inven OutAddr Specifies an address in output data area, which
tion. In step 1005, the process is initiated upon receipt of a Stores results of a resampled Statistical process previously
request for a resampled Statistical analysis of financial data, conducted by RSAE 139, plot type specifies a plot type
which is received via front end subsystem 129 (e.g., via an requested by a client 105 and plot parameterS Specifies
HTML form). In step 1010, input parameters relating to a additional plotting parameters that may be required by GRE
reSampled Statistical analysis are received Via client/gateway 129. Back end server 140b then waits for completion of the
server 14.0a and transmitted to back end server 140b.    plot. In step 1027, back end processor 140b determines
According to one embodiment, the following parameters are 35 whether graphics rendering Server 140e has completed the
Solicited from a client 105: investment;    requested plot (i.e., whether graphics Server has transmitted
   function;    a completion signal to back end processor). According to
  periods (Q);    one embodiment, upon completion of a plot, graphics ren
  bias,
    dering Server 140e transmits a completion Signal to back end
    40 processor 140b. Graphics rendering server 140e also trans
  Sample size;    mits results of the plotting process in the form of plot data,
  replications, and    which may be used to dynamically create an HTML page for
  plot type.    transmission to a client 105. If the plot is not finished (no
The investment parameter Specifies an identifier of an    branch of step 1027), back end processor 140b continues to
investment (i.e., 410) stored in investment database 150e. 45 wait for the completion Signal. If the plot has been com
The function parameter Specifies a function prototype pleted (yes' branch of step 1027) in step 1029 and back end
identifier (i.e., 710) stored in function database 150f. For processor 140b transmits the plot data results (e.g., HTML
example, according to one embodiment, the function pro page) to client/gateway server 14.0a for transmission to
totype may correspond to a function for maximum client 105. The process ends in step 1030.
drawdown, grOSS rate of return or a monitor function as 50 FIG. 11 is a flowchart that depicts a set of preparation
described above. The periods parameter Specifies a number steps performed by a control server 140c at a financial
of periods for which a client 105 desires to evaluate an information site 119 to initialize a resampled statistical
investment. For example, a client 105 may desire to perform analysis of financial data using a parallel processing. In Step
a resampled Statistical analysis for the groSS rate of returns 1105, the process is initiated upon the receipt of a request
of an investment over a 253-day period. The bias parameter 55 resampling proceSS vector from back end Server 140b as
is a decimal value that is either -1 or between 0 and 1 that    described above with reference to FIG. 10.
Specifies the degree of randomneSS in the resampling pro    In steps 1115-1119, control server 140c reserves appro
ceSS. A value of -1 indicates that the resampling proceSS priate memory in Shared memory area 160a and output data
should be conducted purely randomly. AS described in more area 160b and Stores appropriate Sample data for processing
detail below, if the bias’ parameter is between 0 and 1, 60 in shared memory area 160a. In particular, in step 1115, a
Sampling is performed So that b% of the Samples are up    Sample Space is determined using the Sample Size param
days and 1-b% of the samples are down days, where eter received in step 1105. Because financial database 150d
b=bias. Thus, if b=1, only up days will be selected and if may store Samples for investments for many different time
b=0 only down days are selected. The sample size    periods, in step 1115, a set of relevant samples for the
parameter Specifies a number of Samples to use in the 65 resampled statistical analysis requested by the client 105 is
resampling process (the size of the X). The replications    determined. In Step 1117, based upon the Sample size
parameter Specifies a number of bootstrap Samples to be parameter, control Server 140c determines an amount of

    US 6,349,291 B1
    13    14
memory required for Storage of Samples in shared memory factor (N) that minimizes the autocorrelation (a). The mini
area 160a and allocates an appropriate memory block in mum lag factor (a) corresponds to the number of consecutive
shared memory area 160a for Storage of the Samples. periods that are Selected at one time during the resampling
Further, based upon the replications parameter, Server 140c proceSS.
also determines an amount of memory to reserve in output    In step 1135, the bias parameter received in step 1105 is
data memory area 160b for storage of results of the resam analyzed. If no bias is Selected (i.e., bias=-1 and data is to
pling process. In Step 1119, based upon the Sample size be selected randomly), control passes to step 1045
parameter, Server 140c retrieves financial data Samples from (“nobranch of step 1035). If bias<>0, in step 1040, a bias
financial database 150d and stores these samples in shared initialization algorithm is performed as described in detail
memory area 160a in the memory block previously reserved below.    In step 1145, it is determined whether the sample
in step 1117. In step 1120, process server 140c computes 0 Space data    should be transformed. This determination is
from the sample data stored in shared memory area 160a. In based upon the    precise function requested by the client 105
particular, a Statistical function Such as the mean, median or (i.e., specified by  function parameter). For example, if the
Standard distribution is calculated by dividing the Sample
Space into appropriate length periods.    function is groSS rate of return over a specified period, no
   In steps 1125–1160, control server 140c executes a series 15 transformation Step is required. However, if for example, the
of Steps to format and prepare the data for processing. function type is the monitor type, the Sample data is trans
Specifically, in Step 1125, autocorrelation of the Sample formed to represent the sign of the returns only (i.e., -1 and
Space data Stored in shared memory area 160a is analyzed.    +1). Other variations will exist depending upon the type of
Specifically, control Server 140c executes a process to cal functions implemented. If no transformation is necessary
culate the autocorrelation and partial autocorrelation func (no branch of step 1145), control is transferred to step
tions on the data stored in shared memory area 160a for a 1160. Otherwise (yes’ branch of step 1045) in step 1150, the
number of different lag periods (a) and Stores the results in data is transformed and restored in Shared memory area
temporary Storage. According to one embodiment, the fol 160b in step 1150.
lowing equations are utilized to calculate the autocorrelation    In step 1160, the variable M=Int(Q/N) is determined. The
and partial autocorrelation functions for the data Stored in 25 variable M specifies the number of samples to select for
shared memory area 160a.    each resampling. In step 1165, server 140c executes a
   Wa<n and 1sX<a:    request for parallel processing of data Stored in shared
Samples in the Sample Space are defined as:    memory area 160a by transmitting a vector to parallel
   r=(r1, r2, . . . .r.)    processing control Server 140d using the prototype:
Shifted versions of the Sample Space are defined:    Request Parallel Process(input addr, input range,
    output addr, output range, M, N function, bias,
  Z=(r1,r2, . . . .r.)    replications). The parameters input addr, input range,
    output addr and output range correspond respectively
  Z=(ra 1-, - - - T-)    to the Start address and range in shared memory area 160a
The autocorrelation function is defined as:    35 and output memory area 160b that were determined in step
    1117. The parameters M and N correspond to the variables
    determined in steps 1130 and 1160 respectively. The param
    eters bias and replications correspond to the same param
    eters received in step 1105.
The partial autocorrelation function is defined as:
    40    In step 1170, control server 140c determines whether it
    has received a Signal from parallel proceSS control Server
    140d indicating the completion of parallel processing. If not
    (no branch of step 1070), control server 140c continues to
    2    wait for the completion signal. If a completion Signal has
    45 been received (yes' branch of step 1170), in step 1175,
    control Server 140c transmits a completion Signal to back
    end server 140b along with a memory address in output data
The following are intermediate calculations:    area 160b where the output data for the resampled method
    is Stored.
    (ZZ)(Z2, Z)    50    FIG. 12 is a flowchart of a parallel processing control
    S(azz = -c,    c.    process according to one embodiment of the present inven
    tion. Although only 5 parallel processors (112a-112e) are
    X(Z, -Z)
    i=l
    depicted in FIG. 1, this number is arbitrary and any number
    S(a)z,    in - a - 1    P of parallel processors may be used to perform the resam
    55 pling technique. Furthermore, although the method
    described herein utilizes a parallel processing architecture,
    X (Z, -Z.)    the present invention does not require a parallel processing
    S(a)z,    R - a- 1    Scheme. According to one embodiment of the present
    Z2    invention, the process depicted in FIG. 12 is implemented by
    60 parallel process control server 140d at financial information
    Site 119.
    In step 1205, parallel process control server 140d receives
    a vector requesting a parallel process as described in Step
    1165. In step 1210, parallel process control server 140d
    65 performs a load balancing Step. In Step 1220, parallel
   In Step 1130, the autocorrelation and partial autocorrela process control Server 140d requests the initiation of pro
tion data calculated is analyzed to determine a minimum lag ceSSes on individual parallel processors 112a-112e by trans

    US 6,349,291 B1
    15    16
mitting a begin process vector to each respective parallel    received in step 1305. In step 1355, the bootstrap replication
processor 112a-112e. According to one embodiment of the    s(x'P'”) is stored in local cache (e.g., 120a1). Flow
present invention the vector is transmitted to each processor    continues with step 1325. When all replications have been
112a-112e to initiate parallel processing: begin proceSS    completed ('yes' branch of step 1325), in step 1360, the
(input addr, input range, M, N, function, bias,    parallel processor 112 notifies parallel process control Server
replications/P). The parameters input addr, input    140d that processing has been completed and also notifies
range, correspond respectively to the Start address and    parallel process control server 140d of the memory block in
range in Shared memory area 160a that were received in Step    local cache (i.e., 112a-112e1) where the output data is
1205. The parameters periods', 'bias and replications,    Stored.
‘M’ and ‘N’ correspond to the same parameters received in    FIG. 14 is a flowchart of a set of steps for conducting a
step 1205. P specifies the number of parallel processors.    bias algorithm according to one embodiment of the present
Thus, each parallel processor computes replications/P rep    invention. The process is initiated in step 1405. In step 1410,
lications.
    the Sample space is separated into two sets, a first Set
    including only 'up' days and a Second Set including only
   In step 1230, parallel process control server 140d checks    down days. In step, 1420 a random number r, between 0
to determine whether all parallel processors 112a-112e have 15 and 1 is selected. In step 1430, it is determined whether the
completed processing. Upon completion of a processing random number r-b (the bias parameter specified by the
task, each parallel processor executes a step of notifying client). If so (‘yes’ branch of step 1430), in step 1440, an up
control Server 140c of completion. In particular, according to day is selected. If nor (no branch of step 1440), in step
one embodiment, upon completion each parallel processor 1450, a down day is selected. The process ends in step 1460.
112 Sends parallel proceSS control Server a notification The process depicted in FIG. 14 is repeated for each
message defining a memory block where output results have bootstrap Sample.
been stored on the respective local cache 112a1-112e 1. If    FIG. 15 is an exemplary plot of a resampled statistical
notifications have not been received from all processors analysis comparing two investment Strategies with respect to
112a-112e, parallel process control server 140c continues gross rate of returns. As depicted in FIG. 15, investment
waiting (no branch of step 1120). Upon receipt of all 25 strategy 1510 outperforms investment strategy 1520.
    FIG. 16 is an exemplary plot of a resampled Statistical
completion notifications ('yes' branch of step 1230), parallel analysis
process control server 140d retrieves the data output for each    comparing two investment Strategies with respect to
parallel processor stored on local cache 112a1-112a5.    maximum    drawdown. As depicted in FIG. 16, investment
   In step 1240, parallel process control server assembles all strategy   1610 outperforms investment strategy 1620.
    FIG. 17 is an exemplary plot of a resampled statistical
output data from each respective local cache 112a1-112e 1 in analysis    comparing two investment Strategies with respect to
output data area 160b. In step 1250, parallel process control a monitor    function. As depicted in FIG. 17, investment
server 140d notifies server control 140c that the parallel strategies 1720    outperforms investment strategy 1710.
processing is completed. The process ends in Step 1260.    What is claimed is:
   FIG. 13 is a flowchart of set of steps for performing a    1. A method for calculating, analyzing and displaying
reSampled Statistical method according to one embodiment 35 investment data comprising the Steps of:
of the present invention. The steps shown in FIG. 13 are    (a) Selecting a sample space, wherein the Sample space
executed on each parallel processor 112a-112e upon the    includes at least one investment data Sample,
request for a parallel process by server 140d. In step 1305,    (b) generating a distribution function using a re-sampled
the proceSS is initiated and each parallel processor receives    Statistical method and a bias parameter, wherein the
a begin proceSS vector as described above with reference to 40    bias parameter determines a degree of randomneSS in a
step 1220 of FIG. 12. In step 1310 each respective processor    reSampling process, and,
112a-112e determines a range of output memory in local
cache 112a1-112e 1 for storage of output results. In step    (c) generating a plot of the distribution function.
1320, the parallel processor 112 determines a random start    2.   The    method according to claim 1, wherein the
location in Shared memory area 160a to begin Sampling. In 45 re-sampled Statistical method is a bootstrap method.
step 1325, it is determined whether all replications (Q) have    3. The method according to claim 2, wherein step (b)
been completed. If not ('no' branch of step 1325) processing includes the Steps of:
continues with steps 1330–1345. Steps 1330–1345 corre    (a) generating at least one bootstrap Sample from the
spond to the selection of a bootstrap sample x*P'". In    Sample Space; and,
step 1330, a temporary variable Count is set to zero. In step 50 (b) for each bootstrap Sample, generating a corresponding
1335, N consecutive periods of sample points are selected    bootstrap replication.
from Shared memory area. The degree of randomneSS in    4. The method according to claim 3, wherein the step of
selection is determined by the variable bias. If bias=-1, the generating at least one bootstrap Sample, further includes the
beginning of each consecutive period is Selected purely Steps of randomly Selecting a set of Q data points from the
randomly. If the bias parameter is Set to any value other 55 Sample Space, wherein Q is a number of periods.
than -1, Sampling is performed So that bias percent of the    5. The method according to claim 4, wherein the step of
Samples are “up' days for the investment and 1-bias percent generating a bootstrap replication, further includes the Step
of the samples are “down” days for the investment as of taking a predetermined function of a bootstrap Sample.
described in detail below. Thus, if bias=1, only “up' days    6. The method according to claim 3, further including the
will be selected. In step 1340, the temporary Count vari 60 Steps of
able is increment. A biasing process is described in detail    (a) before step (b), calculating at least one of an autocor
below with reference to FIG. 14. In step 1345, it is deter    relation function and a partial autocorrelation function
mined whether Count=M. If not (no branch of step 1345),    of the Sample, Space for each of at least one lag
flow continues with step 1335 (i.e., another N consecutive    parameter (a); and,
periods are selected). If so (‘yes’ branch of step 1345), flow 65    (b) determining a minimum lag parameter, N, wherein the
continues with step 1350, and a bootstrap replication    minimum lag parameter N minimizes an autocorrela
s(x'"") is computed corresponding to the function s()    tion function of the Sample Space.

    US 6,349,291 B1
    17    18
   7. The method according to claim 6, wherein the step of    (b) Selecting a set of N consecutive data points from the
generating at least one bootstrap Sample, further includes the    Sample Space; and,
Steps of:    (c) repeating steps (a)-(b) until at least Q data points have
  (a) randomly selecting a starting point in the sample    been Selected, wherein Q is a number of periods.
    Space,    5    19. The method according to claim 15, wherein the bias
  (b) Selecting a set of N consecutive data points from the    parameter is used to control a degree of randomneSS in
    Sample Space; and,    Selecting the Set of Q data points.
  (c) repeating steps (a)-(b) until at least Q data points have    20. The method according to claim 11, wherein the
    been Selected, wherein Q is a number of periods.    information network is the Internet.
   8. The method according to claim 1, wherein the    21. The method according to claim 16, wherein the
re-Sampled Statistical method is a jackknife method.    predetermined function is one of a groSS rate of returns
   9. The method according to claim 1, where in the function, a maximum drawdown function and a monitor
re-Sampled Statistical method is a croSS-Validation method.    function.
   10. The method according to claim 5, wherein the pre    22. A System for providing Statistical analysis of invest
determined function is one of a groSS rate of return function, 15 ment information over an information network comprising:
a maximum drawdown function and a monitor function.
    11. A method for providing Statistical analysis of invest    a financial data database for Storing investment data;
ment data over an information network, comprising the Steps    a client database;
of:    a plurality of processors collectively arranged to perform
   (a) storing investment data pertaining to at least one    a parallel processing computation, wherein the plurality
    investment;    of processors is adapted to:
   (b) receiving a statistical analysis request corresponding    receive a Statistical analysis request corresponding to a
    to a Selected investment;    Selected investment;
   (c) receiving a bias parameter, wherein the bias parameter 25    based upon investment data pertaining to the Selected
    determines a degree of randomneSS in a resampling    investment, perform a resampled Statistical analysis
    process, and,    to generate a resampled distribution; and,
    provide a report of the resampled distribution.
   (d based upon investment data pertaining to the Selected
    investment, performing a resampled Statistical analysis of 23.   the
    The System according to claim 22, wherein the report
    resampled distribution is a distribution plot.
    to generate a resampled distribution.    24.  The   System according to claim 22, wherein the Sta
   12. The method according to claim 11, further including tistical analysis
the Steps of generating a plot based upon the resampled ment identifier, arequest    bias
    includes at least one of an invest
    parameter, a periods parameter and a
distribution.    plot parameter.
   13. The method according to claim 12, wherein the    25. The System according to claim 22, wherein the pro
Statistical analysis request includes at least one of an invest 35 CCSSO
ment identifier, a periods parameter, a function parameter, a
replications parameter and a plot parameter.    (a) Selects a Sample Space;
   14. The method according to claim 12, wherein the step    (b) generates at least one bootstrap Sample from the
of performing a resampled Statistical analysis further    Sample Space; and,
includes the Steps of:    40
    (c)  for each bootstrap Sample, generates a corresponding
   (a) Selecting a Sample Space;    bootstrap replication.
   (b) generating at least one bootstrap Sample from the    26. The System according to claim 22, further including an
    Sample Space; and,    alert rules database, wherein the alert rules database Stores
   (c) for each bootstrap Sample, generating a corresponding ata client
    one alert rule record pertaining to a condition upon which
    desires to be notified.
    bootstrap replication.    45
   15. The method according to claim 14, wherein the step    27. The system according to claim 26, wherein the
of generating at least one bootstrap Sample, further includes processor, upon the violation of an alert rule based upon a
the Steps of randomly Selecting a set of Q data points from resampled Statistical analysis, notifies a client.
the Sample Space, wherein Q is a number of periods.    28. The system according to claim 27, wherein the client
   16. The method according to claim 14, wherein the step 50 is notified by electronic mail (“e-mail').
of generating a bootstrap replication, further includes the    29. A System for providing Statistical analysis of invest
Step of taking a predetermined function of the bootstrap ment information over an information network comprising:
Sample.    a financial data database for Storing investment data;
   17. The method according to claim 14, further including    a front end Subsystem for receiving a Statistical analysis
the Steps of:    55    request,
   (a) before step (b), calculating at least one of an autocor    a parallel processor, wherein the parallel processor
    relation function and a partial autocorrelation function    includes:
    of the Sample Space for each of at least one lag    at least one processor for performing resampled Statis
    parameter (a); and    tical analysis.
   (b) determining a minimum lag parameter, N, wherein the 60 30. The system according to claim 29, wherein the front
    minimum lag parameter N minimizes an autocorrela end subsystem includes a Web server.
    tion function of the Sample Space.    31. The system according to claim 29, wherein each of the
   18. The method according to claim 17, wherein the step at last one processor performs a resampled Statistical analy
of generating at least one bootstrap Sample, further includes sis of a financial investment in parallel using financial data
the Steps of:    65 Stored in a shared memory area.
  (a) randomly selecting a starting point in the sample
    Space,    k   k   k   k   k
