WO2002052369A2 - System and method for a universal trading platform - Google Patents

System and method for a universal trading platform Download PDF

Info

Publication number
WO2002052369A2
WO2002052369A2 PCT/US2001/046794 US0146794W WO02052369A2 WO 2002052369 A2 WO2002052369 A2 WO 2002052369A2 US 0146794 W US0146794 W US 0146794W WO 02052369 A2 WO02052369 A2 WO 02052369A2
Authority
WO
WIPO (PCT)
Prior art keywords
order
orders
market
sell
limit
Prior art date
Application number
PCT/US2001/046794
Other languages
French (fr)
Other versions
WO2002052369A3 (en
Original Assignee
Financial Markets Solutions, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Financial Markets Solutions, Inc. filed Critical Financial Markets Solutions, Inc.
Priority to AU2002246590A priority Critical patent/AU2002246590A1/en
Publication of WO2002052369A2 publication Critical patent/WO2002052369A2/en
Publication of WO2002052369A3 publication Critical patent/WO2002052369A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • the invention relates to a computer system and method, and more particularly to a computer system and method that takes orders and creates a market.
  • the Foreign Exchange is the world's largest financial market with an average daily turnover of $ 1.5 Trillion per day. It is several times larger than the US Government securities market, the second largest market in the world. At present, the market trades 24 hours a day 5 days a week and is accessible only to clients of commercial investment banks, investment banks and brokerage houses. Segmentation has increased dramatically over the last years, as costs have spiraled and the market continues to be fragmented. Additionally, there is limited access to the Foreign Exchange and institutions (e.g. banks) act as gatekeepers and set the prices. For example, if an individual contacted multiple banks regarding a price, each bank would very likely provide a different price. The prices are different because the market ,4s fragmented, i.e., there is no central market. Moreover, an individual can't post a better price than the institution and individuals can't trade against each other because the they have no means for bypassing the institution and no means for matching each others orders.
  • institutions e.g. banks
  • a system for bringing separate pools of liquidity together to a create a market over a communications network A first processing module that receives a plurality of orders from users and compiles an overview of all of the plurality of orders.
  • a second processing module that determines a best bid and a best offer from the plurality of orders.
  • a third processing module that matches an order to one of the plurality of orders.
  • a fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order.
  • a system for bringing separate pools of liquidity together to a create a market over a communications network A first processing module that receives a plurality of best bids and best offers from users and compiles an overview of all the plurality of best bids and best offers. A second processing module that determines a best bid and a best offer from the plurality of best bids and best offers. A third processing module that matches an order to one of the plurality of best bids and best offers. A fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order.
  • a method for processing an order having a trader identification, an order quantity, and an order type The order is received over a communications network and stored in a database having a plurality of previously stored orders, the previously stored orders are grouped into order types and the order being stored with an appropriate group. It is determined whether the order is intended to close a position and whether the order is within each of the one or more predefined parameters, the one or more predefined parameters being specific to the trader identification. If the order is not within each of the one or more parameters, the order is canceled and deleted from the database. If the order is within each of the one or more predefined parameters, it is determined whether the order matches one of the preentered orders.
  • the order matches one of the preentered orders, the order is stored in the database an indicator indicating an association between the order and the one of the predetermined orders. Then an order fill message is sent over the communications network.
  • a trade fee associated with the order can be calculated based upon a trader classification and a number of trades executed.
  • the one or more predefined parameters can be account and risk values.
  • the order can be a limit buy order, a stop buy order, a limit sell, a stop sell, an at market buy order, an at market sell order, a limit buy order, or a limit sell order.
  • the previously stored orders can be grouped by limit sell and stop buy orders having identical values, and/or grouped by buy limit and sell stop having identical values.
  • determining whether the order matches one of the previously stored orders it is further determined if there is a limit buy order related to a current market, and a stop sell order related to the current market. If there is, an order fill message is sent over the communications network. Additionally, if there is a limit sell order related to a current market, and a stop buy order related to the current market, then an order fill message is sent over the communications network.
  • FIG. 1 shows an illustrative presentation of an arrangement of typical market data types that are presented to a user
  • FIG. 2 shows an illustrative presentation of components of a Virtual Market that are presented to a user
  • FIG.3 shows an illustrative presentation of a Spot Window that is presented to a user
  • FIG. 4 shows an illustrative presentation of a Spread Management Table presented to a bank
  • FIG. 5 shows an illustrative presentation of a OCO order screen shot
  • FIG. 6 shows an illustrative presentation of an ID Single Order screen shot
  • FIG. 7 shows an illustrative presentation of an ID OCO Order screen shot
  • FIG.8 shows an illustrative presentation of a Speed Limit and Stop Sell Orders screen shots
  • FIG.9 shows an illustrative presentation of a Speed Limit Buy Order and a Stop Buy Order screen shots
  • FIG. 10 shows an illustrative presentation of a screen shot of an Order View in the
  • FIG. 11 shows an illustrative presentation of a screen shot of an Order View in the Virtual Market
  • FIG. 12 shows an illustrative presentation of a Fusion screen shot
  • FIG. 13 shows an illustrative presentation of a Fusion Lite screen shot
  • FIG. 14 shows an illustrative presentation of an Interbank screen shot
  • FIG. 15 shows an illustrative presentation of a Direct Dealing System screen shot
  • FIG. 16 shows an illustrative presentation of a Direct Order Entry System screen shot
  • FIG. 17 shows an illustrative presentation of components in a Market Overview screen shot
  • FIG. 18 shows a flow diagram for submitting orders to the system
  • FIG. 19 shows a flow diagram for OrderSubmit process
  • FIG. 20 shows a flow diagram for an InsertOrderSP process
  • FIG.21 shows a flow diagram for a Matcher process
  • FIG. 22 shows a flow diagram for a TradePower process
  • FIG. 23 shows a flow diagram for an OrderFill process
  • FIG. 24 shows a flow diagram for an order entry round trip process
  • FIG. 25 shows a flow diagram for OTC order
  • FIG. 26 shows a flow diagram for a dealer market making process
  • FIG. 27 presents a diagram of the Universal Trading Platform system
  • FIG.28 presents a diagram of modules within the Universal Trading Platform system.
  • a dynamic transaction system that assists in eliminating the inefficiencies in the global foreign exchange (FX) market by providing a single, seamless, transaction platform.
  • FX foreign exchange
  • banks and brokers are able to open up the market to a whole new generation of FX investors and the market will grow dramatically.
  • Foreign exchange is an excellent vehicle for investors in that it provides a highly liquid product, very commoditized, and a truly, global marketplace.
  • the FX market provides the investor with a whole new dimension to his portfolio. It provides the opportunity to actively manage any country risk and exploit the FX market as a new investment vehicle.
  • Foreign exchange enables investors to execute yield plays, carry trades and position either long or short without any constraints. It is, in effect, a new asset class for investors who have traditionally focused on equity, fixed income and real estate.
  • the fundamental design and business logic of the system can be easily converted to a stock, futures/commodities trading system, fixed income, data/analytic or any number of product lines that can benefit by direct client access. This will result in lower costs for client support functions and maintenance.
  • the Universal Trading Platform is designed to provide institutions with a single, low-cost foreign exchange (FX) transaction platform that customers can access directly through the institutions website. By providing the market with a common dealing platform a more efficient tool is provided for clients. Market liquidity can be increased by linking these separate pools of customer interest via this platform.
  • the system functions within a banks FX business structure and distribution network. The system allows users to view pricing and execute trades in real time. The interface updates information and allows users to interact directly with the market. The system is designed for high performance real time updates, heavy database transaction usage, fast retrieval and querying. By utilizing a browser-based design, total flexibility in providing users with upgrades and enhancements.
  • the system is more efficient in delivering to the customer side, as all transactions and updates occur on the back-end, thereby reducing the amount of data throughput.
  • the system also accommodates all types of customer orders, automatically confirming all activity in the client's account. This automation assists the client in more efficient cash management and risk control. All settlements of trades will occur as they do now, between the institutions themselves.
  • the system design is overlaid with the multiple client front ends, provides our clients with an internal single system solution, whether they have small retail users, mid-tier institutions, global players or a combination thereof. This enables us to link these separate pools of user liquidity into a combined market (Sub Market), which is more efficient and more transparent. By linking these fragmented pools of customer interest, banks and brokers benefit from the additional liquidity and flow.
  • the concept is to provide any bank or broker access to this market and the benefits that this additional liquidity provides for his client business.
  • the Universal Trading Platform (UTP) Virtual Market (VM) is based on four major concepts: 1) a perfect market; 2) an virtual exchange; 3) a universal trading platform; and 4) an Internet browser.
  • the UTP and VM are based on the concept of the Perfect Market. In this concept the participants will have direct and equal access to a "Virtual Market (VM)" (Perfect Market). They can submit orders; monitor the market and trade directly without any intermediaries. The goal is to create the best market conditions for market users and market makers, without the disruptions caused by intermediaries and current market inefficiencies.
  • VM Virtual Market
  • Perfect Market Perfect Market
  • FIG. 1 shows an illustrative presentation of an arrangement of typical market data types that are presented to a client.
  • the goal is to provide more efficient, effective and cheaper access to all users.
  • both current and future FX players will have a more efficient platform to manage their foreign exchange exposures. It will open up the market up to new users who have been eliminated from participating because of the current business model.
  • the application can also be delivered through an exclusive Private Network.
  • the system Next to the Limit Orders 204, 208 the system generates the Net Total 212 position at each rate level. The last row on the right side is the Volume 214, where the traded amounts for each rate will be displayed. In another embodiment the differences between the previous embodiment and this embodiment is that the Sell Orders are lined on the right side and all the Buy Orders on the left side.
  • the main difference between the previous embodiments is that in the OMV the user is not allowed to submit orders into the Spot Window.
  • the user plays a passive role by only providing liquidity.
  • the user is not permitted to trade actively. They are not allowed to submit At-Market Sell or Buy orders. They cannot hit the bids or take the offers. Users orders will be executed by the bank (institution), which runs the Virtual Market.
  • FIG. 3 a spot window is illustrated.
  • the Rates 302 for a currency are displayed around the latest Best Bid 304 and Best Offer 306 in the Virtual Market. The colors will appear if there are any orders in the system within the displayed rate range.
  • Virtual Market can also display the Volume 308 traded during a trading day at a certain rate level.
  • the Net Total 310 is the difference between the sell and buy orders at a certain rate level. If it is a negative number, there are more sellers. If it is a positive number, there are more buyers. In this illustration, only the Net Total 310 are available for at-market orders..
  • the Colors (not shown) in the Virtual Market have a meaning and are related to yesterday's range.
  • the area above yesterday's high will be displayed in Red.
  • the range between yesterday' s Close and High will be shown in Yellow.
  • the system takes all the existing orders into account and generates in real time the Best Bid 304 (108.60) and Best Offer 306 (108.64).
  • the white area which is also called Spot Window 312, reflects the current spread 312,314 between best bid and offer. This window will widen and shrink depending on market activities (supply and demand). Any Limit Sell order or Limit Buy order entered into the Spot Window 312 will shrink the white area. Any active buy or sell At-Market orders (if the whole net total at the best bid or best offer is taken) will widen the Spot Window 312.
  • the Spot Window 312 can move up or down along side the rates depending on the market activities.
  • the institution which manages the system can decide through the Back Office Version of the Universal Trading Platform to make the liquidity (orders, best bids and offers) visible or non- visible to end users. They have also the option to make all the orders visible for the bank, which runs the market risk. They can also choose to restrict the clients to view only their own orders.
  • the sponsor or the entity, which manages the system can define the minimum and maximum amount which can be traded in the system, through the Back Office Version. They can also define the amount fraction or allow all kind of amounts between the maximum and minimum amount. If they go for the fraction solution the clients will be able only to trade for example in 100 k fractions.
  • the Virtual Market can be connected to a credit/margin check module.
  • the pre-order or pre-trade check makes sure that only users with available trading and credit lines enter the Virtual Market and trade. If the Virtual Market is used as a multiple bank platform the credit/margin module will check also the interbank credit lines.
  • a Matching module is built into the Virtual Market.
  • the function of the Matching module is to match Sellers and Buyers at a certain rate level, when a trade is initiated. This happens automatically based on the matching rules. No human element is involved. To initiate a Matching an active buyer or seller needs to initiate an at-market order to sell or to buy. All the orders related to this rate level will be executed based on the matching rules, which is described in more detail below.
  • the Virtual Market can be used as a platform to create an Internal Central Market and/or Exchange, where Departments, affiliated Banks, Clients, Branches and Dealing Rooms participate directly. Through this model all the liquidity in the whole network can be pooled together into one market and distributed back to all users. If the internal liquidity is not sufficient to generate smaller spreads and better liquidity then liquidity from the OTC (other banks) can be pulled in. If needed the internal bid and offer can be pushed into the OTC market.
  • the main market participants are Departments, affiliated Banks, Clients, Branches and Dealing Rooms.
  • the Bank can decide about two ways of participation. Direct participation: In this case the participants have direct access to the virtual market price. In other words the participants are market maker and market user at the same time without any intermediaries.
  • the Spread Table see FIG. 4, is used by the bank.
  • the counter party for each trade can be a different sponsor (bank).
  • the bank will become the counter party for the buyer and seller. This way a smooth settlement can be assured from the bank's side without assuming any risk position.
  • the participants can access the virtual market through a Private Network.
  • the Internet is another way to offer a virtual market to participants.
  • the virtual market can be also used with a network of banks, where all members of the network provide each other liquidity.
  • There are three ways to create a virtual market network. ( 1 ) a single pole network; (2) a multiple pole network; and (3) a center pole network.
  • the single pole network has a major Center Bank as the main liquidity provider.
  • Several other banks (Satellite Banks) are connected to the Center Bank through Liquidity Links.
  • the satellite banks are just liquidity users. The relationship is one way.
  • the Center Bank creates its own VM with its internal participants first. The best Bid and Offer or a price with a certain spread is pushed to the Satellite Banks.
  • Satellite Banks can trade on it and/or push it to their own clients through their internal systems.
  • the Center Bank must have a VM established.
  • the satellite banks can use their internal system or the VM to establish relationship. In case of a trade an immediate confirmation will be sent to the Center bank. From there on the Back Offices of both banks take care of the settlement like in an OTC market deal.
  • the network can be organized as an exclusive private network.
  • the network can be organized over the Internet.
  • the center bank will push the Bids and Offers through the Internet.
  • External hosting In this case the Center Bank out-sources the hosting. A separate company runs the VM out of a server farm. It is monitored and maintained through this company
  • the network participants are equal. They all use the VM as the internal platform. They all are at the same time market users and market makers. Through the network each bank pushes the best Bid and Offer of their own internal Virtual Market to each other. This way the whole network creates the best Bid and Offer between the banks.
  • the clients trade only in their bank's Virtual Market.
  • indirect client participation The clients are part of the internal Virtual Market. If they trade on any price provided from a member bank of the network, their house bank will be in between them and the other bank.
  • the network between the banks can be an exclusive private network.
  • SINGLE BANK VIRTUAL MARKET NETWORK: INTERNET /ASP Another way to organize the network is over the Internet. Each bank's website can be connected to each other and the prices can be pushed to each other. The banks can also out source their application hosting to an ASP, with the same connectivity to each other.
  • the center pole virtual market network embodiment is created through a new entity, which the member banks create.
  • the VM platform is organized and run by this entity.
  • the member banks are becoming direct clients. Clients can have direct or indirect access to this platform. Any trade between the banks even initiated by a client action is an interbank deal.
  • the member banks can participate directly through their dealers.
  • the member banks' clients may also have direct access to the VM through the control of the member bank. These "clients" cannot be a direct counter-party for other banks. Therefore even if they have direct access to the VM through their sponsor banks, the sponsor banks will always be the ultimate counter party for all deals and their banks will settle the transaction with other member bank.
  • Any deal transacted on the Consortium platform is an interbank deal, even if it is initiated indirectly through a member bank's clients.
  • the credit line and settlement issues are managed through existing interbank procedures.
  • the banks will settle their net positions through their internal back offices as in the OTC market.
  • the member banks of the consortium can organize their network through an exclusive private network.
  • SINGLE BANK VIRTUAL MARKET NETWORK: INTERNET /ASP The member banks can also organize the network through the Internet.
  • the consortium can offer the VM through its web portal to their member banks. This website can be also out sourced to an ASP site.
  • At-Market orders are executed in the VM immediately through the Matching process.
  • a Limit Sell if the user is a buyer
  • Limit Buy order if the user is a seller
  • the user can select the currency pair and type in any amount for any of the currencies. He also needs to choose the action Buy or Sell and submit the order into the system.
  • the At-Market order has two modes: All: In this mode the full amount of the At-Market order will be executed at any rate where Net Amounts (Limit order minus Stop order) are available.
  • the system can use several rate level orders until the full amount is fully executed. Part: The user needs to define the worse-case rate level, that shouldn't be exceeded during the execution. In other words the user is asking the systems to execute his order not worse than a specific rate.
  • Time Horizon The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency 1 or Currency 2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good-Till-Cancel, Good Until
  • a Limit Sell order will be accepted only if it is above the Spot Bid. At the Spot Bid it will be executed as an At-Market-Sell order. Below Spot Bid it will be rejected. A Limit Buy order will be accepted only if it is below the Spot Offer. At the Spot Offer it will be executed as an At-Market-Buy order. Above Spot Offer it will be rejected.
  • STOP ORDER The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency 1 or Ccurrency2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good Till Cancel, Good Until (choose date and time) and Order Suspension (choose starting time and ending time). The order will go through if the order form is properly filled and the rate is consistent with the rules. A Stop Sell order will be accepted only if it is below the Spot Bid. A Stop Buy order will be accepted only if it is above the Spot Offer.
  • an OCO order consists of a Limit 502 order and a Stop 504 order.
  • a Limit Sell 506 order above the Spot Bid and Stop Sell 508 order below the Spot Bid If the client has a short position he chooses a Limit Buy 510 order below the Spot Offer and Stop Buy 512 order above the Spot Offer.
  • the user needs to make his choice concerning Action, Currency Pair, Amount Currency 1 or Ccurrency2, and Rate.
  • Time Horizon see Time Horizon: Good Till Cancel, Good Until and Order Suspension.
  • the ID Single Order consists of two orders. Referring to FIG. 6, the first one is to open a position and the second order is a Stop 602 order to protect the position. If the user wants to go long in his first order, he needs to submit a Stop Sell 604 order below the rate he wants to buy. If the user wants to go short in his first order, he needs to submit a Stop Buy 606 order above the rate he wants to sell. The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency lor Ccurrency2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good Till Cancel, Good Until (choose date and time) and Order Suspension.
  • ID OCO ORDER This consists of three orders. Referring to FIG. 7, the first order 702, like the
  • ID Single is a position opening order.
  • the last two orders 704, 706 are submitted into the VM after the execution of the first order 702 to protect the position on the upside and downside. If the user wants to go long with the first order 702, he needs to create a Limit Sell 708 order to take profit and a Stop Sell 710 order to cut losses. If the user wants to go short with the first order, he needs to create a Limit Buy 712 order to take profit and a Stop Buy
  • the Time Horizon has three different modes as described above.
  • the first mode the user has chosen Good Till Cancel. In this case the order will stay in the VM until the user cancels the order or until it is executed in the market. A partial execution is possible for all passive orders like Limit or Stop orders.
  • the second mode Good Until, the user chooses a date and time. The order will remain active in the VM until then. Once the date and time is reached, the system will automatically cancel the orders.
  • Order Suspension the client chooses a time period where the order will be suspended (taken out of the market) and resubmitted into the market. The client needs to choose the starting time and the ending time. The Order Suspension will be repeated in the system until the order expires or is fully executed.
  • Speed Orders are provide the VM participants to submit orders with one or two "clicks". Users of Speed Orders are not required to fill in many details in the order form. The participants can change only the amount or the rate. Once a customer begins to trade, the last traded amount will be stored in the system. Anytime the user opens the Speed Order form this "Default Amount" will be automatically displayed. The rates will be also automatically taken over once the user clicks a certain rate on the Virtual Market Screen. With the first click the user opens the Speed order form and determines the rate. With the second click the Speed order will be submitted directly into the VM and immediately becomes part of the VM liquidity
  • Limit Sell 802 area is above the Best Bid 804 and ends at the Best Spot Bid level. At the Best Spot Bid level the limit order will be executed as an At-Market order. The Stop Sell area starts at and below the Best Spot Bid. These types of orders can be only submitted. through these areas of the screen. The user needs to click the Speed Limit Sell 806 or Speed
  • Stop Sell 808 column at a chosen rate level The system will display the rate and the default amount (last traded amount) automatically. The user can change both the amount and the rates, then with a second click submit the order directly into the VM. If the client changes the amount for the one currency, the system will automatically adjust the amount for the second currency based on the rate in the order form.
  • the Speed Limit Buy and Speed Stop Buy areas are illustrated in FIG.9.
  • the Limit Buy 902 area is below the Best Spot Offer and ends at the Best Spot Offer level.
  • the Stop Buy area starts at and above the Best Spot Offer. These types of orders can be only submitted, through these areas of the screen.
  • the user needs to click the Speed Limit Buy or Speed Stop Buy column at a chosen rate level.
  • the system will display the rate and the default amount (last traded amount) automatically.
  • the user can change both the amount and the rates, before with the second click submitting the orders directly into the Virtual Market (VM). If the client changes the amount for the one currency, the system will automatically adjust the amount for the second currency based on the rate in the order form.
  • VM Virtual Market
  • the Virtual Market will confirm the acceptance of those orders like above. These confirmations will display the order number, which is confirmation that the order is in the VM.
  • each participant can be a Market Maker and Market User at the same time.
  • the participant can improve the Best Spot Offer by submitting better (lower)
  • the participants can click the rates in the spot window and submit Limit Sell or Limit Buy orders and improve the best bid and offer in the VM.
  • the client needs to click the defined areas for limit sell, limit buy, stop sell or stop buy.
  • the system will open the speed order window in which the rate (where the user has clicked) and the default amount (last traded amount) will be displayed. The user can change the amount and the rate any time. With the second click the speed order will be sent into the "VIRTUAL MARKET" and displayed immediately.
  • the Speed Market Maker is designed as a tool to submit Best spot Bids and / or Offers into the system at the same time.
  • the user can chose to submit either a Best
  • Bid Bid
  • a Best Offer a Best Offer or both. If the user decides to submit Bid and Offer at the same time he needs to click the bid rate.
  • the offer rate will be calculated based on the pre-defined Spread in the system. In other cases the user will select the rate level to submit his mterest.
  • the Best Bid and Offer are in fact Limit Buy and Limit Sell orders. The user can change his quote in the system by choosing a different rate level and submitting new Best Bid and Offer. The system will automatically cancel the last quote. The quotes can be done with one or two clicks through the Virtual Market screen.
  • the trader can submit Speed Bid and Offer by clicking the BID rate first. Afterwards the system adds the predefined spread the Spot Bid and calculates the Spot Offer. The trader can change the spread, amounts or the rates if he wants. With the second click the Speed Bids and Offers can be submitted into the VM. If the trader wants to change his Speed Bid and Offer he can repeat the same procedure and submit the new Speed Bid and Offer into the market. The system cancels automatically the existing old Bids and Offers before it sends the new Speed Bid and Offer into the VM. SCENARIO 1 : The traders improve the existing Spot Bid and Offer in the VM.
  • SCENARIO 2 The market maker creates a new Spot Window above the old Spot Offer. With this action all the orders at and above the old Spot Offer will be executed up to the new Spot Bid rate.
  • SCENARIO 3 The market maker creates a new Spot Window below the old Spot Bid. With this action all the orders at and below the old Spot Bid will be executed up to the new Spot Offer rate.
  • the market maker can decide to show only Speed Spot Bids, which is a Limit Buy order, in the VM. To do this the market maker needs to disable the Speed Offer functionality. The user needs to pick the rate level to submit Speed Spot Bid (Limit Buy Order). Any new Speed Spot Bid will cancel the old one. SCENARIO 1 : The market maker improves just the Spot Bid inside the existing Spot Window, by choosing a rate level above the existing Spot Bid.
  • SCENARIO 2 The market maker increased the Spot Bid above the Spot Offer. With this action all the orders at and above the old Spot Offer will be executed up to the new Spot Bid rate.
  • the market maker can decide to just show Speed Spot Offers, which is a Limit Sell order, in the VM. To do this the market maker needs to disable the Speed Bid functionality. The user needs to pick the rate level to submit Speed Spot Offer (Limit Sell
  • SCENARIO 1 The market maker improves just the Spot Offer inside the existing Spot Window, by choosing a rate level below the existing Spot Offer.
  • SCENARIO 2 The market maker improves just the Spot Offer below the Spot Bid. With this action all the orders at and below the old Spot Bid will be executed up to the new Spot Offer rate.
  • AUTOMATED ORDERS IN THE VIRTUAL MARKET Banks can use high quality OTC market rates or rates from another bank to pump real time non-stop liquidity into its own VM. These are Spot Bids (Limit Buy Order) and Spot Offers (Limit Sell Order), which will be shown in the VM. If the rates are delivered from another bank the counter party in any deal will be this liquidity-providing bank. If the rates used are from a data provider then the owner of the VM will be the counter party. The OTC orders from outside will be replaced any time the rate changes. SCENARIO 1 : In this case the incoming OTC orders improve the bid and offer in the VM. SCENARIO 2: The OTC orders are above the existing Spot Offer.
  • the new Bid will execute all existing orders at or above the old Spot Offer up to the new Spot Bid rates. In the example below all orders at 1.7857 and 1.7858 will be executed. SCENARIO 3: The OTC orders are Below the existing Spot Bid. In this case the new Offer will execute all existing orders at or below the old Spot Bid up to the new Spot Offer rate.
  • Matching occurs in the Virtual Market (VM) when buyers and sellers meet each other at the same currency rate and enter a deal with each other.
  • the counter party in the matching process can be any market participant. The following conditions need to be there before the system matches:
  • Passive Orders are Limit and Stop orders submitted at a certain rate into the system. They alone are not enough to initiate a matching. First the VM takes all the passive Limit orders and processes them alongside the rates. The first lowest Limit Sell order becomes the Spot Offer and the first highest Limit Buy becomes the Spot Bid. Once the Spot Bid and Offer build with the first orders, then the Stop Orders can be submitted based on certain rules. Stop orders are allowed to be submitted at or outside of the Spot Window, which is defined by Spot Offer and Bid. Stop Buys are placed at or above the Spot Offer and Stop Sells are placed at or below the Spot Bid.
  • Active orders are At-Market orders. They are sent into the market once the Spot Bid and Spot Offer are created. At -Market orders can initiate a Sell or a Buy. An At-Market Sell order must meet Spot Bid and an At-Market Buy must meet a Spot Offer to be executed. Under certain conditions Limit orders can become an At-Market Order. A Limit Buy order submitted at the Spot Offer rate will be treated as an At-Market Buy order in the system. A Limit Sell order submitted at the Spot Bid rate will be treated as an At-Market Sell order in the system.
  • An At-Market Buy order will be matched against the Net Amount of the Spot Offer.
  • Amount is the difference of Limit Sell minus Stop Buy order amounts at the Spot Offer rate.
  • An At-Market Sell order will be matched against the Net Amount of the Spot Bid.
  • the Net Amount is the difference of Limit Buy minus Stop Sell order amounts at the Spot Offer rate. The sequence of matching: Once the At-Market Sell orders hits the Spot
  • Stop Sell orders will be matched (executed) against the Limit Buy orders at the Spot Bid rate.
  • the rest of the Limit Buy order amount will be matched afterwards against the At-Market Sell order, if any Net Amount is left.
  • the orders in the VM will be shown in two different screens: the Order Blotter, illustrated in FIG. 10, and Virtual Market Screen, illustrated in FIG. 11.
  • ORDER STATUS COLORS Colors indicate the status of the orders. Red means the order is either fully executed or canceled. Orange means the order is partially executed. The pending amount will be displayed in the Order Blotter. Yellow means the order is active in the system but not yet executed. Grey means the order is suspended and waiting to be resubmitted into the VM. These are parts of the ID Single or ID OCO orders.
  • Orders Status (Filled, Canceled, Partially Pending, Pending and Suspended); Counter party; Order Time and Date Stamp; and Client
  • Order Number The window shown below will pop up.
  • the user can either cancel the single order, EDIT the single order or just leave it in the system. If the user decides to edit it, the system will cancel the order first and download it back into the original order form.
  • the difference between the Order Blotter and Virtual Market is that in the Order Blotter each user can see his own orders.
  • the Virtual Market is a public screen, illustrated in FIG. 11, which reflects all of the interest in the Market.
  • the Order Blotter is a private screen. In the Virtual Market only the order amounts will be displayed anonymously alongside the rates. Users of the Virtual Market will not know whose order is displayed.
  • There are two display modes in the Client Version which are controlled by the bank. In the first mode the clients will see the order amounts from all players. In the second mode each user will see only his own orders. In the bank version of the Virtual Market the bank dealer will see all orders.
  • At-Market orders which are the other side of the passive Limit and Stop Orders. Both active (At Market orders) and passive (Limit and Stop orders) are matched during the matching process. The result is the execution of passive orders.
  • active At Market orders
  • passive Low and Stop orders
  • the At-Market orders directly submitted by the participants;
  • the Limit Buy orders which are submitted at the Spot Offer;
  • the Limit Sell orders which are submitted at the Spot Bid;
  • the Limit Sell orders has to hit the Spot Bid Rate and lower and the Limit Buy Order has to hit the Spot Offer Rate and higher (See Automated Rates section); Through Market Making action.
  • the Limit Sell orders has to hit the Spot Bid Rate and lower and the Limit Buy Order has to hit the Spot Offer Rate and higher (See Speed Market Making section).
  • Submitting orders or best bids and best offers into the system is a way to provide liquidity into the Virtual Market. All users can use this liquidity by hitting the net total at the Best Spot Bid or Best Spot Offer level. If the user wants to buy (sell) he needs to hit the Net Total at the Best Spot Offer (bid) level. The trade screen will open with the default amount (last traded amount). Before submitting the trade order the client can choose between the All or Part execution option. IF he chooses the All option, the system will execute the user's amount at the best rates available, until it is fully executed. If the user chooses the Part option, the system will execute the order up to a pre defined rate level, which is defined by the user.
  • the system After each successful trade, the system will confirm the execution with an Order Number. It can be a full or partial execution.
  • Submitting orders to best bids and offers into the system is a way to provide liquidity into the Virtual Market. All users can use this liquidity by hitting the net total at the Best Spot Bid or Best Spot Offer level. If the user wants to buy (sell) he needs to hit the Net Total at the Best Spot Offer (bid) level. The trade screen will open with the default amount
  • the client Before submitting the trade order the client can choose between the All or Part execution option. If he/she chooses the All option, the system will execute the user's amount at the best rates available, until it is fully executed. If the user chooses the Part option, the system will execute the order up to a pre determined rate level, which is defined by the user.
  • Order Number It can be a full or partial execution.
  • the TRADE BLOTTER provides the following information: Trade Number; Currency Pairs; Amounts; Deal Rate; Value Date; Counter party; Time and Date Stamp of the
  • Swap points if it is an Outright or Swap Deal; and Client ID.
  • Any master account holder who manages sub accounts, can execute one trade in the VM and afterwards split it between his sub account holders.
  • To execute Trade Split the master account holder has to establish a client list with their percentage shares in the split table. Once this is done he can automatically call his existing client list and the system splits the traded amount onto each sub account. With a second click the master account holders submit the split. As a result, the master account holder transfers his position to several sub accounts.
  • the portfolio will display the information in two different ways: (1) Currency Pair Portfolio; and (2) Single Currency Portfolio.
  • the VM portfolio will show the following details: The net currency pair position; The average rate of the currency pair position if several trades are executed in that specific currency pair; The real time spot rate; The profit and loss in Currency 2 terms and translated into USD; All fees and charges paid so far during the trading day; The profits and loss for each currency pair position; and Over total profit and loss.
  • the second way to display the account holders' currency exposure is the Single Currency Portfolio.
  • the currency are separated and the system looks into each single currency exposure.
  • Sometime participants like to trade for example several JPY currency pairs. In that case it is valuable information to know what the net JPY currency exposure is.
  • FIGs 12-16 Fusion, FIG. 12; Fusion Lite, FIG. 13; Interbank, FIG. 14; DDS (Direct Dealing System), FIG. 15; and DOES (Direct Order Entry System), FIG. 16.
  • the UTP Market Overview is a combination of several Virtual Markets.
  • each currency pair has its own Virtual Market.
  • To create the Market Overview the following part from each Virtual Market are taken: Currency Pairs; Best Spot Bid and Offer, including their Color Indications; Spot Window Spread; and Today's Open, High, Low, range and Volume.
  • CCY 1702 The currency pair indication (taken over from the Virtual Market) . By clicking on the currency pair listed in the left column, the user can change the currency pair displayed in the Virtual Market in the Default Screen. The user can also open several standalone Virtual Markets through the menu.
  • At Best Sell Request 1704 This is an At Best Sell Execution Order (This will be explained in a separate document).
  • Bid Rate 1708 The is the latest Best Spot Bid, generated by the system, in real time from of all existing orders in the system. (See also the Virtual Market).
  • Spread 1710 Spread is another way to display the Spot Window from the Virtual Market. It is a static area, which reflects the difference between the Best Spot Bid and Best Spot Offer. It is displayed in number of pips. Offer Rate 1712: The is the latest Best Spot Offer, which the system generates in real time from of all existing orders in the system. (See also the Virtual Market)
  • Net Total On The Offer 1714 The difference between the sell and buy orders at the Best Spot Offer level (taken over from the Virtual Market, see the Virtual Market) Color Signals: see the Virtual Market color rales. (Taken over from the Virtual Market)
  • At Best Buy Request 1716 This is an at Best Buy Execution Order. Open, High, Low, Range Volume 1718: These are all today's market data for a specific currency.
  • Quote Request 1720 This is a direct two-way quote request button. SPEED LIMIT SELL/STOP SELL ORDERS
  • the user By clicking on the Best Spot Bid Rate in the Market Overview the user will be able to open the Speed Sell Order Screen. The rate and amounts can be changed. The client needs to make a choice between the Limit and Stop Order options. Afterwards he can submit the order into the system.
  • the Speed Limit Sell Order will be accepted in the system only if the rate of the order is above the Best Bid Rate. At the Best Bid Rate it will be executed as an At Market Order immediately.
  • the Speed Stop Buy order will be accepted in the system only if the rate of the order is below the Best Bid.
  • the order is submitted into the VM and the system will confirm the acceptance with the displayed Order Number.
  • the Speed Sell function works in the same way as explained in the Speed trading section.
  • the Speed Sell Confirmation function works in the same way as explained in the Speed Trading section.
  • FIG. 18 shows a flow diagram for submitting orders to the Universal Trading Platform (UTP system).
  • the flow diagram shows various layers including various order entry screens 1802 that are presented to a user, a com layer 1804, stored procedures 1806, and a database 1808.
  • the various order entry screens 1802 are used to insert an order into the UTP. All screens call a component named OrderSubmit (A7), and OrderSubmit (A7) calls InsertOrderSP (A8) to insert a new order in database 1808.
  • A7 OrderSubmit
  • InsertOrderSP InsertOrderSP
  • the user's trading power is determined. An order will not be go in if the trading power is insufficient.
  • the order will be matched by other orders at the same rate in the market. The matched orders will update MarketMaker.
  • OTC orders will be inserted into the system to add liquidity and/or execute trades.
  • an order number is returned to the user screen.
  • Block Al Speed Bid.
  • the speed bid screen (Al) allows the user to enter a limit or stop buy order by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa.
  • the user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808.
  • the speed offer screen allows the user to enter a limit or stop sell order by specifying a rate and a from-currency amount or a to-currency amount. If a from-currency amount is entered, a to-currency amount is calculated and vice versa.
  • the user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808. The order will be inserted into the system based on the rules of InsertOrderSP (A8). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • the speed buy screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount.
  • the user submits the order to the system by selecting the SUBMIT button.
  • This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808.
  • the order will be processed according to the rales of InsertOrderSP
  • the speed sell screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the
  • Order Submit A7, which calls the InsertOrderSP (A8) in database 1808.
  • the order will be processed according to the rules of InsertOrderSP (A8) and MatcherSP (A 12).
  • Status is returned to the user from the Order Submit (A7) through the stored procedures. This status is then displayed to the user.
  • Block A5. Rate Order The rate order screen allows the user to enters limit buy or limit sell order between the current high and low spot rates by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa.
  • the user submits the order to the system by selecting the SUBMIT button.
  • This action invokes Order Submit (A7), which calls the
  • InsertOrderSP (A8) in database 1808. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • Block A6 Multiple Orders.
  • the multiple order screens allow the user to enter multiple order types concurrently by specifying the appropriate information for each order. The user submits all the orders to the system at once by selecting the SUBMIT button.
  • Order Submit This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808 for each order. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • An order submit dll is a middle tier com layer 1804 component that is invoked by a user upon submission of any order type. It is called from several user interface screens (A1-A6) and is responsible for invoking InsertOrderSP (A8) in database 1808 and reporting the results of the transaction to the user interface.
  • InsertOrderSP is a database stored procedure that is invoked by OrderSubmit (A7) as well as by OTCOrder_Market (A20), the at market order process, quote request process and forward module processes. All orders enter the system through this stored procedure. It implements transaction commit and rollback functionality to ensure database integrity in the order insertion process. Data is insert into the forexOrder table (A24). TradePower (A10) and CloseCheckSP (A9) are called to determine the types of orders a trader is allowed to make if any. MatcherSP (A 12) is called when the market conditions are such that the order is executed. TimeHorizonSP
  • Al 9 and GoodUntilDateSP (Al 9) are called to handle the special time restrictions that may be placed on an order.
  • MatcherSP See D1-D35, described below. MatcherSP (A12) controls the matching of orders that are at the same rate in the market. Block A13. CheckTradeSP. Called by MatcherSP (A12). CheckTradeSP
  • a 13 calls CloseCheckSP (A9) and TradePowerSP (A 10) to determine whether to allow the order to proceed with the matching process. If the trader fails any trade power conditions CancelOrderSP (A22) is called to remove the order from the system.
  • OrderFillSP SeeFl-F19,describedbelow.
  • OrderFillSP (A14) finalizes the matching process by inserting data into the OrderFill table (A25) for the matching orders that constitute a trade.
  • Block Al 5 ComputeFeeFctrSP.
  • ComputerFeeFctrSP (Al 5) calculates traders fees based on classification of the trader and number of trades executed.
  • Block A16 CloseCheckSp/TradePowerSP/CancelOrderSP. SeeA9, A10 an A22.
  • Block Al TimeHorizonSP/GoodUntilDateSP. These stored procedures determine the times when an order is visible in the system and insert or remove an order based on the time horizon and good until dates and times.
  • OTCOrder_Market (A20) provides market liquidity. OTCOrder_Market inserts OTC orders into the system by calling InsertOrderSP
  • Block A21 Cancel AllOrders. Cancels all orders for a particular trader by called CancelOrderSP (A22) for each order to be canceled.
  • Block A22 Cancel AllOrders. Cancels a specified order by changing its status in the forexOrder table (A24) .
  • Block A24 is a database table which contains all information the system requires for an order.
  • OrderFill (A25) is a database table, which contains all information the system, requires for matched orders.
  • FIG. 19 shows a flow diagram for OrderSubmit (A7) process.
  • the function of OrderSubmit (A7) is to insert a new order into table forexOrder (A24) of database 1808.
  • SubmitOrder (A7) is called from any of the various order entry screens 1802 and depending upon the order type chosen, a stored procedure 1806 is called.
  • a limit, a stop, a speed bid, a speed offer, a speed buy, a speed sell, and a rate order the InsertOrderSP (A8) is called directly.
  • Combined order types like OCO, ID single, and ID
  • OCO have their own stored procedures, such as InsertOCOOrderSP (B4), InsertlDSmgleOrderSP (B5), and InsertlDOCOOrderSP (B6). These stored procedures call InsertOrderSP for every order that needs to go into the system. All stored procedures return the order number of the new order to the SubmitOrder. If the system is configured to insert OTC orders, the OTC orders are inserted for the same currency pair as the just inserted order at the high and low spot for a predetermined amount.
  • InsertOCOOrderSP B4
  • InsertlDSmgleOrderSP B5
  • InsertlDOCOOrderSP B6
  • These stored procedures call InsertOrderSP for every order that needs to go into the system. All stored procedures return the order number of the new order to the SubmitOrder. If the system is configured to insert OTC orders, the OTC orders are inserted for the same currency pair as the just inserted order at the high and low spot for a predetermined amount.
  • Block B Order Entry data.
  • the order data goes in with trader ID, buy or sell, order type, currency pair, amount for either currency 1 or currency2, the rate, counter party, time horizon and the 'not worse than rate'.
  • OrderType Depending on the order type a route is picked: At
  • InsertOrderSP Market, Limit, Stop buy or sell call InsertOrderSP (A8); OCO Orders call InsertOCOOrderSP (B4); ID Single Orders call InsertlDSmgleOrderSP (B5); and ID OCO call InsertlDOCOOrderSP (B6).
  • Block B3. InsertOrderSP This stored procedure inserts all orders into the databases. At Market, Limit and Stop orders call InsertOrderSP directly.
  • Block B4. InsertOCOOrderSP An OCO order exists out of two orders; a limit buy or sell and a stop buy or sell. The InsertOCOOrderSP prepares these orders and calls InsertOrderSP for each order. InsertOrderSP inserts both orders into the database.
  • An OCO order exists out of three orders; a limit or a stop buy or sell, a stop or limit buy or sell and a stop buy or sell.
  • the InsertlDOCOOrderSP prepares these orders and calls InsertOrderSP for each order. InsertOrderSP inserts both orders into the database.
  • Block B7 InsertOrderSP. See B3, described above. BlockB ⁇ . OrderNumber. InsertOrderSP returns the order number of the order put in.
  • Block Bll Return the Order Number to the client.
  • the order number returned by InsertOrderSP is sent back to the client.
  • FIG. 20 shows a flow diagram related to InsertOrderSP (A8).
  • Block Cl Input Order data.
  • the Insert Order process does all the work needed to enter a new order into the database.
  • Block C2. Check Trading Power. First the trader's trading power is checked if the trader is authorized to do the trade and insert an order into the system. Block C3. Sufficient TP. If trading power is sufficient the process goes on; otherwise the order won't go in and the trader is notified of lack of trading power.
  • Block C4. Prepare input for different order types. The data for the different order types is prepared before the order is going into the database.
  • Block C5. Insert order into ForexOrder. The actual order is recorded into the database into table GenevaOrder.
  • Block C6 Process the order when counter party is M. For orders that are part of the Virtual Market the counter party will be M. Those orders will have their effect on the Virtual Market and need further processing.
  • Block C7 At Market. At Market orders have their direct influence on the
  • the order will be matched with other orders in the system at the market rate.
  • the matching will move the market and those orders that appear to be at market this time will be matched and filled. This goes on until there are no other orders at market that need to be filled.
  • Block C8 Match the order. Depending on a buy or sell order. The appropriate process is called. A buy will kick off MatcherHigh and a sell MatcherLow.
  • BlockC9 Update processing.
  • the new orders in forexOrder are updated with the ID's for the combined order types like OCO, ID Single and ID OCO.
  • Time horizon is entered into Geneva State. Time Horizon tells when an order is active in the system.
  • Block CIO Return order number to the screen. After the order went in the new order number is returned to the trader.
  • FIG.21 shows a flow diagram related to the Matcher module, described above.
  • Block D Get the order data for the order to be matched.
  • Block D2. Check to be sure the order quantity is greater than zero, exit the matching process if not.
  • Block D3. Call CloseCheckSP. See A9, described above.
  • Block D4. Call TradePowerSP. See E1-E8, described below.
  • Block D5. Create filter for record set retrieval so only the orders that exist at rates equal to or greater than the high spot rate are retrieved.
  • Block D6 Get record sets that meet criteria of D5.
  • Block D7 If the net quantity is greater than or equal to the order quantity there is sufficient supply to process the order, proceed to D8 otherwise proceed to D 13. The net quantity is equal to the limit quantity at a pip rate minus the sum of the stop quantities from the last pip rate up to the current pip rate.
  • Block D8 If the supply quantity is less than the order quantity proceed to D9 to fill the order and then to Dl 1 to get more supply otherwise proceed to D14.
  • Block D9 Fill the order. See F 1 -F20, described below.
  • Block D Get the next supply quantity.
  • Block D 13 If the net quantity is greater than 0 there is some supply, return to D8 otherwise proceed to D26.
  • Block D14 If the supply pip rate is less than the stop pip rate proceed to D9 to process the supply, and then to Bl to get the next pip, otherwise proceed to D16.
  • Block D 16 If the stop quantity is greater than the supply quantity see D9 to process stops and then get more limits Dl 1 otherwise see D9 to process stops, get more limits Dl 1 and get more stops D24.
  • Block D24 Get the next stop quantity.
  • Block D26 If the stop quantity is greater than the supply quantity see D9 to process stops and Dl 1 to get next supply otherwise proceed to D9 to process stops, then to Dl 1 to get next supply quantity and to D24 to get next stop quantity.
  • Block D27 Get the next pip rate and continue processing.
  • FIG. 22 shows a flow diagram related to TradePower (A 10).
  • Block E2 The entry point from all other processes that check trade power.
  • Block E3. Determine whether the trader is an authorized trader. An authorized trader is a trader whose current trading status is active and not suspended. Block E4. Get the trader's current cash balance. Current cash is the trader's opening balance +/- withdrawals or deposits.
  • Block E5. Compute the trader's profit and loss. Profit and loss is calculated based on the trader's current net position and the current market high and low.
  • Block E6. Determine the trader's utilized balance: Current
  • Block E7 Calculate the trading power: (Current Balance - Utilized Balance +/- P&L) / Adjusted Range. Block E8. End.
  • FIG.23 shows a flow diagram for OrderFill (A14) process.
  • the function of OrderFill (A14) is to commit orders to trade.
  • OrderFillSP is called from each Matcher process.
  • An order ID for a buy and/or a sell is passed to OrderFillSP.
  • the order ID is used to set the parameters for each order.
  • the value date for the currency pair is retrieved and the number of trades for each trader associated with the order ID's is updated.
  • the order fees to be assigned to each trade are set, each trader's position is updated, and the market maker is updated.
  • Block FI Entry into the stored procedure from InsertOrderSP (A8).
  • Block F2. Determine the order's unfilled order quantity. This is the quantity of the order that has not been filled.
  • Block F4. Determine the booking fee for the buy order trader.
  • Block F5. Update the ForexOrder table (A24) for the buy order by inserting new data generated as a result of filling the order.
  • Block F6 Determine the booking fee for the sell order trader.
  • Block F7 Update the ForexOrder table (A24) for the sell order by inserting new data generated as a result of filling the order.
  • Block F8 Update buy order trader's data in the Position table (F20)
  • Block F9. Update sell order trader's data in the Position table (F20).
  • Block F10 Determine if IF DONE orders exist for this filled order.
  • Block Fl l Process IF DONE by inserting buy trader information in the forexOrder table (A24).
  • Block F12. Process IF DONE by inserting sell trader information in the forexOrder table (A24).
  • Block F13 Determine if OCO orders exist for this filled order.
  • Block F14 Process OCO by inserting buy trader information in the GenevaOrder table (A24).
  • Block F See A24, described above.
  • Block F 19 See A25, described above.
  • Position is a database table which contains all information the system requires for a trader's position.
  • FIG.24 shows a flow diagram for an order entry round trip process.
  • Virtual Market window (G2) and Market Overview window (G 1 ) allow users to insert Speed orders at the market or outside the market. Clicking on the rates in those windows, will pull up a speed order window, for example, SpeedBid, SpeedOffer, etc.
  • a speed order window for example, SpeedBid, SpeedOffer, etc.
  • the order goes into the system. If the order is at-market, the order will be matched with other orders at the same rate, and the matched orders are then filled.
  • To update the market windows and the user data every half second data is pulled from the Orders table and the Filled Orders table.
  • a data server is used to prepare the market data for all the logged on users, thus allowing for many user screens to be updated with the same data at the same time.
  • the XML provider combines the market data and the user data specific data and outputs the data to the user's screen.
  • the inserted order is visible in the market and in the order blotter of the user who inserted the order.
  • Block Gl Market Overview.
  • Market Overview is one of two screens for the virtual market in Billy Spot. Market Overview shows all currency pairs with their highs and lows. It allows a trader to enter orders either at market or besides the market. It also provides a messaging system traders can use to directly request the bank for quotes. This screen is updated every half second with the latest numbers.
  • Virtual Market is the second screen for the virtual market.
  • the Virtual Market zooms in on a picked currency pair.
  • a trader can pick any currency pair available in the Market Overview.
  • To select the requested currency pair a trader needs to click the currency pair in the Market Overview.
  • the USD/JPY currency pair is loaded into the Virtual Market.
  • the speed bid screen allows the user to enter a limit or stop buy order by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa.
  • the user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A 7) which calls the InsertOrderSP (A8) in the database. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • the speed offer screen allows the user to enter a limit or stop sell order by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa.
  • the user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7) which calls the InsertOrderSP (A8) in the database. The order will be inserted into the system based on the rales of InsertOrderSP (A8). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • Block G5. Speed Buy The speed buy screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount.
  • the user submits the order to the system by selecting the SUBMIT button.
  • This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in the database.
  • the order will be processed according to the rales of InsertOrderSP (A8) and MatcherSP (A12). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • Block G6 Speed Sell.
  • the speed sell screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount.
  • the user submits the order to the system by selecting the SUBMIT button.
  • This action invokes Order Submit (A7) which calls the InsertOrderSP (A8) in the database.
  • the order will be processed according to the rales of InsertOrderSP (A8) and MatcherSP (A12).
  • Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • Rate Order The rate order screen allows the user to enter a limit buy or limit sell order between the current high and low spot rates by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7) which calls the
  • InsertOrderSP (A8) in the database. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • Block G8 Multiple Order.
  • the multiple order screens allow the user to enter multiple order types concurrently by specifying the appropriate information for each order. The user submits all the orders to the system at once by selecting the SUBMIT button.
  • Order Submit This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in the database for each order. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
  • Block G9. Submit Order Any order going into the system passes Submit Order. Submit Order prepares the data for the order to go in. It calls the appropriate stored procedure to enter the orders correctly into the database.
  • Block Gl Insert Order. Submit Order passes the order data to the Insert Order process. Insert Order inserts the order into the database and kicks off other processing that needs to be done to update the trader's position and the virtual market. Block Gil. Insert Order, Match Orders, Fill Orders. The order goes into the database. When the order is at the market it will be matched with other orders at the same rate. All orders affected will be filled partly or complete.
  • Block G12 Order Data for Orders, Positions and Trades. Data for the trader's screens is pulled from the database every half second. Only changes to the screens are returned. This block returns data for the trader's orders, positions and trades. Also it includes data returned by the bank when the trader is doing a bank request.
  • Block G13 Get Client Data. retrieves the trader's specific data for the orders, positions and trades. Only changes to the data are selected.
  • Block Gl 5 Select Orders for Virtual Market and Market Overview.
  • Virtual Market data is retrieved out of today's order data in the system. For both the Virtual
  • Block G 16 Get Market Data. Generic data for the Virtual Market is selected and passed through to the Data Server.
  • Block G17 Data Server.
  • the Data Server runs as a service in the background on each Application Server (Web Server). Each half-second or less it pulls the data for the Virtual Market up out of the database. It also retrieves a list of those clients that need an update to their screen. It returns the data to the XML Provider in XML format.
  • FIG. 25 shows a flow diagram for OTC order.
  • OTC prices enter via an active feed.
  • a price processor (the API) prepares the incoming OTC prices for the system. The input is the active feed and the output is the bid and the offer for a certain commodity.
  • the OTCOrder_Market stored procedure is called from the price processor and is fed with price input.
  • the stored procedure can be, for example, a Microsoft SQL Server stored procedure.
  • the new incoming rates create new OTC orders in the system that will replace old OTC orders. The old OTC orders are canceled.
  • a new OTC is inserted At-Market order at the incoming rate. If the incoming new OTC high rate is not less than the current low rate, then at block 2507, it is determined whether the incoming new OTC low rate is greater than the current high rate. If it is, then at block 2508 a new OTC At-Market order is inserted at the incoming rate. If it is not, then at block 2509 a limit order is inserted if the new rates do not affect the market.
  • FIG. 26 shows a flow diagram for a dealer market making process.
  • a dealer enters an order using the system (Universal Trading Platform).
  • the new order is passed through by a component called SubmitOrder.dll.
  • the OTCOrder Market stored procedure receives its input from the OrderSubmit.dll.
  • the stored procedure can be, for example, a Microsoft SQL Server stored procedure.
  • the new incoming rates will create new trades in the system that will replace the old OTC orders and the old OTC orders will be canceled.
  • an at-market order is inserted at the offered price, a match is made of any orders in the system at the changed market, and the orders filled. If it is not, at block 2607, it is determined whether the incoming bid is above the market high. If it is, at block 2608, an at-market order is inserted at the bid, a match is made of any orders in the system at the changed market, and the orders are filled. At block 2609, a limit order is inserted for each incoming rate.
  • InterNAP For "co-location" systems, InterNAP is utilized because it has the technology to deliver Internet packet data from point to point in the fastest and most reliable way using the existing backbone infrastructure of the Internet. InterNAP uses an intelligent routing and route management technology specifically designed to deliver data to and from destinations across the public Internet via the quickest and most reliable route. It should be realized that other providers can be used.
  • Public exchange points are the major intersections of the Internet. At these exchange points (MAE-East, MAE-West, PacBell NAP, etc.), the Internet backbones (UUNET, Sprint, etc.), along with hundreds of local and regional Internet access providers, meet to pass Internet transmissions on from one network to another. At these public exchanges enormous amounts of data are sent to and from each and every connected network. All of this data is transferred from network to network over the same common infrastructure. Congested intersections often result in data packet loss. When public NAPS (Network Access Points) and private peering points are congested, data packet loss occurs, slowing downloads and decreasing the reliability of data transmissions. Downloading a file from a web site under conditions with 1% packet loss can take up to twice as long as doing so when there is no data packet loss.
  • NAPS Network Access Points
  • the solution to poor Internet performance is the P-NAP (Private Network Access Point).
  • the P-NAP largely bypasses the public NAPs and private peering points, sending customer data along the shortest, most direct path across the Internet. They have direct connections into major global Internet backbones including OC3 and DS3 connections to UUNet, Sprint, Cable & Wireless, GTE (BBN), Digex (Intermedia), PSINet, AT&T, Verio and MindSpring (Netcom). InterNAP pays each of these backbones for full transit TCP/IP connectivity.
  • the P-NAP sends customer data out on the best Internet backbone immediately rather than at a randomly chosen public NAP or private peering point like other Internet access providers.
  • InterNAP routes, or transfers, data to and from businesses that are connected to one or more of their P-NAPs, in a manner that minimizes the use of congested public exchanges and private peering points. This optimal routing of data traffic over the multiplicity of networks that comprise the Internet enables higher transmission speeds, lower instances of data packet loss and greater quality of service.
  • the co-location architecture is based on Cisco and Compaq.
  • the key characteristics of the co-location architecture are scalability, high availability, manageability and security.
  • the infrastructure is designed so that the N-Tier architecture is ran with security in the form of firewalls.
  • a cluster is defined as two independent computer systems known as nodes all attached to a common external storage. The nodes work together as a single system to ensure that mission-critical services and resources remain available to clients.
  • Cluster service minimizes downtime and support costs by using more than one server to provide services to clients. In the event that one server fails, another server in the cluster provides the services of the server that failed. This method makes it easier to manage the devices and applications on each server without having to stop the application.
  • a virtual server appears as a single system to users.
  • the cluster can provide any number of virtual servers, limited only by the capacity of the servers in the cluster and the available storage to provide the required performance. Administrators control the cluster servers as a single unit, and can administer the cluster remotely. In this way the application is always on and upgrades and maintenance do not require down time.
  • the system Universal Trading Platform (UTP) is designed to enable a bank 2702 to deliver a complete online foreign exchange (FX) solution through its web site to all internal divisions 2704, 2708 and external clients 2710.
  • the UTP acts as a central FX marketplace for the bank's internal divisions 2704, 2708 as well as external clients
  • the UTP is designed to fully automate as much of the trading as possible. This is achieved by providing clients 2710 with pre-defined spreads that can be traded on up to a size set by the bank 2702.
  • the bank 2702 has complete control over the platform at all times, and if necessary can disable the automated dealing capability in difficult market conditions.
  • the bank's traders or sales desk
  • the UTP acts as the bank's complete Order Book. Orders placed into the Order Book by clients 2710 can be executed manually by the traders or executed on a fully automated basis.
  • the UTP contains full messaging capability between all users 2702-2710.
  • the UTP has complete risk management tools for all users to manage open positions and P & L in real time.
  • the UTP is designed with "open" architecture at the back end, to support easier integration with existing front and back office
  • the UTP can act as the "pricing engine” for the bank 2702 to deliver pricing to any external application (i.e., consortium platform).
  • UTP MODULES The Universal Tradmg Platform (UTP) is universal in terms of both its potential geographic reach as well as its suitability to work across all financial products. It is through this platform that delivers a wide range of foreign exchange FX products in the form of separate but integrated modules.
  • dealing systems 2806 is provided. There are two main methods for dealing through the UTP 2802 ,2084: the more conventional Point-to-Point Dealing or the Virtual Market. It is believed that the FX market will move towards their Virtual Market model, where the Best Bid and Best Offer are visible in an online marketplace accessible to all users.
  • the Point-to-Point systems offer the standard price request functionality for one way (at best) and two way pricing, linking end-users directly to the source of liquidity.
  • the relaying of prices to clients can be fully automated based on spreads defined by the liquidity provider.
  • the system can be utilized by a consortium, as a multi-bank platform; end-users can have the ability to ask several banks for a price at the same time. Both systems take advantage of the efficiencies that the Internet has provided, while providing banks a scalable and high traffic e-commerce mechanism with which to grow their FX business.
  • An Order Book 2808 is provides a complete order management system. This module gives institutions the ability to centralize the monitoring and execution of all orders from branches and clients.
  • the user interface enables clients to submit single or multiple orders directly into the system visible to traders and/or sales personnel in a clearly defined window showing all orders relative to the current market price.
  • clients are also able to define the time horizon, stating how long the order is valid.
  • clients are given full access to edit, cancel and monitor their orders.
  • a Market Monitor 2810 is provided so that users of the system can have an overview of the entire market, showing updated real-time prices in selected currency pairs offered by the institution.
  • the market monitor can show indicative or firm spot prices based on spreads controlled by the institution offering the liquidity. Through the market monitor users are able to execute speed transactions with two clicks for trades up to a size determined by the institution. For larger trades the user can ask for a quote request through the same interface.
  • the market monitor would offer real time pricing for FX Spot, Forwards and Options. Prices in other financial products can also be displayed in the market monitor.
  • a Margin Manager 2812 provides a fully functional online margin system that enables an institution to manage an unlimited number of margin accounts in real time.
  • the system generates a tailored trading limit for clients based on several risk parameters, and prechecks the available limit prior to a trade being executed. No order or trade will go through unless the client has sufficient collateral. At the same time the system provides valuable information to the client about their account status and trading limits for all currencies and maturities. At all times the institution retains the ability to suspend client activity or even liquidate positions.
  • a Messaging Facility 2814 allows all users of the UTP to send and receive messages directly with other users or to broadcast messages to an entire group. For example a client may want to send a message directly to a sales person, trader or their back office contact. Alternatively the institution may want to broadcast a message to all clients simultaneously.
  • a Client & Market Risk Manager 2816 module gives the institution the ability to set the client trading profiles and trading limits across currencies based on Volatility Risk
  • a Portfolio Management module 2818 provides complete portfolio management in real time.
  • the user interface displays the net currency exposure in each currency pair as well as the exposure by individual currency. Real time P & L is also monitored for each currency pair in both the base currency and contra-currency.
  • a System Database 2820 tracks several variables and keeps them updated continuously. Both the client and the bank have access to a complete history of the following statistics: (1) Transaction Data: Trades, Orders, P & L's, and Positions; (2) Market Data:
  • a Forwards module 2822 allows the client to execute both Outright Forwards and Swaps.
  • the client can view the forward points out to 2 years for both Swaps and Outright deals in each currency pair.
  • the client can also select "broken dates" which will be calculated automatically from the forward curve.
  • the system allows mismatch Swaps with different amounts on each leg.
  • Trading in the forward module can be fully automated based on constantly updated pricing from the liquidity provider(s).
  • a back office module 2826 allows the institution to manage all aspects of the processing required to execute FX trades. These services include closing processing; roll over processing, confirmations and account adjustments.
  • the module also has system controls to allow management of client related issues and market related issues. Lastly, the module will perform the end of the day audits that are necessary. Order checks, trade checks and account balance checks can all be done automatically. Through this module confirmations can be sent out automatically via e-mail or fax.
  • the Universal Trading Platform (UTP) multi-bank system provides banks with the ability to interact directly with each other improving liquidity and speed of execution in any financial market.
  • the UTP acts as a central marketplace for all the consortium members to trade, make markets and leave orders for automatic execution. All member banks access the platform through market maker interface, supplying and utilizing liquidity.
  • the platform reduces market fragmentation and pulls all the liquidity onto one platform from all consortium members.
  • the technology allows the members to become more efficient and reduce transaction costs, thereby avoiding the prospect of becoming peripheral players.
  • All banks/members will trade with automated pre-trading limit screening. All members will be able to stabilize and expand their positions as key players in the market. Banks can allow direct access to active sophisticated clients with automated pre-trading limit screening, enabling them to become market makers.
  • the Multi-Bank platform can be provided in 3 ways: (1) a single pole network; (2) a multiple pole network; and (3) a center pole network.
  • the UTP has three main user interfaces: (1) a dealing room version; (2) a client version; and (3) a back office version.
  • the dealing room version is the trader's interface with the system and offers full price quoting capability to incoming price requests from clients/branches whose identity is visible to the trader. All trades executed across the platform immediately update the trader's position and P&L, or alternatively this information can be captured directly in the institution' s existing front office system.
  • the UTP also shows the trader all orders placed by clients branches in a virtual market that is fully interactive and automates the execution and confirmation of orders.
  • the client version enables an institution's customers a wide range of functionality, including speed auto-deal, price request, order management, monitoring of Profit & Loss and open positions in real time as well as send and receive messages.
  • the UTP offers a number of different client interfaces according to the level of sophistication and needs of the client (i.e., retail, corporate and institutional). Being web based, the design and layout of these interfaces is easily customized by the bank to create a specific "look and feel" to reinforce the integrity of their brand.
  • the back office version performs much of the market and client risk management functions, including pre-trade margin/credit checks.
  • the back office version can monitor both margin based clients and traditional credit line clients and enables you to "profile" each client as to the currencies they are permitted to trade and the spreads they will receive. Through this interface the bank has complete control of each client account and can suspend trading or close out positions.
  • the back office version provides an institution with complete administrative functionality and control over the system.
  • the scalability for the system required the architecture of the system to be split into two parts: front-end (client-accessible) systems and back-end systems where long-term persistent data are stored or where business-processing systems are located. Load-balancing systems are then used to distribute the work across systems at each tier.
  • This architecture scales the number of unique users, by cloning or replicating front-end systems coupled with a stateless load-balancing system to spread the load across the available clones known as a Web cluster. Partitioning the online content across multiple back-end systems allows it to scale as well.
  • a stateful or content-sensitive load-balancing system then routes requests to the correct back-end systems.
  • Specific servers are dedicated to task-specific services, including integration with legacy or offline systems. Cloning and partitioning, along with functionally specialized services, enable the system to offer a solution that has an exceptional degree of scalability by allowing each service to grow independently.
  • Front-end systems of the UTP are made highly available as well as scalable through using multiple, cloned servers, all offering a single address to their clients.
  • Load balancing is used to distribute load across the clones, to ensure continuous availability to large numbers of simultaneous users. Building failure detection into the load-balancing system increases service availability. A clone that is no longer offering a service can be automatically removed from the load-balance set while the remaining clones continue to offer the service.
  • Back-end systems are more challenging to make highly available, primarily due to the data or state they maintain. For the UTP they are made highly available by using fail-over clustering for each partition. Fail-over clustering assumes that an application can resume on another computer that has been given access to the failed system' s disk subsystem. This secondary node must have access to the same data storage, which should also be replicated, as the failed node.
  • security means managing risks by providing adequate protections for the confidentiality, privacy, integrity and availability of our application to our clients.
  • the application is located, multiple security domains are required, where systems with different security needs are placed and each domain is protected by a network filter or firewall.
  • the three principal domains, each separated by a firewall, are: the public network; a DMZ (derived from the military term "demilitarized zone"), where front ends and content servers are placed; and a secure network, where content is created or staged and secure data is managed and stored.
  • Management and Operations broadly refers to the infrastructure, tools, and staff of administrators and technicians needed to maintain the health of a business application such as the UTP.
  • Many such applications are located in what is often called a hosted environment. That is, the systems are co-located with an Application Service Provider (ASP) where rich Internet connectivity is available.
  • ASP Application Service Provider

Abstract

A system (Figure 1) for bringing separate pools of liquidity together to create a market over a communications network. A first processing module that receives a plurality of orders from users and compiles an overview of all of the plurality of orders. A second processing module that determines a best bid and a best offer from the plurality of orders. A third processing module that matches an order to one of the plurality of orders. A fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order. A fifth module for matching a limit buy order related to a stop sell order, and a limit sell order related to stop buy order. If the limit buy order is related to a current market and a stop sell order is related to the current market, then a trade is executed between the limit buy order and the stop sell order. If the limit sell order is related to a current market and a stop buy order is related to the current market, then a trade is executed between the limit sell order and the stop but order.

Description

SYSTEM AND METHOD FOR A UNIVERSAL TRADING PLATFORM
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority based on United States Provisional Patent Application Serial Number 60/246,965 filed November 8, 2000 entitled Universal Trading Platform System And Method, and United States Provisional Patent Application Serial Number 60/246,685 filed November 8, 2000 entitled Virtual Financial Market System And
Method, the disclosures of which are incorporated herein by reference, and priority based on November 8, 2000.
FIELD OF THE INVENTION The invention relates to a computer system and method, and more particularly to a computer system and method that takes orders and creates a market.
BACKGROUND
The Foreign Exchange is the world's largest financial market with an average daily turnover of $ 1.5 Trillion per day. It is several times larger than the US Government securities market, the second largest market in the world. At present, the market trades 24 hours a day 5 days a week and is accessible only to clients of commercial investment banks, investment banks and brokerage houses. Segmentation has increased dramatically over the last years, as costs have spiraled and the market continues to be fragmented. Additionally, there is limited access to the Foreign Exchange and institutions (e.g. banks) act as gatekeepers and set the prices. For example, if an individual contacted multiple banks regarding a price, each bank would very likely provide a different price. The prices are different because the market ,4s fragmented, i.e., there is no central market. Moreover, an individual can't post a better price than the institution and individuals can't trade against each other because the they have no means for bypassing the institution and no means for matching each others orders.
SUMMARY OF THE INVENTION
A system for bringing separate pools of liquidity together to a create a market over a communications network. A first processing module that receives a plurality of orders from users and compiles an overview of all of the plurality of orders. A second processing module that determines a best bid and a best offer from the plurality of orders. A third processing module that matches an order to one of the plurality of orders. A fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order. A fifth module for matching a limit buy order related to a stop sell order, and/or a limit sell order related to stop buy order. If the limit buy order is related to a current market and a stop sell order is related to the current market, then a trade is executed between the limit buy order and the stop sell order. If the limit sell order is related to a current market and a stop buy order is related to the current market, then a trade is executed between the limit sell order and the stop but order. A system for bringing separate pools of liquidity together to a create a market over a communications network. A first processing module that receives a plurality of best bids and best offers from users and compiles an overview of all the plurality of best bids and best offers. A second processing module that determines a best bid and a best offer from the plurality of best bids and best offers. A third processing module that matches an order to one of the plurality of best bids and best offers. A fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order.
A method for processing an order having a trader identification, an order quantity, and an order type. The order is received over a communications network and stored in a database having a plurality of previously stored orders, the previously stored orders are grouped into order types and the order being stored with an appropriate group. It is determined whether the order is intended to close a position and whether the order is within each of the one or more predefined parameters, the one or more predefined parameters being specific to the trader identification. If the order is not within each of the one or more parameters, the order is canceled and deleted from the database. If the order is within each of the one or more predefined parameters, it is determined whether the order matches one of the preentered orders. If the order matches one of the preentered orders, the order is stored in the database an indicator indicating an association between the order and the one of the predetermined orders. Then an order fill message is sent over the communications network. A trade fee associated with the order can be calculated based upon a trader classification and a number of trades executed. The one or more predefined parameters can be account and risk values. The order can be a limit buy order, a stop buy order, a limit sell, a stop sell, an at market buy order, an at market sell order, a limit buy order, or a limit sell order.
The previously stored orders can be grouped by limit sell and stop buy orders having identical values, and/or grouped by buy limit and sell stop having identical values. When determining whether the order matches one of the previously stored orders it is further determined if there is a limit buy order related to a current market, and a stop sell order related to the current market. If there is, an order fill message is sent over the communications network. Additionally, if there is a limit sell order related to a current market, and a stop buy order related to the current market, then an order fill message is sent over the communications network.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an illustrative presentation of an arrangement of typical market data types that are presented to a user;
FIG. 2 shows an illustrative presentation of components of a Virtual Market that are presented to a user;
FIG.3 shows an illustrative presentation of a Spot Window that is presented to a user; FIG. 4 shows an illustrative presentation of a Spread Management Table presented to a bank;
FIG. 5 shows an illustrative presentation of a OCO order screen shot; FIG. 6 shows an illustrative presentation of an ID Single Order screen shot; FIG. 7 shows an illustrative presentation of an ID OCO Order screen shot;
FIG.8 shows an illustrative presentation of a Speed Limit and Stop Sell Orders screen shots;
FIG.9 shows an illustrative presentation of a Speed Limit Buy Order and a Stop Buy Order screen shots; FIG. 10 shows an illustrative presentation of a screen shot of an Order View in the
Blotter;
FIG. 11 shows an illustrative presentation of a screen shot of an Order View in the Virtual Market;
FIG. 12 shows an illustrative presentation of a Fusion screen shot; FIG. 13 shows an illustrative presentation of a Fusion Lite screen shot;
FIG. 14 shows an illustrative presentation of an Interbank screen shot; FIG. 15 shows an illustrative presentation of a Direct Dealing System screen shot; FIG. 16 shows an illustrative presentation of a Direct Order Entry System screen shot; FIG. 17 shows an illustrative presentation of components in a Market Overview screen shot;
FIG. 18 shows a flow diagram for submitting orders to the system; FIG. 19 shows a flow diagram for OrderSubmit process; FIG. 20 shows a flow diagram for an InsertOrderSP process; FIG.21 shows a flow diagram for a Matcher process; FIG. 22 shows a flow diagram for a TradePower process;
FIG. 23 shows a flow diagram for an OrderFill process; FIG. 24 shows a flow diagram for an order entry round trip process; FIG. 25 shows a flow diagram for OTC order; FIG. 26 shows a flow diagram for a dealer market making process; FIG. 27 presents a diagram of the Universal Trading Platform system; and
FIG.28 presents a diagram of modules within the Universal Trading Platform system.
DETAILED DESCRIPTION
A dynamic transaction system that assists in eliminating the inefficiencies in the global foreign exchange (FX) market by providing a single, seamless, transaction platform. By utilizing this Internet dealing platform, banks and brokers are able to open up the market to a whole new generation of FX investors and the market will grow dramatically. Foreign exchange is an excellent vehicle for investors in that it provides a highly liquid product, very commoditized, and a truly, global marketplace. The FX market provides the investor with a whole new dimension to his portfolio. It provides the opportunity to actively manage any country risk and exploit the FX market as a new investment vehicle. Foreign exchange enables investors to execute yield plays, carry trades and position either long or short without any constraints. It is, in effect, a new asset class for investors who have traditionally focused on equity, fixed income and real estate.
The fundamental design and business logic of the system can be easily converted to a stock, futures/commodities trading system, fixed income, data/analytic or any number of product lines that can benefit by direct client access. This will result in lower costs for client support functions and maintenance.
The Universal Trading Platform (UTP) is designed to provide institutions with a single, low-cost foreign exchange (FX) transaction platform that customers can access directly through the institutions website. By providing the market with a common dealing platform a more efficient tool is provided for clients. Market liquidity can be increased by linking these separate pools of customer interest via this platform. The system (UTP) functions within a banks FX business structure and distribution network. The system allows users to view pricing and execute trades in real time. The interface updates information and allows users to interact directly with the market. The system is designed for high performance real time updates, heavy database transaction usage, fast retrieval and querying. By utilizing a browser-based design, total flexibility in providing users with upgrades and enhancements. The system is more efficient in delivering to the customer side, as all transactions and updates occur on the back-end, thereby reducing the amount of data throughput. The system also accommodates all types of customer orders, automatically confirming all activity in the client's account. This automation assists the client in more efficient cash management and risk control. All settlements of trades will occur as they do now, between the institutions themselves.
The system design is overlaid with the multiple client front ends, provides our clients with an internal single system solution, whether they have small retail users, mid-tier institutions, global players or a combination thereof. This enables us to link these separate pools of user liquidity into a combined market (Sub Market), which is more efficient and more transparent. By linking these fragmented pools of customer interest, banks and brokers benefit from the additional liquidity and flow. The concept is to provide any bank or broker access to this market and the benefits that this additional liquidity provides for his client business.
The Universal Trading Platform (UTP) Virtual Market (VM) is based on four major concepts: 1) a perfect market; 2) an virtual exchange; 3) a universal trading platform; and 4) an Internet browser.
THE PERFECT MARKET
The UTP and VM are based on the concept of the Perfect Market. In this concept the participants will have direct and equal access to a "Virtual Market (VM)" (Perfect Market). They can submit orders; monitor the market and trade directly without any intermediaries. The goal is to create the best market conditions for market users and market makers, without the disruptions caused by intermediaries and current market inefficiencies. THE VIRTUAL EXCHANGE
The second important concept behind the Virtual Market is the vision of a "Virtual Exchange". In this exchange, supply and demand enters the market directly and the system creates the best bid and offer without any inefficiencies and intermediaries. In the exchange concept the participants in the exchange create a dynamic price, dependent on the actual supply and demand for a product (currencies). There is one central market and one price. This reduces market fragmentation and increases the liquidity. It also provides equal access to market information and ensures easy price discovery. All participants (Clients and Banks) can become market makers and market users at the same time. Although for clearing reasons, the counter party can be a single institution, but in an exchange everybody trades with each other. The Virtual Market can be used as a Single Bank Exchange Platform or as a Multiple Bank Exchange Platform. FIG. 1 shows an illustrative presentation of an arrangement of typical market data types that are presented to a client.
THE UNIVERSAL TRADING PLATFORM:
This concept suggests that multiple products (Currencies, Bonds, Stocks and others) can be traded in the Virtual Market. Therefore, any product, which generates supply and demand, can be traded in the Virtual Market, which becomes a universal trading tool. For that reason the whole platform is called Universal Trading Platform (UTP). At the same time it is also specifically designed to be a Cross Market Trading Platform. The platform is designed to handle any type of commoditized financial product, thereby providing a single platform for users to conduct any number of financial transactions in one system. This concept will provide both institutions and end users more effective credit and risk management in real time.
THE INTERNET BROWSER:
The goal is to provide more efficient, effective and cheaper access to all users. By utilizing the Internet as a way to deliver Foreign Exchange, both current and future FX players will have a more efficient platform to manage their foreign exchange exposures. It will open up the market up to new users who have been eliminated from participating because of the current business model. The application can also be delivered through an exclusive Private Network.
THE VIRTUAL MARKET
There are various embodiments of the UTP. In one embodiment, illustrated in FIG. 2, all the Stop Orders 202, 206 are aligned to the left side of the rates. The Limit Orders 204, 208 are on the right side. The Limit Sell Orders 204 and the Stop Buy Orders 202 on the upside are separated from the Limit Buy 208 and Stop Sell Orders 206 on the downside by the best Spot Offer and best Spot Bid (white area), which is called Spot Window
210. Next to the Limit Orders 204, 208 the system generates the Net Total 212 position at each rate level. The last row on the right side is the Volume 214, where the traded amounts for each rate will be displayed. In another embodiment the differences between the previous embodiment and this embodiment is that the Sell Orders are lined on the right side and all the Buy Orders on the left side.
In yet another embodiment, the main difference between the previous embodiments is that in the OMV the user is not allowed to submit orders into the Spot Window. The user plays a passive role by only providing liquidity. The user is not permitted to trade actively. They are not allowed to submit At-Market Sell or Buy orders. They cannot hit the bids or take the offers. Users orders will be executed by the bank (institution), which runs the Virtual Market.
RATES AND VOLUME
In FIG. 3, a spot window is illustrated. The Rates 302 for a currency are displayed around the latest Best Bid 304 and Best Offer 306 in the Virtual Market. The colors will appear if there are any orders in the system within the displayed rate range. The
Virtual Market can also display the Volume 308 traded during a trading day at a certain rate level. NET AMOUNTS
The Net Total 310 is the difference between the sell and buy orders at a certain rate level. If it is a negative number, there are more sellers. If it is a positive number, there are more buyers. In this illustration, only the Net Total 310 are available for at-market orders..
COLOR INDICATIONS
The Colors (not shown) in the Virtual Market have a meaning and are related to yesterday's range. The area above yesterday's high will be displayed in Red. The range between yesterday' s Close and High will be shown in Yellow. The area between yesterday ' s
Close and Low is Green. The rates below yesterday's Low will be show in Blue. Yesterday's High, Low, and Close will be determined at the end of each trading day and used for the color generation for the next following day.
SPOT WINDOW
Referring to FIG. 3, the system takes all the existing orders into account and generates in real time the Best Bid 304 (108.60) and Best Offer 306 (108.64). The white area, which is also called Spot Window 312, reflects the current spread 312,314 between best bid and offer. This window will widen and shrink depending on market activities (supply and demand). Any Limit Sell order or Limit Buy order entered into the Spot Window 312 will shrink the white area. Any active buy or sell At-Market orders (if the whole net total at the best bid or best offer is taken) will widen the Spot Window 312. The Spot Window 312 can move up or down along side the rates depending on the market activities.
VISIBILITY
The institution which manages the system, can decide through the Back Office Version of the Universal Trading Platform to make the liquidity (orders, best bids and offers) visible or non- visible to end users. They have also the option to make all the orders visible for the bank, which runs the market risk. They can also choose to restrict the clients to view only their own orders.
MAXIMUM AMOUNT, MINIMUM AMOUNT AND AMOUNT FRACTIONS The sponsor or the entity, which manages the system, can define the minimum and maximum amount which can be traded in the system, through the Back Office Version. They can also define the amount fraction or allow all kind of amounts between the maximum and minimum amount. If they go for the fraction solution the clients will be able only to trade for example in 100 k fractions.
PRE-ORDERAND PRE-TRADE CREDIT CHECK
The Virtual Market can be connected to a credit/margin check module. The pre-order or pre-trade check makes sure that only users with available trading and credit lines enter the Virtual Market and trade. If the Virtual Market is used as a multiple bank platform the credit/margin module will check also the interbank credit lines.
MATCHING
A Matching module, described in more detail below, is built into the Virtual Market. The function of the Matching module is to match Sellers and Buyers at a certain rate level, when a trade is initiated. This happens automatically based on the matching rules. No human element is involved. To initiate a Matching an active buyer or seller needs to initiate an at-market order to sell or to buy. All the orders related to this rate level will be executed based on the matching rules, which is described in more detail below.
SINGLE BANK VIRTUAL MARKET PLATFORM
The Virtual Market can be used as a platform to create an Internal Central Market and/or Exchange, where Departments, Affiliated Banks, Clients, Branches and Dealing Rooms participate directly. Through this model all the liquidity in the whole network can be pooled together into one market and distributed back to all users. If the internal liquidity is not sufficient to generate smaller spreads and better liquidity then liquidity from the OTC (other banks) can be pulled in. If needed the internal bid and offer can be pushed into the OTC market.
VIRTUAL MARKET PARTICIPATION
The main market participants are Departments, Affiliated Banks, Clients, Branches and Dealing Rooms. The Bank can decide about two ways of participation. Direct participation: In this case the participants have direct access to the virtual market price. In other words the participants are market maker and market user at the same time without any intermediaries. Indirect participation: In this case the participant does not have access to the virtual market' s best price . Instead the participant will be served with a predetermined spread around the virtual market best price. In other words if the virtual market's price is 5052 and if the spread is 6 then the price 49 55 will be pushed to the participant. For Spread management the Spread Table, see FIG. 4, is used by the bank.
SINGLE BANK VIRTUAL MARKET TRADE EXECUTION AND SETTLEMENT
One of the main tenets of the virtual market is to let all participants trade with each other. The counter party for each trade can be a different sponsor (bank). For practical reasons the bank will become the counter party for the buyer and seller. This way a smooth settlement can be assured from the bank's side without assuming any risk position. In case of a trade, the deal will be confirmed and both parties' portfolios will be adjusted automatically in real time. All the settlement process happens inside of the institution. The participants can access the virtual market through a Private Network. The Internet is another way to offer a virtual market to participants. There are two ways to offer a virtual market over the Internet: (1) Internal Hosting: In this case the bank hosts the virtual market application internally, behind their firewalls and on their servers. They will also monitor and maintain it. (2) External hosting (Application Service Provider Solution): In this case the bank out-sources the hosting. A separate company runs the virtual market out of a server farm. It is monitored and maintained through this company.
MULTIPLE BANK VIRTUAL MARKET PLATFORM The virtual market (VM) can be also used with a network of banks, where all members of the network provide each other liquidity. There are three ways to create a virtual market network. ( 1 ) a single pole network; (2) a multiple pole network; and (3) a center pole network.
SINGLE POLE NETWORK
The single pole network (SPN) has a major Center Bank as the main liquidity provider. Several other banks (Satellite Banks) are connected to the Center Bank through Liquidity Links. The satellite banks are just liquidity users. The relationship is one way. The Center Bank creates its own VM with its internal participants first. The best Bid and Offer or a price with a certain spread is pushed to the Satellite Banks. The
Satellite Banks can trade on it and/or push it to their own clients through their internal systems. The Center Bank must have a VM established. The satellite banks can use their internal system or the VM to establish relationship. In case of a trade an immediate confirmation will be sent to the Center bank. From there on the Back Offices of both banks take care of the settlement like in an OTC market deal. The network can be organized as an exclusive private network.
SINGLE BANK VIRTUAL MARKET NETWORK: INTERNET /ASP
The network can be organized over the Internet. In this case' the center bank will push the Bids and Offers through the Internet. There are two ways to offer VM over the
Internet: (1) Internal hosting: In this case the Center Bank hosts the VM application internally behind their firewalls on their servers. They also monitor and maintain it. (2)
External hosting (Application Service Provider Solution): In this case the Center Bank out-sources the hosting. A separate company runs the VM out of a server farm. It is monitored and maintained through this company
MULTIPLE POLE VIRTUAL MARKET NETWORK
In this embodiment the network participants are equal. They all use the VM as the internal platform. They all are at the same time market users and market makers. Through the network each bank pushes the best Bid and Offer of their own internal Virtual Market to each other. This way the whole network creates the best Bid and Offer between the banks.
VIRTUAL MARKET PARTICIPATION
There are two levels of participation: (1) direct interbank participation: The banks are directly connected to each other. The relationship is a pure interbank relationship.
The clients trade only in their bank's Virtual Market. (2) indirect client participation: The clients are part of the internal Virtual Market. If they trade on any price provided from a member bank of the network, their house bank will be in between them and the other bank.
SINGLE BANK VIRTUAL MARKET TRADE EXECUTION AND SETTLEMENT If in Bank 1 's VM any participant hits the order from another bank (Bank3), both banks become the counter parties. The whole transaction will be treated like a normal interbank
OTC transaction. Within their interbank credit limits the deals will go through and settled through their back offices. The network between the banks can be an exclusive private network. SINGLE BANK VIRTUAL MARKET NETWORK: INTERNET /ASP Another way to organize the network is over the Internet. Each bank's website can be connected to each other and the prices can be pushed to each other. The banks can also out source their application hosting to an ASP, with the same connectivity to each other.
CENTER POLE VIRTUAL MARKET NETWORK
The center pole virtual market network embodiment is created through a new entity, which the member banks create. The VM platform is organized and run by this entity. The member banks are becoming direct clients. Clients can have direct or indirect access to this platform. Any trade between the banks even initiated by a client action is an interbank deal.
VIRTUAL MARKET PARTICIPATION In this embodiment, the member banks can participate directly through their dealers. The member banks' clients may also have direct access to the VM through the control of the member bank. These "clients" cannot be a direct counter-party for other banks. Therefore even if they have direct access to the VM through their sponsor banks, the sponsor banks will always be the ultimate counter party for all deals and their banks will settle the transaction with other member bank.
SINGLE BANK VIRTUAL MARKET TRADE EXECUTION AND
SETTLEMENT
Any deal transacted on the Consortium platform is an interbank deal, even if it is initiated indirectly through a member bank's clients. The credit line and settlement issues are managed through existing interbank procedures. The banks will settle their net positions through their internal back offices as in the OTC market. The member banks of the consortium can organize their network through an exclusive private network. SINGLE BANK VIRTUAL MARKET NETWORK: INTERNET /ASP The member banks can also organize the network through the Internet. The consortium can offer the VM through its web portal to their member banks. This website can be also out sourced to an ASP site.
STANDARD ORDERS IN THE VIRTUAL MARKET
Along with Speed Orders the VMs allows for so-called Standard orders which allow for more details and control functions for the user.
AT-MARKET ORDER
At-Market orders are executed in the VM immediately through the Matching process. To execute an At-Market order there needs to be a Limit Sell (if the user is a buyer)or Limit Buy order (if the user is a seller) available. The user can select the currency pair and type in any amount for any of the currencies. He also needs to choose the action Buy or Sell and submit the order into the system. The At-Market order has two modes: All: In this mode the full amount of the At-Market order will be executed at any rate where Net Amounts (Limit order minus Stop order) are available. The system can use several rate level orders until the full amount is fully executed. Part: The user needs to define the worse-case rate level, that shouldn't be exceeded during the execution. In other words the user is asking the systems to execute his order not worse than a specific rate.
LIMIT ORDER
The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency 1 or Currency 2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good-Till-Cancel, Good Until
(choose date and time) and Order Suspension (choose starting time and ending time). The order will go through if the order form is properly filled and the rate is consistent with the rules. A Limit Sell order will be accepted only if it is above the Spot Bid. At the Spot Bid it will be executed as an At-Market-Sell order. Below Spot Bid it will be rejected. A Limit Buy order will be accepted only if it is below the Spot Offer. At the Spot Offer it will be executed as an At-Market-Buy order. Above Spot Offer it will be rejected.
STOP ORDER The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency 1 or Ccurrency2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good Till Cancel, Good Until (choose date and time) and Order Suspension (choose starting time and ending time). The order will go through if the order form is properly filled and the rate is consistent with the rules. A Stop Sell order will be accepted only if it is below the Spot Bid. A Stop Buy order will be accepted only if it is above the Spot Offer.
OCO ORDER
Referring to FIG. 5, an OCO order consists of a Limit 502 order and a Stop 504 order. For example, if the client has a long position he chooses a Limit Sell 506 order above the Spot Bid and Stop Sell 508 order below the Spot Bid. If the client has a short position he chooses a Limit Buy 510 order below the Spot Offer and Stop Buy 512 order above the Spot Offer. The user needs to make his choice concerning Action, Currency Pair, Amount Currency 1 or Ccurrency2, and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good Till Cancel, Good Until and Order Suspension.
ID SINGLE ORDER
The ID Single Order consists of two orders. Referring to FIG. 6, the first one is to open a position and the second order is a Stop 602 order to protect the position. If the user wants to go long in his first order, he needs to submit a Stop Sell 604 order below the rate he wants to buy. If the user wants to go short in his first order, he needs to submit a Stop Buy 606 order above the rate he wants to sell. The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency lor Ccurrency2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good Till Cancel, Good Until (choose date and time) and Order Suspension.
ID OCO ORDER This consists of three orders. Referring to FIG. 7, the first order 702, like the
ID Single, is a position opening order. The last two orders 704, 706 are submitted into the VM after the execution of the first order 702 to protect the position on the upside and downside. If the user wants to go long with the first order 702, he needs to create a Limit Sell 708 order to take profit and a Stop Sell 710 order to cut losses. If the user wants to go short with the first order, he needs to create a Limit Buy 712 order to take profit and a Stop Buy
714 order to cut losses. The rales for Limit and Stop orders are the same. The user needs to make his choice concerning Action, Currency Pair, Amounts for Currency lor Ccurrency2 and Rate. At the same time he needs to choose between the three different types of Time Horizon (see Time Horizon): Good Till Cancel, Good Until (choose date and time) and Order Suspension.
TIME HORIZON
The Time Horizon has three different modes as described above. In the first mode the user has chosen Good Till Cancel. In this case the order will stay in the VM until the user cancels the order or until it is executed in the market. A partial execution is possible for all passive orders like Limit or Stop orders. In the second mode, Good Until, the user chooses a date and time. The order will remain active in the VM until then. Once the date and time is reached, the system will automatically cancel the orders. In Order Suspension, the client chooses a time period where the order will be suspended (taken out of the market) and resubmitted into the market. The client needs to choose the starting time and the ending time. The Order Suspension will be repeated in the system until the order expires or is fully executed. SPEED ORDERS IN THE VIRTUAL MARKET
Speed Orders are provide the VM participants to submit orders with one or two "clicks". Users of Speed Orders are not required to fill in many details in the order form. The participants can change only the amount or the rate. Once a customer begins to trade, the last traded amount will be stored in the system. Anytime the user opens the Speed Order form this "Default Amount" will be automatically displayed. The rates will be also automatically taken over once the user clicks a certain rate on the Virtual Market Screen. With the first click the user opens the Speed order form and determines the rate. With the second click the Speed order will be submitted directly into the VM and immediately becomes part of the VM liquidity
SPEED LIMIT SELL /STOP SELL ORDERS
The Speed Limit Sell and Speed Stop Sell areas are illustrated in FIG. 8. The
Limit Sell 802 area is above the Best Bid 804 and ends at the Best Spot Bid level. At the Best Spot Bid level the limit order will be executed as an At-Market order. The Stop Sell area starts at and below the Best Spot Bid. These types of orders can be only submitted. through these areas of the screen. The user needs to click the Speed Limit Sell 806 or Speed
Stop Sell 808 column at a chosen rate level. The system will display the rate and the default amount (last traded amount) automatically. The user can change both the amount and the rates, then with a second click submit the order directly into the VM. If the client changes the amount for the one currency, the system will automatically adjust the amount for the second currency based on the rate in the order form.
LIMIT OR STOP SELL ORDER CONFIRMATION Once a Limit or Stop sell order is successfully submitted, the Virtual Market will confirm the acceptance of those orders like above. These confirmations will display the order number, which is confirmation that the order is in the VM. SPEED LIMIT BUY /STOP BUY ORDER
The Speed Limit Buy and Speed Stop Buy areas are illustrated in FIG.9. The Limit Buy 902 area is below the Best Spot Offer and ends at the Best Spot Offer level. At the Best Spot Offer level the limit order will be executed as an At-Market order. The Stop Buy area starts at and above the Best Spot Offer. These types of orders can be only submitted, through these areas of the screen. The user needs to click the Speed Limit Buy or Speed Stop Buy column at a chosen rate level. The system will display the rate and the default amount (last traded amount) automatically. The user can change both the amount and the rates, before with the second click submitting the orders directly into the Virtual Market (VM). If the client changes the amount for the one currency, the system will automatically adjust the amount for the second currency based on the rate in the order form.
LIMIT AND STOP BUY ORDER CONFIRMATION
After each Limit or Stop Buy order is successfully submitted, the Virtual Market will confirm the acceptance of those orders like above. These confirmations will display the order number, which is confirmation that the order is in the VM.
SPEED SPOT WINDOW ORDERS
In the VM each participant can be a Market Maker and Market User at the same time. The participant can improve the Best Spot Offer by submitting better (lower)
Limit Sell Orders than the existing one in the VM. As a result, the spot window will narrow. The participant can also improve the Best Spot Bid by submitting a better (higher) Limit Buy
Orders than the existing one in the VM. As a result the spot window will also narrow. The participant can also improve the Best Spot Bid by submitting better (higher) Limit Buy Orders than the existing one in the VM. As a result the spot window will shrink. SPEED SPOT WINDOW ORDERS
In another embodiment of the UTP, the participants can click the rates in the spot window and submit Limit Sell or Limit Buy orders and improve the best bid and offer in the VM.
ONE OR TWO CLICK SPEED ORDER SUBMISSION:
To submit a speed order, the client needs to click the defined areas for limit sell, limit buy, stop sell or stop buy. The system will open the speed order window in which the rate (where the user has clicked) and the default amount (last traded amount) will be displayed. The user can change the amount and the rate any time. With the second click the speed order will be sent into the "VIRTUAL MARKET" and displayed immediately.
SPEED MARKET MAKER IN THE VIRTUAL MARKET
The Speed Market Maker is designed as a tool to submit Best spot Bids and / or Offers into the system at the same time. The user can chose to submit either a Best
Bid, a Best Offer or both. If the user decides to submit Bid and Offer at the same time he needs to click the bid rate. The offer rate will be calculated based on the pre-defined Spread in the system. In other cases the user will select the rate level to submit his mterest. The Best Bid and Offer are in fact Limit Buy and Limit Sell orders. The user can change his quote in the system by choosing a different rate level and submitting new Best Bid and Offer. The system will automatically cancel the last quote. The quotes can be done with one or two clicks through the Virtual Market screen.
SPEED BIDS AND OFFERS The Speed Bids and Offers are in fact Speed Limit Buy (BID) or Speed Limit
Sell (OFFER) orders. The trader can submit Speed Bid and Offer by clicking the BID rate first. Afterwards the system adds the predefined spread the Spot Bid and calculates the Spot Offer. The trader can change the spread, amounts or the rates if he wants. With the second click the Speed Bids and Offers can be submitted into the VM. If the trader wants to change his Speed Bid and Offer he can repeat the same procedure and submit the new Speed Bid and Offer into the market. The system cancels automatically the existing old Bids and Offers before it sends the new Speed Bid and Offer into the VM. SCENARIO 1 : The traders improve the existing Spot Bid and Offer in the VM. SCENARIO 2: The market maker creates a new Spot Window above the old Spot Offer. With this action all the orders at and above the old Spot Offer will be executed up to the new Spot Bid rate. SCENARIO 3: The market maker creates a new Spot Window below the old Spot Bid. With this action all the orders at and below the old Spot Bid will be executed up to the new Spot Offer rate.
SPEED SPOT BIDS
The market maker can decide to show only Speed Spot Bids, which is a Limit Buy order, in the VM. To do this the market maker needs to disable the Speed Offer functionality. The user needs to pick the rate level to submit Speed Spot Bid (Limit Buy Order). Any new Speed Spot Bid will cancel the old one. SCENARIO 1 : The market maker improves just the Spot Bid inside the existing Spot Window, by choosing a rate level above the existing Spot Bid.
SCENARIO 2: The market maker increased the Spot Bid above the Spot Offer. With this action all the orders at and above the old Spot Offer will be executed up to the new Spot Bid rate.
SPEED SPOT OFFERS
The market maker can decide to just show Speed Spot Offers, which is a Limit Sell order, in the VM. To do this the market maker needs to disable the Speed Bid functionality. The user needs to pick the rate level to submit Speed Spot Offer (Limit Sell
Order). Any new Speed Spot Offer will cancel the old one. SCENARIO 1: The market maker improves just the Spot Offer inside the existing Spot Window, by choosing a rate level below the existing Spot Offer. SCENARIO 2: The market maker improves just the Spot Offer below the Spot Bid. With this action all the orders at and below the old Spot Bid will be executed up to the new Spot Offer rate.
AUTOMATED ORDERS IN THE VIRTUAL MARKET Banks can use high quality OTC market rates or rates from another bank to pump real time non-stop liquidity into its own VM. These are Spot Bids (Limit Buy Order) and Spot Offers (Limit Sell Order), which will be shown in the VM. If the rates are delivered from another bank the counter party in any deal will be this liquidity-providing bank. If the rates used are from a data provider then the owner of the VM will be the counter party. The OTC orders from outside will be replaced any time the rate changes. SCENARIO 1 : In this case the incoming OTC orders improve the bid and offer in the VM. SCENARIO 2: The OTC orders are above the existing Spot Offer. In this case the new Bid will execute all existing orders at or above the old Spot Offer up to the new Spot Bid rates. In the example below all orders at 1.7857 and 1.7858 will be executed. SCENARIO 3: The OTC orders are Below the existing Spot Bid. In this case the new Offer will execute all existing orders at or below the old Spot Bid up to the new Spot Offer rate.
MATCHING IN THE VIRTUAL MARKET
Matching occurs in the Virtual Market (VM) when buyers and sellers meet each other at the same currency rate and enter a deal with each other. The counter party in the matching process can be any market participant. The following conditions need to be there before the system matches:
COMPONENTS OF MATCHING: Passive Orders: Passive orders are Limit and Stop orders submitted at a certain rate into the system. They alone are not enough to initiate a matching. First the VM takes all the passive Limit orders and processes them alongside the rates. The first lowest Limit Sell order becomes the Spot Offer and the first highest Limit Buy becomes the Spot Bid. Once the Spot Bid and Offer build with the first orders, then the Stop Orders can be submitted based on certain rules. Stop orders are allowed to be submitted at or outside of the Spot Window, which is defined by Spot Offer and Bid. Stop Buys are placed at or above the Spot Offer and Stop Sells are placed at or below the Spot Bid.
Active Orders: Active orders are At-Market orders. They are sent into the market once the Spot Bid and Spot Offer are created. At -Market orders can initiate a Sell or a Buy. An At-Market Sell order must meet Spot Bid and an At-Market Buy must meet a Spot Offer to be executed. Under certain conditions Limit orders can become an At-Market Order. A Limit Buy order submitted at the Spot Offer rate will be treated as an At-Market Buy order in the system. A Limit Sell order submitted at the Spot Bid rate will be treated as an At-Market Sell order in the system.
MATCHING PROCESS:
MATCHING PROCESS AT THE SPOT OFFER:
To initiate a matching an At-Market order needs to be submitted into the VM. An At-Market Buy order will be matched against the Net Amount of the Spot Offer. The Net
Amount is the difference of Limit Sell minus Stop Buy order amounts at the Spot Offer rate.
The sequence of matching: Once the At-Market Buy orders hits the Spot Offer first the Stop
Buy orders will be matched (executed) against the Limit Sell order at the Spot Offer rate.
The rest of the Limit Sell order amount will be matched afterwards against the At-Market Buyer, if any Net Amount is left.
MATCHING PROCESS AT THE SPOT BID:
An At-Market Sell order will be matched against the Net Amount of the Spot Bid. The Net Amount is the difference of Limit Buy minus Stop Sell order amounts at the Spot Offer rate. The sequence of matching: Once the At-Market Sell orders hits the Spot
Offer first the Stop Sell orders will be matched (executed) against the Limit Buy orders at the Spot Bid rate. The rest of the Limit Buy order amount will be matched afterwards against the At-Market Sell order, if any Net Amount is left. ORDER VIEW IN THE VIRTUAL MARKET
The orders in the VM will be shown in two different screens: the Order Blotter, illustrated in FIG. 10, and Virtual Market Screen, illustrated in FIG. 11.
ORDER VIEW IN THE BLOTTER
Referring to FIG. 10, in the Order Blotter the user will see all of his current orders in the system with all the details submitted by him.
ORDER STATUS COLORS Colors indicate the status of the orders. Red means the order is either fully executed or canceled. Orange means the order is partially executed. The pending amount will be displayed in the Order Blotter. Yellow means the order is active in the system but not yet executed. Grey means the order is suspended and waiting to be resubmitted into the VM. These are parts of the ID Single or ID OCO orders.
ORDER DETAILS
The following Details will be displayed: Order Number; Order Type; Action
(Buy or Sell); Currency Pair; Currency Amounts; Order Rate; Time Horizon (Good Till
Cancel, Good Until and Order Suspension); Orders Status (Filled, Canceled, Partially Pending, Pending and Suspended); Counter party; Order Time and Date Stamp; and Client
ID.
ORDER MANAGEMENT
There are different ways to manage orders submitted into the V M:
CANCEL ALL ORDERS Through the menu function, each participant can cancel all their open and partially pending orders with one "click". CANCEL SINGLE ORDER
To cancel a single order the participant needs to click the specific single order
("Order Number"). The window shown below will pop up. The user can either cancel the single order, EDIT the single order or just leave it in the system. If the user decides to edit it, the system will cancel the order first and download it back into the original order form.
After changes have been made by the user, it can re-submit the order into the VM.
ORDER VIEW IN THE VIRTUAL MARKET
The difference between the Order Blotter and Virtual Market is that in the Order Blotter each user can see his own orders. The Virtual Market is a public screen, illustrated in FIG. 11, which reflects all of the interest in the Market. The Order Blotter is a private screen. In the Virtual Market only the order amounts will be displayed anonymously alongside the rates. Users of the Virtual Market will not know whose order is displayed. There are two display modes in the Client Version which are controlled by the bank. In the first mode the clients will see the order amounts from all players. In the second mode each user will see only his own orders. In the bank version of the Virtual Market the bank dealer will see all orders.
ORDER EXECUTION The Order Execution is done through the At-Market orders, which are the other side of the passive Limit and Stop Orders. Both active (At Market orders) and passive (Limit and Stop orders) are matched during the matching process. The result is the execution of passive orders. There are different ways of submitting At-Market orders: The At-Market orders directly submitted by the participants; The Limit Buy orders, which are submitted at the Spot Offer; The Limit Sell orders, which are submitted at the Spot Bid; Automated Limit
Buy and Sell orders created through the OTC rates or based on other pricing tools. In this case, the Limit Sell orders has to hit the Spot Bid Rate and lower and the Limit Buy Order has to hit the Spot Offer Rate and higher (See Automated Rates section); Through Market Making action. In this case the Limit Sell orders has to hit the Spot Bid Rate and lower and the Limit Buy Order has to hit the Spot Offer Rate and higher (See Speed Market Making section).
SPEED TRADING IN THE VIRTUAL MARKET
SPEED BUY TRADING
Submitting orders or best bids and best offers into the system is a way to provide liquidity into the Virtual Market. All users can use this liquidity by hitting the net total at the Best Spot Bid or Best Spot Offer level. If the user wants to buy (sell) he needs to hit the Net Total at the Best Spot Offer (bid) level. The trade screen will open with the default amount (last traded amount). Before submitting the trade order the client can choose between the All or Part execution option. IF he chooses the All option, the system will execute the user's amount at the best rates available, until it is fully executed. If the user chooses the Part option, the system will execute the order up to a pre defined rate level, which is defined by the user.
SPEED BUY CONFIRMATION
After each successful trade, the system will confirm the execution with an Order Number. It can be a full or partial execution.
SPEED SELL TRADING
Submitting orders to best bids and offers into the system is a way to provide liquidity into the Virtual Market. All users can use this liquidity by hitting the net total at the Best Spot Bid or Best Spot Offer level. If the user wants to buy (sell) he needs to hit the Net Total at the Best Spot Offer (bid) level. The trade screen will open with the default amount
(last traded amount) . Before submitting the trade order the client can choose between the All or Part execution option. If he/she chooses the All option, the system will execute the user's amount at the best rates available, until it is fully executed. If the user chooses the Part option, the system will execute the order up to a pre determined rate level, which is defined by the user.
SPEED THE SELL CONFIRMATION After each successful trade, the system will confirm the execution with an
Order Number. It can be a full or partial execution.
TRADE VIEW AND MANAGEMENT IN THE VIRTUAL MARKET
All trades executed through the VM will be displayed in real time in the Trade Blotter.
TRADE BLOTTER
The TRADE BLOTTER provides the following information: Trade Number; Currency Pairs; Amounts; Deal Rate; Value Date; Counter party; Time and Date Stamp of the
Deal; Swap points, if it is an Outright or Swap Deal; and Client ID.
TRADE SPLIT
Once a spot trade has been executed, it can be processed further through the Trade Split function. Any master account holder, who manages sub accounts, can execute one trade in the VM and afterwards split it between his sub account holders. To execute Trade Split the master account holder has to establish a client list with their percentage shares in the split table. Once this is done he can automatically call his existing client list and the system splits the traded amount onto each sub account. With a second click the master account holders submit the split. As a result, the master account holder transfers his position to several sub accounts. PORTFOLIO BUILT THROUGH THE VIRTUAL MARKET
Any trade executed through the VM will be shown as a net position in the VM portfolio. The portfolio will display the information in two different ways: (1) Currency Pair Portfolio; and (2) Single Currency Portfolio.
CURRENCY PAIR PORTFOLIO
Here the VM portfolio will show the following details: The net currency pair position; The average rate of the currency pair position if several trades are executed in that specific currency pair; The real time spot rate; The profit and loss in Currency 2 terms and translated into USD; All fees and charges paid so far during the trading day; The profits and loss for each currency pair position; and Over total profit and loss.
SINGLE CURRENCY PORTFOLIO
The second way to display the account holders' currency exposure is the Single Currency Portfolio. In this case the currency are separated and the system looks into each single currency exposure. Sometime participants like to trade for example several JPY currency pairs. In that case it is valuable information to know what the net JPY currency exposure is.
INTERFACES TO VIRTUAL MARKET
The following Interfaces are developed to access the Virtual Market and Market Overview and are illustrated in the following screen shot FIGs 12-16: Fusion, FIG. 12; Fusion Lite, FIG. 13; Interbank, FIG. 14; DDS (Direct Dealing System), FIG. 15; and DOES (Direct Order Entry System), FIG. 16.
THE MARKET OVERVIEW OF THE VIRTUAL MARKETS
The UTP Market Overview is a combination of several Virtual Markets. In the UTP each currency pair has its own Virtual Market. To create the Market Overview, the following part from each Virtual Market are taken: Currency Pairs; Best Spot Bid and Offer, including their Color Indications; Spot Window Spread; and Today's Open, High, Low, range and Volume.
COMPONENTS The following is displayed on the Market Overview, illustrated in screen shot
FIG. 17, from left to right:
CCY 1702 : The currency pair indication (taken over from the Virtual Market) . By clicking on the currency pair listed in the left column, the user can change the currency pair displayed in the Virtual Market in the Default Screen. The user can also open several standalone Virtual Markets through the menu.
At Best Sell Request 1704: This is an At Best Sell Execution Order (This will be explained in a separate document).
Net Total On The Bid 1706: The difference between the sell and buy orders at the Best Spot Bid level (taken over from the Virtual Market, see the Virtual Market) Bid Rate 1708 : The is the latest Best Spot Bid, generated by the system, in real time from of all existing orders in the system. (See also the Virtual Market).
Spread 1710: Spread is another way to display the Spot Window from the Virtual Market. It is a static area, which reflects the difference between the Best Spot Bid and Best Spot Offer. It is displayed in number of pips. Offer Rate 1712: The is the latest Best Spot Offer, which the system generates in real time from of all existing orders in the system. (See also the Virtual Market)
Net Total On The Offer 1714: The difference between the sell and buy orders at the Best Spot Offer level (taken over from the Virtual Market, see the Virtual Market) Color Signals: see the Virtual Market color rales. (Taken over from the Virtual Market)
At Best Buy Request 1716: This is an at Best Buy Execution Order. Open, High, Low, Range Volume 1718: These are all today's market data for a specific currency.
Quote Request 1720: This is a direct two-way quote request button. SPEED LIMIT SELL/STOP SELL ORDERS
By clicking on the Best Spot Bid Rate in the Market Overview the user will be able to open the Speed Sell Order Screen. The rate and amounts can be changed. The client needs to make a choice between the Limit and Stop Order options. Afterwards he can submit the order into the system. The Speed Limit Sell Order will be accepted in the system only if the rate of the order is above the Best Bid Rate. At the Best Bid Rate it will be executed as an At Market Order immediately. The Speed Stop Buy order will be accepted in the system only if the rate of the order is below the Best Bid.
LIMIT SELL/STOP SELL ORDER CONFIRMATION
After the second click, the order is submitted into the VM and the system will confirm the acceptance with the displayed Order Number.
SPEED LIMIT BUY/STOP BUY ORDERS By clicking the Best Offer Rate on the Market Overview the user will be able to open the Speed Buy Order screen. The rate and amounts can be changed. The client needs to make a choice between the Limit and Stop Order options. Afterwards he can submit the order into the system. The Speed Limit Buy Order will be accepted in the system only if the rate of the order is below the Best Offer Rate. At the Best Offer Rate it will be executed as an At-Market Order immediately. The Speed Stop Buy order will be accepted in the system only if the rate of the order is above the Best Offer.
LIMIT BUY/SELL BUY ORDER CONFIRMATION After the second click the order is submitted into the VM and the system will confirm the acceptance with the displayed Order Number. SPEED SELL TRADING
The Speed Sell function works in the same way as explained in the Speed trading section.
SPEED SELL CONFIRMATION
The Speed Sell Confirmation function works in the same way as explained in the Speed Trading section.
SPEED BUY TRADING The Speed Buy function works in the same way as explained in the Speed Trading section.
SPEED BUY CONFIRMATION
The Speed Sell Confirmation function works the same way like in the Speed trading section explained.
INSERT ORDER
FIG. 18 shows a flow diagram for submitting orders to the Universal Trading Platform (UTP system). The flow diagram shows various layers including various order entry screens 1802 that are presented to a user, a com layer 1804, stored procedures 1806, and a database 1808. Generally, the various order entry screens 1802 are used to insert an order into the UTP. All screens call a component named OrderSubmit (A7), and OrderSubmit (A7) calls InsertOrderSP (A8) to insert a new order in database 1808. Before an order goes in, the user's trading power is determined. An order will not be go in if the trading power is insufficient. When an order is at market, the order will be matched by other orders at the same rate in the market. The matched orders will update MarketMaker. After an order is inserted, depending upon how the UTP is set up, OTC orders will be inserted into the system to add liquidity and/or execute trades. At the end, an order number is returned to the user screen. Block Al . Speed Bid. The speed bid screen (Al) allows the user to enter a limit or stop buy order by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808.
Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block A2. Speed Offer. The speed offer screen allows the user to enter a limit or stop sell order by specifying a rate and a from-currency amount or a to-currency amount. If a from-currency amount is entered, a to-currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808. The order will be inserted into the system based on the rules of InsertOrderSP (A8). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block A3. Speed Buy. The speed buy screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808. The order will be processed according to the rales of InsertOrderSP
(A8) and MatcherSP (A 12). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block A4. Speed Sell. The speed sell screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the
SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808. The order will be processed according to the rules of InsertOrderSP (A8) and MatcherSP (A 12). Status is returned to the user from the Order Submit (A7) through the stored procedures. This status is then displayed to the user. Block A5. Rate Order. The rate order screen allows the user to enters limit buy or limit sell order between the current high and low spot rates by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the
InsertOrderSP (A8) in database 1808. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block A6. Multiple Orders. The multiple order screens allow the user to enter multiple order types concurrently by specifying the appropriate information for each order. The user submits all the orders to the system at once by selecting the SUBMIT button.
This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in database 1808 for each order. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block A7. Order Submit. An order submit dll is a middle tier com layer 1804 component that is invoked by a user upon submission of any order type. It is called from several user interface screens (A1-A6) and is responsible for invoking InsertOrderSP (A8) in database 1808 and reporting the results of the transaction to the user interface.
Block A8. InsertOrderSP. InsertOrderSP (A8) is a database stored procedure that is invoked by OrderSubmit (A7) as well as by OTCOrder_Market (A20), the at market order process, quote request process and forward module processes. All orders enter the system through this stored procedure. It implements transaction commit and rollback functionality to ensure database integrity in the order insertion process. Data is insert into the ForexOrder table (A24). TradePower (A10) and CloseCheckSP (A9) are called to determine the types of orders a trader is allowed to make if any. MatcherSP (A 12) is called when the market conditions are such that the order is executed. TimeHorizonSP
(Al 9) and GoodUntilDateSP (Al 9) are called to handle the special time restrictions that may be placed on an order.
Block A9. CloseCheckSP. CloseCheckSP (A9) determines whether or not the inserted order is an order to close a position. Block A10. Trade Power. See E1-E8, described below. TradePowerSP (A10) determines a trader's ability to trade based on account and risk information.
Block A12. MatcherSP. See D1-D35, described below. MatcherSP (A12) controls the matching of orders that are at the same rate in the market. Block A13. CheckTradeSP. Called by MatcherSP (A12). CheckTradeSP
(A 13) calls CloseCheckSP (A9) and TradePowerSP (A 10) to determine whether to allow the order to proceed with the matching process. If the trader fails any trade power conditions CancelOrderSP (A22) is called to remove the order from the system.
Block A14. OrderFillSP. SeeFl-F19,describedbelow. OrderFillSP (A14) finalizes the matching process by inserting data into the OrderFill table (A25) for the matching orders that constitute a trade.
Block Al 5. ComputeFeeFctrSP. ComputerFeeFctrSP (Al 5) calculates traders fees based on classification of the trader and number of trades executed.
Block A16. CloseCheckSp/TradePowerSP/CancelOrderSP. SeeA9, A10 an A22.
Block Al 9. TimeHorizonSP/GoodUntilDateSP. These stored procedures determine the times when an order is visible in the system and insert or remove an order based on the time horizon and good until dates and times.
Block A20. OTCOrder_Market. OTCOrder_Market (A20) provides market liquidity. OTCOrder_Market inserts OTC orders into the system by calling InsertOrderSP
(A8) and removes OTC orders by calling CancelAUOrderSP (A21) or CancelOrderSP (A22).
Block A21. Cancel AllOrders. Cancels all orders for a particular trader by called CancelOrderSP (A22) for each order to be canceled.
Block A22. Cancel AllOrders. Cancels a specified order by changing its status in the ForexOrder table (A24) .
Block A23. InsertOrderSP. See A8, described above.
Block A24. ForexOrder. ForexOrder (A24) is a database table which contains all information the system requires for an order. Block A25. OrderFill. OrderFill (A25) is a database table, which contains all information the system, requires for matched orders.
ORDERSUBMIT (DLL) FIG. 19 shows a flow diagram for OrderSubmit (A7) process. The function of OrderSubmit (A7) is to insert a new order into table ForexOrder (A24) of database 1808. Generally, SubmitOrder (A7) is called from any of the various order entry screens 1802 and depending upon the order type chosen, a stored procedure 1806 is called. For an at-market, a limit, a stop, a speed bid, a speed offer, a speed buy, a speed sell, and a rate order, the InsertOrderSP (A8) is called directly. Combined order types like OCO, ID single, and ID
OCO have their own stored procedures, such as InsertOCOOrderSP (B4), InsertlDSmgleOrderSP (B5), and InsertlDOCOOrderSP (B6). These stored procedures call InsertOrderSP for every order that needs to go into the system. All stored procedures return the order number of the new order to the SubmitOrder. If the system is configured to insert OTC orders, the OTC orders are inserted for the same currency pair as the just inserted order at the high and low spot for a predetermined amount.
Block B 1. Order Entry data. The order data goes in with trader ID, buy or sell, order type, currency pair, amount for either currency 1 or currency2, the rate, counter party, time horizon and the 'not worse than rate'. Block B2. OrderType. Depending on the order type a route is picked: At
Market, Limit, Stop buy or sell call InsertOrderSP (A8); OCO Orders call InsertOCOOrderSP (B4); ID Single Orders call InsertlDSmgleOrderSP (B5); and ID OCO call InsertlDOCOOrderSP (B6).
Block B3. InsertOrderSP. This stored procedure inserts all orders into the databases. At Market, Limit and Stop orders call InsertOrderSP directly.
Block B4. InsertOCOOrderSP. An OCO order exists out of two orders; a limit buy or sell and a stop buy or sell. The InsertOCOOrderSP prepares these orders and calls InsertOrderSP for each order. InsertOrderSP inserts both orders into the database. Block B5. InsertlDSingleOrderSP. An ID Single order exists out of two orders; a limit buy or sell and a stop buy or sell. The InsertlDSingleOrderSP prepares these orders and calls InsertOrderSP for each order. InsertOrderSP for each order. InsertOrderSP inserts both orders into the database. Block B6. InsertlDOCOOrderSP. An OCO order exists out of three orders; a limit or a stop buy or sell, a stop or limit buy or sell and a stop buy or sell. The InsertlDOCOOrderSP prepares these orders and calls InsertOrderSP for each order. InsertOrderSP inserts both orders into the database.
Block B7. InsertOrderSP. See B3, described above. BlockBδ. OrderNumber. InsertOrderSP returns the order number of the order put in.
Block B9. OTC Orders On. When the switch for OTC orders is set to on two OTC orders go into the system to provide the market with liquidity.
Block BIO. InsertOTCOrderMarket. Two OTC orders go into the system at the market rates one at the high spot and one at the low spot.
Block Bll. Return the Order Number to the client. The order number returned by InsertOrderSP is sent back to the client.
INSERT ORDERSP FIG. 20 shows a flow diagram related to InsertOrderSP (A8).
Block Cl . Input Order data. The Insert Order process does all the work needed to enter a new order into the database.
Block C2. Check Trading Power. First the trader's trading power is checked if the trader is authorized to do the trade and insert an order into the system. Block C3. Sufficient TP. If trading power is sufficient the process goes on; otherwise the order won't go in and the trader is notified of lack of trading power.
Block C4. Prepare input for different order types. The data for the different order types is prepared before the order is going into the database. Block C5. Insert order into ForexOrder. The actual order is recorded into the database into table ForexOrder.
Block C6. Process the order when counter party is M. For orders that are part of the Virtual Market the counter party will be M. Those orders will have their effect on the Virtual Market and need further processing.
Block C7. At Market. At Market orders have their direct influence on the
Virtual Market. The order will be matched with other orders in the system at the market rate.
The matching will move the market and those orders that appear to be at market this time will be matched and filled. This goes on until there are no other orders at market that need to be filled.
Block C8. Match the order. Depending on a buy or sell order. The appropriate process is called. A buy will kick off MatcherHigh and a sell MatcherLow.
BlockC9. Update processing. The new orders in ForexOrder are updated with the ID's for the combined order types like OCO, ID Single and ID OCO. Also Time horizon is entered into ForexOrder. Time Horizon tells when an order is active in the system.
Block CIO. Return order number to the screen. After the order went in the new order number is returned to the trader.
MATCHER FIG.21 shows a flow diagram related to the Matcher module, described above.
Block D 1. Get the order data for the order to be matched.
Block D2. Check to be sure the order quantity is greater than zero, exit the matching process if not.
Block D3. Call CloseCheckSP. See A9, described above. Block D4. Call TradePowerSP. See E1-E8, described below.
Block D5. Create filter for record set retrieval so only the orders that exist at rates equal to or greater than the high spot rate are retrieved.
Block D6. Get record sets that meet criteria of D5. Block D7. If the net quantity is greater than or equal to the order quantity there is sufficient supply to process the order, proceed to D8 otherwise proceed to D 13. The net quantity is equal to the limit quantity at a pip rate minus the sum of the stop quantities from the last pip rate up to the current pip rate. Block D8. If the supply quantity is less than the order quantity proceed to D9 to fill the order and then to Dl 1 to get more supply otherwise proceed to D14.
Block D9. Fill the order. See F 1 -F20, described below.
Block D 11. Get the next supply quantity.
Block D 13. If the net quantity is greater than 0 there is some supply, return to D8 otherwise proceed to D26.
Block D14. If the supply pip rate is less than the stop pip rate proceed to D9 to process the supply, and then to Bl to get the next pip, otherwise proceed to D16.
Block D 16. If the stop quantity is greater than the supply quantity see D9 to process stops and then get more limits Dl 1 otherwise see D9 to process stops, get more limits Dl 1 and get more stops D24.
Block D24. Get the next stop quantity.
Block D26. If the stop quantity is greater than the supply quantity see D9 to process stops and Dl 1 to get next supply otherwise proceed to D9 to process stops, then to Dl 1 to get next supply quantity and to D24 to get next stop quantity. Block D27. Get the next pip rate and continue processing.
TRADING POWER (TRADING LIMIT)
FIG. 22 shows a flow diagram related to TradePower (A 10).
Block El. If the trading power check is called from InsertOrderSP (A8) or MatcherSP (A12), it has already been determined that the order is not a closing position order.
Block E2. The entry point from all other processes that check trade power.
Block E3. Determine whether the trader is an authorized trader. An authorized trader is a trader whose current trading status is active and not suspended. Block E4. Get the trader's current cash balance. Current cash is the trader's opening balance +/- withdrawals or deposits.
Block E5. Compute the trader's profit and loss. Profit and loss is calculated based on the trader's current net position and the current market high and low. Block E6. Determine the trader's utilized balance: Current
Balance/ Adjusted Range; And adjusted range:(Volatility Risk + Interest Rate Risk) * Country Risk * Client Risk.
Block E7. Calculate the trading power: (Current Balance - Utilized Balance +/- P&L) / Adjusted Range. Block E8. End.
ORDE FILL SP
FIG.23 shows a flow diagram for OrderFill (A14) process. The function of OrderFill (A14) is to commit orders to trade. Generally, OrderFillSP is called from each Matcher process. An order ID for a buy and/or a sell is passed to OrderFillSP. The order ID is used to set the parameters for each order. The value date for the currency pair is retrieved and the number of trades for each trader associated with the order ID's is updated. The order fees to be assigned to each trade are set, each trader's position is updated, and the market maker is updated. Block FI . Entry into the stored procedure from InsertOrderSP (A8).
Block F2. Determine the order's unfilled order quantity. This is the quantity of the order that has not been filled.
Block F3. Increment the trader's trade count by one. Block F4. Determine the booking fee for the buy order trader. Block F5. Update the ForexOrder table (A24) for the buy order by inserting new data generated as a result of filling the order.
Block F6. Determine the booking fee for the sell order trader. Block F7. Update the ForexOrder table (A24) for the sell order by inserting new data generated as a result of filling the order. Block F8. Update buy order trader's data in the Position table (F20)
Block F9. Update sell order trader's data in the Position table (F20).
Block F10. Determine if IF DONE orders exist for this filled order.
Block Fl l. Process IF DONE by inserting buy trader information in the ForexOrder table (A24).
Block F12. Process IF DONE by inserting sell trader information in the ForexOrder table (A24).
Block F13. Determine if OCO orders exist for this filled order.
Block F14. Process OCO by inserting buy trader information in the ForexOrder table (A24).
Block F 16. End.
Block F 17. See A24, described above.
Block F 19. See A25, described above.
Block F20. Position is a database table which contains all information the system requires for a trader's position.
ORDER ENTRY ROUND TRIP
FIG.24 shows a flow diagram for an order entry round trip process. Generally, Virtual Market window (G2) and Market Overview window (G 1 ) allow users to insert Speed orders at the market or outside the market. Clicking on the rates in those windows, will pull up a speed order window, for example, SpeedBid, SpeedOffer, etc. After the order is submitted and checked, the order goes into the system. If the order is at-market, the order will be matched with other orders at the same rate, and the matched orders are then filled. To update the market windows and the user data, every half second data is pulled from the Orders table and the Filled Orders table. A data server is used to prepare the market data for all the logged on users, thus allowing for many user screens to be updated with the same data at the same time. The XML provider combines the market data and the user data specific data and outputs the data to the user's screen. The inserted order is visible in the market and in the order blotter of the user who inserted the order. Block Gl . Market Overview. Market Overview is one of two screens for the virtual market in Billy Spot. Market Overview shows all currency pairs with their highs and lows. It allows a trader to enter orders either at market or besides the market. It also provides a messaging system traders can use to directly request the bank for quotes. This screen is updated every half second with the latest numbers.
Block G2. Virtual Market. Virtual Market is the second screen for the virtual market. The Virtual Market zooms in on a picked currency pair. A trader can pick any currency pair available in the Market Overview. To select the requested currency pair a trader needs to click the currency pair in the Market Overview. By default the USD/JPY currency pair is loaded into the Virtual Market.
Block G3. Speed Bid. The speed bid screen allows the user to enter a limit or stop buy order by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A 7) which calls the InsertOrderSP (A8) in the database. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block G4. Speed Offer. The speed offer screen allows the user to enter a limit or stop sell order by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7) which calls the InsertOrderSP (A8) in the database. The order will be inserted into the system based on the rales of InsertOrderSP (A8). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block G5. Speed Buy. The speed buy screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in the database. The order will be processed according to the rales of InsertOrderSP (A8) and MatcherSP (A12). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block G6. Speed Sell. The speed sell screen allows the user to enter an at market order by specifying an execution type (ALL or PARTIAL) and a from currency amount or a to currency amount. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7) which calls the InsertOrderSP (A8) in the database. The order will be processed according to the rales of InsertOrderSP (A8) and MatcherSP (A12). Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block G7. Rate Order. The rate order screen allows the user to enter a limit buy or limit sell order between the current high and low spot rates by specifying a rate and a from currency amount or a to currency amount. If a from currency amount is entered, a to currency amount is calculated and vice versa. The user submits the order to the system by selecting the SUBMIT button. This action invokes Order Submit (A7) which calls the
InsertOrderSP (A8) in the database. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block G8. Multiple Order. The multiple order screens allow the user to enter multiple order types concurrently by specifying the appropriate information for each order. The user submits all the orders to the system at once by selecting the SUBMIT button.
This action invokes Order Submit (A7), which calls the InsertOrderSP (A8) in the database for each order. Status is returned to the user from the Order Submit (A7) through the stored procedure. This status is then displayed to the user.
Block G9. Submit Order. Any order going into the system passes Submit Order. Submit Order prepares the data for the order to go in. It calls the appropriate stored procedure to enter the orders correctly into the database.
Block Gl 0. Insert Order. Submit Order passes the order data to the Insert Order process. Insert Order inserts the order into the database and kicks off other processing that needs to be done to update the trader's position and the virtual market. Block Gil. Insert Order, Match Orders, Fill Orders. The order goes into the database. When the order is at the market it will be matched with other orders at the same rate. All orders affected will be filled partly or complete.
Block G12. Order Data for Orders, Positions and Trades. Data for the trader's screens is pulled from the database every half second. Only changes to the screens are returned. This block returns data for the trader's orders, positions and trades. Also it includes data returned by the bank when the trader is doing a bank request.
Block G13. Get Client Data. Retrieves the trader's specific data for the orders, positions and trades. Only changes to the data are selected. BlockG14. XML Provider. The XML Provider turns the data coming from the database into XML-format. It also combines the trader's specific data with the market generic data coming from the Data Server. It sends out an XML-string to the client holding updates for the screen the trader uses.
Block Gl 5. Select Orders for Virtual Market and Market Overview. Virtual Market data is retrieved out of today's order data in the system. For both the Virtual
Market and the Market Overview screen.
Block G 16. Get Market Data. Generic data for the Virtual Market is selected and passed through to the Data Server.
Block G17. Data Server. The Data Server runs as a service in the background on each Application Server (Web Server). Each half-second or less it pulls the data for the Virtual Market up out of the database. It also retrieves a list of those clients that need an update to their screen. It returns the data to the XML Provider in XML format.
OTC RATE FEED BASED ORDER GENERATION OTC DATA FLOW
FIG. 25 shows a flow diagram for OTC order. At block 2501, OTC prices enter via an active feed. At block 2502 a price processor (the API) prepares the incoming OTC prices for the system. The input is the active feed and the output is the bid and the offer for a certain commodity. At block 2503, the OTCOrder_Market stored procedure is called from the price processor and is fed with price input. The stored procedure can be, for example, a Microsoft SQL Server stored procedure. At block 2504, the new incoming rates create new OTC orders in the system that will replace old OTC orders. The old OTC orders are canceled. At block 2505, it is determined whether the incoming new OTC high rate is less than the current low rate. If it is, at block 2506 a new OTC is inserted At-Market order at the incoming rate. If the incoming new OTC high rate is not less than the current low rate, then at block 2507, it is determined whether the incoming new OTC low rate is greater than the current high rate. If it is, then at block 2508 a new OTC At-Market order is inserted at the incoming rate. If it is not, then at block 2509 a limit order is inserted if the new rates do not affect the market.
MARKET MAKING
DEALER MARKET MAKING
FIG. 26 shows a flow diagram for a dealer market making process. At block 2601, a dealer enters an order using the system (Universal Trading Platform). At block 2602, the new order is passed through by a component called SubmitOrder.dll. At block 2603, the OTCOrder Market stored procedure receives its input from the OrderSubmit.dll. The stored procedure can be, for example, a Microsoft SQL Server stored procedure. At block 2604, the new incoming rates will create new trades in the system that will replace the old OTC orders and the old OTC orders will be canceled. At block 2605, it is determined whether the incoming offer is below the market low. If it is, at block 2606, an at-market order is inserted at the offered price, a match is made of any orders in the system at the changed market, and the orders filled. If it is not, at block 2607, it is determined whether the incoming bid is above the market high. If it is, at block 2608, an at-market order is inserted at the bid, a match is made of any orders in the system at the changed market, and the orders are filled. At block 2609, a limit order is inserted for each incoming rate. SYSTEM INFRASTRUCTURE
For "co-location" systems, InterNAP is utilized because it has the technology to deliver Internet packet data from point to point in the fastest and most reliable way using the existing backbone infrastructure of the Internet. InterNAP uses an intelligent routing and route management technology specifically designed to deliver data to and from destinations across the public Internet via the quickest and most reliable route. It should be realized that other providers can be used.
Public exchange points are the major intersections of the Internet. At these exchange points (MAE-East, MAE-West, PacBell NAP, etc.), the Internet backbones (UUNET, Sprint, etc.), along with hundreds of local and regional Internet access providers, meet to pass Internet transmissions on from one network to another. At these public exchanges enormous amounts of data are sent to and from each and every connected network. All of this data is transferred from network to network over the same common infrastructure. Congested intersections often result in data packet loss. When public NAPS (Network Access Points) and private peering points are congested, data packet loss occurs, slowing downloads and decreasing the reliability of data transmissions. Downloading a file from a web site under conditions with 1% packet loss can take up to twice as long as doing so when there is no data packet loss.
The solution to poor Internet performance is the P-NAP (Private Network Access Point). The P-NAP largely bypasses the public NAPs and private peering points, sending customer data along the shortest, most direct path across the Internet. They have direct connections into major global Internet backbones including OC3 and DS3 connections to UUNet, Sprint, Cable & Wireless, GTE (BBN), Digex (Intermedia), PSINet, AT&T, Verio and MindSpring (Netcom). InterNAP pays each of these backbones for full transit TCP/IP connectivity.
The P-NAP sends customer data out on the best Internet backbone immediately rather than at a randomly chosen public NAP or private peering point like other Internet access providers. InterNAP routes, or transfers, data to and from businesses that are connected to one or more of their P-NAPs, in a manner that minimizes the use of congested public exchanges and private peering points. This optimal routing of data traffic over the multiplicity of networks that comprise the Internet enables higher transmission speeds, lower instances of data packet loss and greater quality of service.
NETWORK ARCHITECTURE
The co-location architecture is based on Cisco and Compaq. The key characteristics of the co-location architecture are scalability, high availability, manageability and security. In the design of our solution, we have focused on more than just our ability to increase device performance and link bandwidth. The infrastructure is designed so that the N-Tier architecture is ran with security in the form of firewalls.
Within the architecture the Microsoft Cluster Service is utilized. This provides high user availability by allowing a server in a cluster to take over and run a service or application that was running on another server that has failed, a process referred to as fail over. A cluster is defined as two independent computer systems known as nodes all attached to a common external storage. The nodes work together as a single system to ensure that mission-critical services and resources remain available to clients. Cluster service minimizes downtime and support costs by using more than one server to provide services to clients. In the event that one server fails, another server in the cluster provides the services of the server that failed. This method makes it easier to manage the devices and applications on each server without having to stop the application.
These services or applications are provided by means of "virtual servers". A virtual server appears as a single system to users. The cluster can provide any number of virtual servers, limited only by the capacity of the servers in the cluster and the available storage to provide the required performance. Administrators control the cluster servers as a single unit, and can administer the cluster remotely. In this way the application is always on and upgrades and maintenance do not require down time. SINGLE BANK
Referring to FIG. 27, the system (Universal Trading Platform (UTP)) is designed to enable a bank 2702 to deliver a complete online foreign exchange (FX) solution through its web site to all internal divisions 2704, 2708 and external clients 2710. The UTP acts as a central FX marketplace for the bank's internal divisions 2704, 2708 as well as external clients
2710. All approved users 2702-2710 access the platform through defined user-interfaces according to the type of client and level of sophistication. The UTP is designed to fully automate as much of the trading as possible. This is achieved by providing clients 2710 with pre-defined spreads that can be traded on up to a size set by the bank 2702. The bank 2702 has complete control over the platform at all times, and if necessary can disable the automated dealing capability in difficult market conditions. Through the UTP, the bank's traders (or sales desk) can handle all incoming quote requests from end-users and manage all position (market) risk being transacted across the platform. The UTP acts as the bank's complete Order Book. Orders placed into the Order Book by clients 2710 can be executed manually by the traders or executed on a fully automated basis. All clients' trading activity is subjected to instant pre-trade credit checks 2712 by the UTP. Trades cannot be executed or orders submitted without available credit lines. The UTP contains full messaging capability between all users 2702-2710. The UTP has complete risk management tools for all users to manage open positions and P & L in real time. The UTPis designed with "open" architecture at the back end, to support easier integration with existing front and back office
2714 systems. The UTP can act as the "pricing engine" for the bank 2702 to deliver pricing to any external application (i.e., consortium platform).
UTP MODULES The Universal Tradmg Platform (UTP) is universal in terms of both its potential geographic reach as well as its suitability to work across all financial products. It is through this platform that delivers a wide range of foreign exchange FX products in the form of separate but integrated modules. Referring to FIG. 28, dealing systems 2806 is provided. There are two main methods for dealing through the UTP 2802 ,2084: the more conventional Point-to-Point Dealing or the Virtual Market. It is believed that the FX market will move towards their Virtual Market model, where the Best Bid and Best Offer are visible in an online marketplace accessible to all users. The Point-to-Point systems offer the standard price request functionality for one way (at best) and two way pricing, linking end-users directly to the source of liquidity. The relaying of prices to clients can be fully automated based on spreads defined by the liquidity provider. The system can be utilized by a consortium, as a multi-bank platform; end-users can have the ability to ask several banks for a price at the same time. Both systems take advantage of the efficiencies that the Internet has provided, while providing banks a scalable and high traffic e-commerce mechanism with which to grow their FX business.
An Order Book 2808 is provides a complete order management system. This module gives institutions the ability to centralize the monitoring and execution of all orders from branches and clients. The user interface enables clients to submit single or multiple orders directly into the system visible to traders and/or sales personnel in a clearly defined window showing all orders relative to the current market price. When submitting orders, clients are also able to define the time horizon, stating how long the order is valid. As part of the order book functionality clients are given full access to edit, cancel and monitor their orders.
A Market Monitor 2810 is provided so that users of the system can have an overview of the entire market, showing updated real-time prices in selected currency pairs offered by the institution. The market monitor can show indicative or firm spot prices based on spreads controlled by the institution offering the liquidity. Through the market monitor users are able to execute speed transactions with two clicks for trades up to a size determined by the institution. For larger trades the user can ask for a quote request through the same interface. The market monitor would offer real time pricing for FX Spot, Forwards and Options. Prices in other financial products can also be displayed in the market monitor. A Margin Manager 2812 provides a fully functional online margin system that enables an institution to manage an unlimited number of margin accounts in real time. The system generates a tailored trading limit for clients based on several risk parameters, and prechecks the available limit prior to a trade being executed. No order or trade will go through unless the client has sufficient collateral. At the same time the system provides valuable information to the client about their account status and trading limits for all currencies and maturities. At all times the institution retains the ability to suspend client activity or even liquidate positions.
A Messaging Facility 2814 allows all users of the UTP to send and receive messages directly with other users or to broadcast messages to an entire group. For example a client may want to send a message directly to a sales person, trader or their back office contact. Alternatively the institution may want to broadcast a message to all clients simultaneously.
A Client & Market Risk Manager 2816 module gives the institution the ability to set the client trading profiles and trading limits across currencies based on Volatility Risk,
Interest Rate Risk, Country Risk and Client Risk. It is through this module based on these risk factors that all real-time pretrade and margin credit checks are carried out. The Risk Manager module also gives complete access to client activity reports and account status as well as the ability to activate or suspend client accounts. A Portfolio Management module 2818 provides complete portfolio management in real time. The user interface displays the net currency exposure in each currency pair as well as the exposure by individual currency. Real time P & L is also monitored for each currency pair in both the base currency and contra-currency.
A System Database 2820 tracks several variables and keeps them updated continuously. Both the client and the bank have access to a complete history of the following statistics: (1) Transaction Data: Trades, Orders, P & L's, and Positions; (2) Market Data:
Daily highs, lows and closes, Volume, Range, Volatility, Risk Reversals, Swaps, and
Interest Rates; (3) Client Data: Personal Data, and Account Data. A Forwards module 2822 allows the client to execute both Outright Forwards and Swaps. The client can view the forward points out to 2 years for both Swaps and Outright deals in each currency pair. The client can also select "broken dates" which will be calculated automatically from the forward curve. The system allows mismatch Swaps with different amounts on each leg. Trading in the forward module can be fully automated based on constantly updated pricing from the liquidity provider(s).
A back office module 2826 allows the institution to manage all aspects of the processing required to execute FX trades. These services include closing processing; roll over processing, confirmations and account adjustments. The module also has system controls to allow management of client related issues and market related issues. Lastly, the module will perform the end of the day audits that are necessary. Order checks, trade checks and account balance checks can all be done automatically. Through this module confirmations can be sent out automatically via e-mail or fax.
User Interfaces 2828, which are described below.
MULTI BANK
The Universal Trading Platform (UTP) multi-bank system provides banks with the ability to interact directly with each other improving liquidity and speed of execution in any financial market. The UTP acts as a central marketplace for all the consortium members to trade, make markets and leave orders for automatic execution. All member banks access the platform through market maker interface, supplying and utilizing liquidity. The platform reduces market fragmentation and pulls all the liquidity onto one platform from all consortium members. The technology allows the members to become more efficient and reduce transaction costs, thereby avoiding the prospect of becoming peripheral players. All banks/members will trade with automated pre-trading limit screening. All members will be able to stabilize and expand their positions as key players in the market. Banks can allow direct access to active sophisticated clients with automated pre-trading limit screening, enabling them to become market makers. The Multi-Bank platform can be provided in 3 ways: (1) a single pole network; (2) a multiple pole network; and (3) a center pole network.
USER INTERFACES
The UTP has three main user interfaces: (1) a dealing room version; (2) a client version; and (3) a back office version. The dealing room version is the trader's interface with the system and offers full price quoting capability to incoming price requests from clients/branches whose identity is visible to the trader. All trades executed across the platform immediately update the trader's position and P&L, or alternatively this information can be captured directly in the institution' s existing front office system. The UTP also shows the trader all orders placed by clients branches in a virtual market that is fully interactive and automates the execution and confirmation of orders.
The client version enables an institution's customers a wide range of functionality, including speed auto-deal, price request, order management, monitoring of Profit & Loss and open positions in real time as well as send and receive messages. The UTP offers a number of different client interfaces according to the level of sophistication and needs of the client (i.e., retail, corporate and institutional). Being web based, the design and layout of these interfaces is easily customized by the bank to create a specific "look and feel" to reinforce the integrity of their brand.
The back office version performs much of the market and client risk management functions, including pre-trade margin/credit checks. The back office version can monitor both margin based clients and traditional credit line clients and enables you to "profile" each client as to the currencies they are permitted to trade and the spreads they will receive. Through this interface the bank has complete control of each client account and can suspend trading or close out positions. The back office version provides an institution with complete administrative functionality and control over the system. NETWORK DESIGN
The scalability for the system (UTP) required the architecture of the system to be split into two parts: front-end (client-accessible) systems and back-end systems where long-term persistent data are stored or where business-processing systems are located. Load-balancing systems are then used to distribute the work across systems at each tier. This architecture scales the number of unique users, by cloning or replicating front-end systems coupled with a stateless load-balancing system to spread the load across the available clones known as a Web cluster. Partitioning the online content across multiple back-end systems allows it to scale as well. A stateful or content-sensitive load-balancing system then routes requests to the correct back-end systems. Specific servers are dedicated to task-specific services, including integration with legacy or offline systems. Cloning and partitioning, along with functionally specialized services, enable the system to offer a solution that has an exceptional degree of scalability by allowing each service to grow independently.
Front-end systems of the UTP are made highly available as well as scalable through using multiple, cloned servers, all offering a single address to their clients. Load balancing is used to distribute load across the clones, to ensure continuous availability to large numbers of simultaneous users. Building failure detection into the load-balancing system increases service availability. A clone that is no longer offering a service can be automatically removed from the load-balance set while the remaining clones continue to offer the service. Back-end systems are more challenging to make highly available, primarily due to the data or state they maintain. For the UTP they are made highly available by using fail-over clustering for each partition. Fail-over clustering assumes that an application can resume on another computer that has been given access to the failed system' s disk subsystem. This secondary node must have access to the same data storage, which should also be replicated, as the failed node.
For the UTP, security means managing risks by providing adequate protections for the confidentiality, privacy, integrity and availability of our application to our clients. Wherever the application is located, multiple security domains are required, where systems with different security needs are placed and each domain is protected by a network filter or firewall. The three principal domains, each separated by a firewall, are: the public network; a DMZ (derived from the military term "demilitarized zone"), where front ends and content servers are placed; and a secure network, where content is created or staged and secure data is managed and stored. Management and Operations broadly refers to the infrastructure, tools, and staff of administrators and technicians needed to maintain the health of a business application such as the UTP. Many such applications are located in what is often called a hosted environment. That is, the systems are co-located with an Application Service Provider (ASP) where rich Internet connectivity is available. Such an ASP alternative is offered for the Universal Trading Platform. Consequently, the management and monitoring of the systems are done remotely.

Claims

We claim:
1. A system for bringing separate pools of liquidity together to a create a market over a communications network, the system comprising: a first processing module that receives a plurality of orders from users and compiles an overview of all of the plurality of orders ; a second processing module that determines a best bid and a best offer from the plurality of orders; a third processing module that matches an order to one of the plurality of orders; and a fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order.
2. The system of claim 1 further comprising a fifth module for matching a limit buy order related to a stop sell order, and a limit sell order related to stop buy order, if the limit buy order is related to a current market and a stop sell order is related to the current market, then execute a trade between the limit buy order and the stop sell order, if the limit sell order is related to a current market and a stop buy order is related to the current market, then execute a trade between the limit sell order and the stop but order.
3. The system of claim 1 wherein the one of the plurality of orders is the best bid and the best offer.
4. A system for bringing separate pools of liquidity together to a create a market over a communications network, the system comprising: a first processing module that receives a plurality of best bids and best offers from users and compiles an overview of all the plurality of best bids and best offers; a second processing module that determines a best bid and a best offer from the plurality of best bids and best offers; a third processing module that matches an order to one of the plurality of best bids and best offers; and a fourth processing module that determines whether the order satisfies one or more risk parameters before executing the order.
5. A method for processing an order having a trader identification, an order quantity, and an order type, the method comprising: receiving the order over a communications network; store the order in a database having a plurality of previously stored orders, the previously stored orders being grouped into order types and the order being stored with an appropriate group; determine whether the order is within each of the one or more predefined parameters, the one or more predefined parameters being specific to the trader identification; if the order is not within each of the one or more parameters, cancel the order and delete the order from the database; if the order is within each of the one or more predefined parameters, determine whether the order matches one of the preentered orders; and if the order matches one of the preentered orders, store in the database an indicator indicating an association between the order and the one of the predetermined orders; and send an order fill message over the communications network.
6. The method of claim 5 further comprising calculating a trade fee associated with the order based upon a trader classification and a number of trades executed.
7. The method of clam 5 wherein the one or more predefined parameters are account and risk values.
8. The method of claim 5 wherein the order is a limit buy order, a stop buy order, a limit sell, a stop sell, an at market buy order, an at market sell order, a limit buy order, or a limit sell order.
9. The method of claim 5 wherein the previously stored orders are grouped by limit sell and stop buy orders having identical values, and/or grouped by buy limit and sell stop having identical values.
10. The method of claim 9 wherein the determining whether the order matches one of the previously stored orders comprises: detenriine a limit buy order related to a current market; and determine a stop sell order related to the current market.
11. The method of claim 9 wherein the determining whether the order matches one of the previously stored orders comprises: detemiine a limit sell order related to a current market; and determine a stop buy order related to the current market.
12. A method for processing an order having an order type, the method comprising: receiving the order over a communications network; store the order in a database having a plurality of previously stored orders, the previously stored orders being grouped into order types and the order being stored with an appropriate group; determine whether the order matches one of the preentered orders; and send an order fill message over the communications network.
13. The method of claim 12 wherein the order is a limit buy order, a stop buy order, a limit sell, a stop sell, an at market buy order, an at market sell order, a limit buy order, or a limit sell order.
14. The method of claim 12 wherein the previously stored orders are grouped by limit sell and stop buy orders having identical values, and/or grouped by buy limit and sell stop having identical values.
15. The method of claim 12 wherein the determine whether the order matches one of the previously stored orders comprises: determine a limit buy order related to a current market; and determine a stop sell order related to the current market.
16. The method of claim 12 wherein the determining whether the order matches one of the previously stored orders comprises: determine a limit sell order related to a current market; and determine a stop buy order related to the current market.
17. The method of claim 15 wherein the order fill message indicates a partial order fill.
18. The method of claim 16 wherein the order fill message indicates a partial order fill.
PCT/US2001/046794 2000-11-08 2001-11-08 System and method for a universal trading platform WO2002052369A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002246590A AU2002246590A1 (en) 2000-11-08 2001-11-08 System and method for a universal trading platform

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US24696500P 2000-11-08 2000-11-08
US24668500P 2000-11-08 2000-11-08
US60/246,685 2000-11-08
US60/246,965 2000-11-08

Publications (2)

Publication Number Publication Date
WO2002052369A2 true WO2002052369A2 (en) 2002-07-04
WO2002052369A3 WO2002052369A3 (en) 2004-01-08

Family

ID=26938146

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/046794 WO2002052369A2 (en) 2000-11-08 2001-11-08 System and method for a universal trading platform

Country Status (2)

Country Link
AU (1) AU2002246590A1 (en)
WO (1) WO2002052369A2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702563B2 (en) * 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
US7865421B2 (en) 2004-08-13 2011-01-04 Ebs Group Limited Automated trading system
US7882011B2 (en) 2000-10-31 2011-02-01 Integral Development Corp. Systems and methods of conducting financial transactions
US8862507B2 (en) 1999-06-14 2014-10-14 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US10387952B1 (en) 1999-11-01 2019-08-20 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US20210383474A1 (en) * 2019-03-07 2021-12-09 Fujitsu Limited Computer-readable recording medium storing trading program, trading method and trading device
US11526940B2 (en) 2000-10-31 2022-12-13 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903201A (en) * 1983-11-03 1990-02-20 World Energy Exchange Corporation Automated futures trading exchange
WO2001007986A2 (en) * 1999-07-23 2001-02-01 Borkowski Joseph K System and method for managing swap orders
US6343278B1 (en) * 1998-09-04 2002-01-29 Ebs Dealing Resources, Inc. Combined order limit for a group of related transactions in an automated dealing system
US20020032632A1 (en) * 1999-12-07 2002-03-14 Pierre Sernet Online commodities trading system with anonymous counter bid/offer function

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903201A (en) * 1983-11-03 1990-02-20 World Energy Exchange Corporation Automated futures trading exchange
US6343278B1 (en) * 1998-09-04 2002-01-29 Ebs Dealing Resources, Inc. Combined order limit for a group of related transactions in an automated dealing system
WO2001007986A2 (en) * 1999-07-23 2001-02-01 Borkowski Joseph K System and method for managing swap orders
US20020032632A1 (en) * 1999-12-07 2002-03-14 Pierre Sernet Online commodities trading system with anonymous counter bid/offer function

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417622B2 (en) 1999-06-14 2013-04-09 Integral Development Corporation Systems and methods of conducting financial transactions
US8862507B2 (en) 1999-06-14 2014-10-14 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US11568486B2 (en) 1999-06-14 2023-01-31 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US11568483B2 (en) 1999-06-14 2023-01-31 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US10387952B1 (en) 1999-11-01 2019-08-20 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US7882011B2 (en) 2000-10-31 2011-02-01 Integral Development Corp. Systems and methods of conducting financial transactions
US11526940B2 (en) 2000-10-31 2022-12-13 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US7702563B2 (en) * 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
US7865421B2 (en) 2004-08-13 2011-01-04 Ebs Group Limited Automated trading system
US20210383474A1 (en) * 2019-03-07 2021-12-09 Fujitsu Limited Computer-readable recording medium storing trading program, trading method and trading device
US11748809B2 (en) * 2019-03-07 2023-09-05 Fujitsu Limited Computer-readable recording medium storing trading program, trading method and trading device

Also Published As

Publication number Publication date
AU2002246590A1 (en) 2002-07-08
WO2002052369A3 (en) 2004-01-08

Similar Documents

Publication Publication Date Title
US8959031B2 (en) Trade execution methods and systems
US8615462B2 (en) Global electronic trading system
CA2370789C (en) A securities trading system for consolidation of trading on multiple ecns and electronic exchanges
US7035819B1 (en) Method and system for facilitating automated interaction of marketable retail orders and professional trading interest at passively determined prices
US7970689B2 (en) Single-period auctions network decentralized trading system and method
US7693775B2 (en) Automated system for routing orders for financial instruments based upon undisclosed liquidity
US20050283422A1 (en) Centralized electronic currency trading exchange
US20020107770A1 (en) System for allocating funds in a plurality of stock portfolios
AU2002227321A1 (en) Global electronic trading system
US20050131802A1 (en) Method and system for network-decentralized trading with optimal proximity measures
US20040181474A1 (en) Real time trading
WO2002052369A2 (en) System and method for a universal trading platform

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP