Patent Abstract:
A computer-implemented financial management system provides the trading of securities via a network using virtual currency. A server computer receives buy and sell orders for derivative financial instruments from a plurality of client computers. The server computer attempts to match the buy and sell orders and then generates a market price through the use of a virtual specialist program executed by the server computer. The virtual specialist program responds to an imbalance in the matching of buy and sell orders. The virtual currency accumulated by HSX account holders as a result of successful trading may be converted to another currency, credited towards the cost of merchandise provided through a vendor&#39;s web site, etc.

Full Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This is a continuation of U.S. patent application Ser. No. 09/465,607, filed Dec. 17, 1999, which is a continuation of U.S. patent application Ser. No. 09/184,571, filed Nov. 2, 1998 (now U.S. Pat. No. 6,505,174), which is a continuation-in-part of U.S. patent application Ser. No. 08/620,906, filed Mar. 25, 1996 (now U.S. Pat. No. 5,950,176), all of which are incorporated herein by reference in their entireties. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     This invention relates in general to computer-implemented financial systems, and in particular to an improved automated securities trading system.  
         [0003]     Computer-implemented securities trading systems are well known in the art. One such system is that disclosed in U.S. Pat. No. 4,674,044, issued to Kalmus et al., entitled “Automated Securities Trading System”, and incorporated by reference herein. These computer-implemented securities trading systems obtain bid and asked trades based on the bid and asked prices. However, there is generally still a human component to such systems.  
         [0004]     For example, most financial markets also employ one or more market makers called “specialists.” These specialists fill customer orders from the specialist&#39;s inventory position if there are no matches for the customer orders in the open market. In the prior art, the specialist function is not automated, but is performed by a firm or individual. Thus there is a need in the art for an improved computer-implemented trading system that includes an automated specialist function to create a market for the securities traded and to lessen the volatility of smaller securities markets.  
       BRIEF SUMMARY OF THE INVENTION  
       [0005]     To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses method, apparatus and article of manufacture for a computer-implemented financial management system that permits the trading of securities via a network. In accordance with the present invention, a server computer receives buy and sell orders for derivative financial instruments from a plurality of client computers. The server computer matches the buy order to the sell orders and then generates a market price through the use of a virtual specialist program executed by the server computer. The virtual specialist program responds to an imbalance in the matching of the buy and sell orders.  
         [0006]     An object of the present invention is to lessen the price volatility of derivative financial instruments traded in narrower markets.  
         [0007]     A feature of the present invention is a virtual specialist program that engages in trading in the market to offset the price volatility and to provide liquidity to the market. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]     Referring now to the drawings in which like reference numbers represent corresponding parts throughout:  
         [0009]      FIG. 1  shows a block diagram of an exemplary hardware environment of the present invention;  
         [0010]      FIG. 2  shows a flowchart illustrating the general logic of a first embodiment of the present invention;  
         [0011]      FIG. 3  shows a flowchart illustrating the logic of the pricing/trading program of the first embodiment of the present invention;  
         [0012]      FIG. 4  shows a flowchart illustrating the logic of the generate market price program of the first embodiment of the present invention;  
         [0013]      FIG. 5  shows a flow diagram illustrating the logic of the virtual specialist program of the first embodiment of the present invention;  
         [0014]      FIG. 6  shows a flow diagram illustrating the logic of the stop trading program of the first embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0015]     According to the present invention, a computer-implemented trading system is provided for derivative financial instruments. The computer-implemented trading system accepts buy and sell orders from traders for the derivative financial instruments, sets a market price based on the supply and demand, and participates in the market as a trader in order to minimize price volatility. One embodiment of the present invention is a computer-implemented Hollywood Stock Exchange (HSX), which may be implemented as a simulation (i.e., game) or as an actual trading system for derivative financial instruments representing movies, talent, CDs, and television programs. These derivatives could be purchased with virtual currency known as Hollywood dollars (H$) which are controlled by a virtual reserve bank program.  
         [0016]     In one representative embodiment of the present invention, the derivative financial instruments are identified by a Current Trading List displayed for the traders that comprises a list of movies in various stages of production, talent, and other entertainment-oriented assets. The list contains:  
         [0017]     name of the derivative financial instrument;  
         [0018]     genre of the movie (action-adventure, mystery, western, comedy, etc.);  
         [0019]     production status (scripting, pre-production, filming, editing, release, home-video, etc.);  
         [0020]     number of shares in circulation;  
         [0021]     last trading price (printed every 15 minutes)  
         [0022]     price movement (i.e. +/−H$) since the previous midnight (PST);  
         [0023]     price movement since the previous mid-day;  
         [0024]     price movement year to date;  
         [0025]     Traders can view the list sorted by:  
         [0026]     name, alphabetically;  
         [0027]     genre, alphabetically;  
         [0028]     productions status, alphabetically;  
         [0029]     most active (number of shares traded yesterday);  
         [0030]     biggest gainers;  
         [0031]     biggest losers; and  
         [0032]     fastest movers today (e.g., fastest 20 movers up and fastest 20 movers down).  
         [0033]     Similar information would be provided for other derivative financial instruments offered on the Hollywood Stock Exchange.  
         [0034]     Each trader&#39;s portfolio is identified by a Portfolio data structure that comprises the trader&#39;s account status. This information includes:  
         [0035]     the amount of cash in the trader&#39;s account (paid interest at the system discount rate plus some increment, compounded daily);  
         [0036]     current percentage rate paid on cash balances;  
         [0037]     the total value of held stocks at the last selling price;  
         [0038]     the total value of held bonds at the last selling price;  
         [0039]     total portfolio value (TPV) (cash+bonds+stocks);  
         [0040]     percentage of TPV in cash;  
         [0041]     percentage of TPV in bonds; and  
         [0042]     percentage of TPV in stocks.  
         [0043]     Traders can generate any number of different reports for display, including:  
         [0044]     Lists of stocks and bonds being traded (see above);  
         [0045]     index of total Hollywood stocks (HSXI) expressed as a number, with 1000 defined as the aggregate total stock price value on opening day, wherein HSXI=(today&#39;s gross stock-value)/(opening day gross stock-value);  
         [0046]     index of total Hollywood bonds (HBXI) expressed as a number, with 1000 defined as the aggregate total bond price value on opening day, wherein HBXI=((today&#39;s gross bond-value)/(opening day gross bond-value));  
         [0047]     index of total Hollywood Stock Exchange (HMXI) comprised of all stocks and bonds, and expressed as a number, with 1000 as the aggregate total stock price value on opening, wherein HMXI=((today&#39;s gross market-value)/(opening day gross market-value));  
         [0048]     lists of the top market performers, e.g., the top 10 traders in percentage portfolio growth calculated as net portfolio value−change=(% change of cash)+(% change of stocks)+(% change of bonds), and for each of the categories: yesterday (midnight to midnight), last week (7 days, ending midnight, each Thursday), last month (closes at midnight last calendar day of month), last quarter (closes at midnight on last day of last month/quarter), year-to-date (running daily total of percentage value changes)/(days for year-to-date), and annually (closes at midnight on December 31 each year);  
         [0049]     overall market condition report, including a list of stopped issues with:  
         [0050]     name;  
         [0051]     last trading price;  
         [0052]     time that stop-trade condition occurred;  
         [0053]     percentage the issue actually moved on-the-day before the stop-trade;  
         [0054]     number of total shares and/or bonds traded today;  
         [0055]     dollar value of total trades today;  
         [0056]     number of buy and sell trades today; and  
         [0057]     number of buy and sell trades this month.  
         [0058]     Use of the above information guides traders in making future buy and sell orders.  
         [0059]     With reference to  FIG. 1 , a block diagram illustrates an exemplary hardware environment for one embodiment of the present invention. More particularly, a typical distributed computer system is illustrated, which uses the Internet  10  to connect client computers  12  executing for example, Web browsers, to server computers  14  executing a computer program embodying the present invention. A typical combination of resources may include client computers  12  that are personal computers or work stations connected via the Internet  10  to server computers  14  that are personal computers, work stations, minicomputers, or mainframes.  
         [0060]     Generally, both the client computers  12  and the server computers  14  are comprised of one or more CPUs  16 , various amounts of RAM storing computer programs  20  and other data, and other components typically found in computers. In addition, both the client computers  12  and the server computers  14  may include one or more monitors, and fixed or removable data storage devices  20  such as hard disk drives, floppy disk drives, and/or CD-ROM drives. Also, input devices, such as mouse pointing devices and keyboards, may be included.  
         [0061]     Both the client computers  12  and the server computers  14  operate under the control of an operating system, such as Windows, Macintosh, UNIX, etc. Further, both the client computers  12  and the server computers  14  each execute one or more computer programs  18  under the control of their respective operating systems. The present invention is preferably implemented as one or more computer programs  18  executed by the server computer  14 , although in alternative embodiments these computer programs  18  may also be executed on the client computer  12 .  
         [0062]     Generally, the computer programs  18  implementing the present invention are tangibly embodied in a computer-readable medium, e.g., one or more of the fixed and/or removable data storage devices  20  attached to the computer. Under control of the operating system, the computer programs  18  may be loaded from the data storage devices  20  into the RAM of the computer for subsequent execution by the CPU  16 . The computer programs  18  comprise instructions which, when read and executed by the computer, causes the computer to perform the steps necessary to execute the steps or elements of the present invention.  
         [0063]     Those skilled in the art will recognize that the exemplary environment illustrated in  FIG. 1  is not intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware environments may be used without departing from the scope of the present invention.  
         [0064]     With reference to  FIG. 2 , a flowchart illustrates the general logic of one embodiment of the present invention. Block  200  represents the server computer  14  waiting for the next event to occur. Once the event occurs, control is transferred to blocks  202 - 224  to identify the event and respond accordingly.  
         [0065]     Block  202  is a decision block that represents the server computer  14  determining whether it received a request to display data from the client computer  12 . If so, block  204  represents the server computer  14  transmitting data to the client computer  12  for subsequent display. The data transmitted for display preferably includes at least three types of data: the current list of trading derivative financial instruments, the trader&#39;s portfolio, and other reports generated by the server computer  14 .  
         [0066]     Block  206  is a decision block that represents the server computer  14  determining whether it received a request to submit a buy order from the client computer  12  for a particular derivative financial instrument, e.g., stock or bond. If so, block  208  represents the server computer  14  processing the buy order by placing it in a queue in the memory of the server computer  14 . The buy order is a data structure comprising:  
         [0067]     trader&#39;s account number;  
         [0068]     trader&#39;s name;  
         [0069]     the time and date of the order;  
         [0070]     the stock or bond to buy;  
         [0071]     the cash balance in the trader&#39;s account; and  
         [0072]     a text-field where the trader may enter the total number to buy (generally in multiples of 100).  
         [0073]     In one embodiment of the present invention, the buy order waits in the queue for the expiration of a predetermined “sweep pricing cycle.” The sweep pricing cycle occurs periodically, such as every 15 minutes, or during another specified time interval. The market price the trader actually pays for the derivative financial instrument is determined by the aggregate supply/demand for the derivative financial instrument at the end of the sweep pricing cycle during which the order was placed.  
         [0074]     The market price is set by the pricing/trading program executed by the server computer, which is described below in  FIG. 3 . The trader&#39;s account is then charged the market price for the derivative financial instrument. If the purchase uses up all available cash in the trader&#39;s account, the trader is “loaned” enough money to pay for the purchase, and their account is charged interest at a predetermined rate, e.g., 18% a year compounded daily, on the negative account balance. The interest is charged against the trader&#39;s account until they accumulate more cash to zero out the balance, either by selling stocks or buying dollars.  
         [0075]     Block  210  is a decision block that represents the server computer  14  determining whether it received a request to submit a sell order from the client computer  12 . If so, block  212  represents the server computer  14  processing the sell order by placing it in queue in the memory of the server computer  14 . The sell order is a data structure comprising:  
         [0076]     trader&#39;s account number; 
        trader&#39;s name;     the time and date of the order;     the stock or bond to sell;     the amount of the stock or bond in the trader&#39;s account; and     a text-field where the trader may enter the total number to sell (generally in multiples of 100).        
 
         [0082]     Like the buy order, the sell order waits in the queue for the expiration of the predetermined sweep pricing cycle. The market price at which the trader actually sells the derivative financial instrument is determined by the aggregate supply/demand for the derivative financial instrument at the end of the sweep pricing cycle during which the order was placed. The market price is set by the pricing/trading program executed by the server computer, which is described below in  FIG. 3 . The trader&#39;s account is then credited with the market price for the derivative financial instrument.  
         [0083]     The sell order can be either produced by a trader or generated by the server computer  14 , as will be explained in more detail below. For a sell order produced by a trader, he views his list of stocks or bonds on a monitor attached to the client computer and chooses to sell a quantity at the market price.  
         [0084]     When the trader requests to view the list of stocks, the server computer  14  transmits certain information to the client computer  12  for display, including, for each stock owned, the last trading price (LTP), the quantity of stocks, the purchase price, and the date purchased. Similarly, when viewing the list of bonds, the server computer  14  transmits certain information to the client computer  12  for display, including, for each bond owned, the last trading price (LTP), the interest rate being earned for each kind of bond, the quantity of bonds, the purchase price, and the date purchased.  
         [0085]     Block  214  is a decision block that represents the server computer  14  determining whether an internal timer for the sweep pricing cycle has expired. If so, block  216  represents the server computer  14  executing a pricing/trading program as described in  FIG. 3 .  
         [0086]     Block  218  is a decision block that represents the server computer  14  determining whether it received a request to change the discount rate. If so, block  220  represents the server computer  14  executing a discount rate program. In order to add or subtract liquidity, the server computer  14  occasionally steps in to act as a virtual reserve bank program and adjust the discount rate. The discount rate is adjusted based on the performance of the specific industry of the market. For the Hollywood Stock Exchange, the discount rate is adjusted to add or subtract liquidity to affect the growth of the entertainment industry. When the server computer  14  lowers the discount, all the bonds seem to be a better deal, because the bonds are paying a fixed rate interest that never changes. This encourages traders to buy more bonds, and such surge in buying demand causes a correlated increase in bond prices as described above. The same thing happens to stocks, because traders are making less money on the interest being paid on the cash balance in their trading account. When the server computer  14  raises the discount rate, the bonds seem to be a worse deal, since their advantage over the discount is smaller. Thus, the server computer  14  relaxes the buying pressures or demands for bonds, which should result in additional sell orders, or at least slow the buying of bonds, thus decreasing their prices as they trade in the market. Likewise, stocks seem less attractive, since traders could make more money by keeping cash in their accounts and getting interest on it.  
         [0087]     Block  222  is a decision block that represents the server computer  14  determining whether it received a request to revise the derivative list. If so, block  224  represents the server computer  14  executing a listing program. The server computer  14  determines whether the list of derivatives trading in the system should be revised. The list could be revised to reflect new derivative offerings, expired derivatives, and delisted derivatives.  
         [0088]     When a new derivative is offered, the price is based on the derivative&#39;s potential value. For example, for a new stock offering, which represents a movie on the Hollywood Stock Exchange, the initial price of the stock could be based on the movie&#39;s potential box office revenue. For a bond offering, which represents talent on the Hollywood Bond Exchange, the price of the bond could be based on the Hollywood Reporter&#39;s Star Power Index. A bond representing a talent with a low Star Power Index of 15 would be issued with a higher yield than a bond representing a talent with a high Star Power Index rating.  
         [0089]     A warrant with a strike price is attached to the new derivative when it is offered. When the derivative and warrant are first issued, the warrant is of no value until the strike price is reached. For a stock, the strike price could be reached after the movie has grossed a certain level of revenue. When a derivative is delisted from the exchange, a stock due to the movie ending its production run or a talent due to retirement or death, for example, the warrants are called and the traders are paid the value of the warrants, thus providing off-balance sheet financing for studios.  
         [0090]     With reference to  FIG. 3 , a flowchart illustrating the logic of the pricing/trading program of the present invention is shown. Block  300  represents the server computer  14  retrieving the buy and sell orders that have accumulated in the queue during the period since the prior sweep pricing cycle. Block  302  represents the server computer  14  matching the buy orders with the sell orders, although it is likely than an identical number of buy and sell orders would not have accumulated in the queue during the period. Block  304  represents the server computer  14  executing the generate market price program described in  FIG. 4  to determine the market price for the derivative financial instruments. After the market price is determined, block  306  represents the server computer  14  updating the traders&#39; portfolios to reflect the buy and sell orders in the queue being processed at the market price. Block  308  represents the end of the pricing/trading program.  
         [0091]     With reference to  FIG. 4 , a flowchart illustrating the logic of the generate market price program of the present invention is shown. One purpose of the generate market price logic is to generate a market price for a derivative financial instrument that reflects the demand or lack of demand for the derivative financial instrument in the market. Block  400  represents the server computer  14  measuring the imbalance between the buy and sell orders during the period since the prior sweep pricing cycle. Block  402  represents the server computer  14  determining the price movement of a derivative financial instrument caused by the imbalance in buy and sell orders. Block  404  represents the server computer  14  executing a virtual specialist program as described in  FIG. 5  to provide stability and liquidity to the market. Block  406  represents the server computer  14  executing the stop trade program, as described in  FIG. 6 , to stop trading in a derivative financial instrument if the projected price movement is excessive during the trading day and threatens the integrity of the market for that instrument. Block  408  represents the server computer  14  setting the market price, which becomes the price the pricing/trading program uses to update the traders&#39; portfolios. Block  410  represents the end of the generate market price program.  
         [0092]     In measuring the imbalance between buy and sell orders, as represented by block  400 , the absolute difference between the number of sells and the number of buys is defined as the net movement in sweep (NMS). A sweep increment variable (SIV) is defined as the increase or decrease in price caused by an incremental imbalance in the number of buy orders and sell orders. A lot movement variable (LMV) represents the incremental lot size that will result in a price increase or decrease of one SIV. The projected price movement (PM) can be expressed as: PM=(NMS/LMV)* SIv.  
         [0093]     For example, with 42,000 buy orders and 30,000 sell orders for a particular stock, the NMS=(42,000−30,000)=12,000. With SIV=$0.25 and LMV=5000, the price movement of the particular stock will be (12,000/5,000)*0.25=$0.50. Thus, the market price of the particular stock will be $0.50 greater than the last trading price.  
         [0094]     With such pricing scheme, there is the potential for great volatility in the price of a derivative financial instrument and the eventual loss of investor confidence in the market mechanism. In exchanges such as the Hollywood Stock Exchange, it would be possible for one or more individuals to pursue trading strategies that would purposely cause drastic price fluctuations.  
         [0095]     In order to encourage growth and stability in the capital market regulated by the trading system of the present invention, a virtual specialist program is executed by the server computer, as represented by block  404  in  FIG. 4 . In executing the virtual specialist program, the server computer  14  regulates the trading by actively trading in the market out of a virtual specialist portfolio (VSP). In one embodiment of the present invention, the virtual specialist program portfolio initially contains half of all the issued shares of each derivative financial instrument.  
         [0096]     With reference to  FIG. 5 , a flow diagram illustrating the logic of the virtual specialist program of the present invention is shown. Block  500  is a decision block that represents the server computer  14  determining whether the price movement during the sweep pricing cycle is greater or equal to an adjusted price movement threshold (APT). The APT is a constant in the memory of the server computer  14 . If the APT is greater than the price movement, then the server computer  14  does not trade in the market. If the price movement is greater than or equal to the APT, then the server computer  14  trades out of a virtual specialist program portfolio. The level of trading by the server computer  14  is determined by the amount that the price movement exceeded the APT. The greater the price movement, the more shares the server computer  14  trades to offset the price movement.  
         [0097]     In an exemplary embodiment of the present invention, the ATP=1.25 and the server computer  14  performs the following steps: if PM=APT then the server computer  14  matches 10% of unmatched shares; if PM=APT+0.25 then the server computer  14  matches 20% of unmatched shares; if PM=APT+0.50 then the server computer  14  matches 30% of unmatched shares; if PM=APT+0.75 then the server computer  14  matches 40% of unmatched shares; if PM=APT+1.0 then the server computer  14  matches 50% of unmatched shares; if PM=APT+1.25 then the server computer  14  matches 60% of unmatched shares; if PM=APT+1.50 then the server computer  14  matches 70% of unmatched shares; if PM=APT+1.75 then the server computer  14  matches 80% of unmatched shares.  
         [0098]     Block  502  represents the server computer  14  generating a buy or a sell order to offset the price movement. The buy or sell order generated by the server computer  14  is placed in the queue with the trader buy and sell orders to be processed during the next sweep cycle.  
         [0099]     In one embodiment of the present invention, since the virtual specialist program portfolio initially includes half of all the securities traded, the server computer  14  could eventually deplete the virtual specialist program portfolio or cause the virtual specialist program portfolio to own all the shares of a stock. In order to maintain a balanced virtual specialist program portfolio, and provide some liquidity to the market, the server computer  14  generates additional buy and sell orders to offset orders generated in response to the price movement exceeding the APT. Block  504  represents the server computer  14  generating timed buy and sell orders. In one embodiment of the invention, the server computer  14  assesses each stock and each bond in the virtual specialist program portfolio. The server computer  14  determines the deficit or surplus in the item, and then places 1/288 th  of the deficit as a “timed recovery order” into each successive 15 minute segment for the next 3 days. When the pricing/trading program  255  matches buy and sell orders as represented by block  320 , the pricing/trading program  255  includes any “timed recovery orders” outstanding for the last 3 days in the sweep. These orders are matched with the traders&#39; buy and sell orders. Block  506  represents the end of the virtual specialist program.  
         [0100]      FIG. 6  is a flow diagram illustrating the logic of the stop trading program of the present invention. Block  600  represents the server computer  14  determining the price movement of a stock caused by the imbalance in buy and sell orders. Block  602  represents the server computer  14  measuring the price movement on the day, not just during the sweep cycle period. Block  604  is a decision block that represents the server computer  14  determining whether the net price movement (NPM) within one “trading day” (i.e., midnight-midnight) is greater than 50% up or down. As represented by block  606 , the buy and sell orders are removed from the queue if the net price movement is greater than 50% for a stock trading above $20. At that point, the trading in that issue is stopped within the 15 minute period until further notice. All orders (buy and sell) for that stock during this sweep are unfilled. The trading has stopped due to “excessive order imbalance”.  
         [0101]     For example, let it be assumed that the Last Trading Price (LTP) for “Rambo-17” is $67 (+7.5 on-the-day). During one 15-minute sweep pricing cycle, the server computer  24  receives buy orders for 655,000 shares of “Rambo-17”. In addition, the server computer  14  receives sell orders for 35,000 shares of “Rambo-17” during the same sweep pricing cycle. The server computer  14  evaluates the price movement for the sweep pricing cycle, and tests it to see if the net projected price movement “on-the-day” is greater than 50%. If it would be greater than 50%, it stops trading in that instrument only. In this example, there is a net order-imbalance of 620,000 shares, which would create an up movement in price of (+620,000/5000)*$0.25=+$31.00. Since the total movement on the day would be the $7.50 so far plus the additional $31.00, the net projected price movement on the day would be $31.00+$7.50=$38.50. If the opening price that day was $59.50, the percentage projected price movement for the day is $38.50/$59.50=64%. Since the projected net price movement would be greater than 50%, the trading is stopped for that instrument. If the projected price movement was less than 50%, the price of the instrument would be adjusted accordingly and trade in that stock continued. Block  608  represents the STOP TRADE order that issues regarding the particular stock. Traders who issued a buy or sell order for the stock are notified that the order has not been filled due to excessive order imbalance during the trading day. Finally, block  610  represents the end of the stop trading program.  
         [0102]     While the invention has been described and illustrated in connection with preferred embodiments, many variations and modifications as will be evident to those skilled in this art may be made without departing from the spirit and scope of the invention, and the invention is thus not to be limited to the precise details of methodology or construction set forth above as such variations and modification are intended to be included within the scope of the invention.

Technology Classification (CPC): 6