©OS Financial Trading System 1999-2019
Anatomy of a Case
File
Important: The FTS Markets lets you specify virtually any trading environment you want. If it doesn’t contact us at ftsweb@gmail.com and we will attempt to meet your demands. The best way of learning how a case is specified is to take a look at the case spreadsheet file and then refer to this section for the finer points.
Tip: If you are creating a trading case you are advised to run the central market and two traders on your PC – this lets you test your set up of a case without going to a trading laboratory. It is also a useful way of testing a case (even if pre-set) before running it in class. This lets you see how it works from both the moderator and the student’s perspective.
There are three type of case descriptions FTS (Regular trading cases), RT (Real Time), EXPT (Experimental economic studies). To select a particular type enter either FTS, RT or EXPT into cell B13 of the case spreadsheet. If this is blank then the default is the regular FTS type of case.
In this write-up we initially focus on FTS (the regular Financial Trading System Cases). Both real time and experimental economic studies can be accommodated using the FTS type of case. However, the addition of RT and EXPT conditions permit additional flexibility for specialized applications. For example, EXPT provides tremendous flexibility for the specification of dividend payoffs to be specified at an individual trader level if required. That is, specific conditions that have been used in various experimental economic studies are all covered in the new version of the FTS markets. Furthermore, with the EXPT condition one case is specified in a workbook as opposed to a worksheet. This is because it is designed for specific types of research applications of the FTS system.
Regular FTS Case
Specification
A FTS trading case is completely specified in a spreadsheet. This means that you have virtual total control over what you want to do in your trading session. The standard FTS case format permits a wide range of security types to be traded including Bonds, Stocks, Exchange Traded Indexes, Forwards/Futures, Options (European/American), Caps, Floors, Currencies, Money Markets (Eurodeposit markets), and Swaps.
Below we will work through the anatomy of a trading case by using the base case RE1 which illustrates private information and uncertainty. We will expand upon the base case to illustrate finer points as they arise.
The first section is the green section:
Section A: General Environment
Number
of Securities |
6 |
Maximum
Number of Trials |
8 |
Number
of Periods per Trial |
3 |
Period
Length (seconds) |
300/300/1 |
Maximum
Number of Traders |
60 |
Number
of Trader Types |
9 |
Market
Depth |
20 |
Depth
Displayed |
10 |
Borrowing |
Yes |
Last
Row with Exogenous Prices |
|
Number
of Information Types |
9 |
Last
Row with Information |
44 |
Case
type (RT or FTS or Expt) |
FTS |
RT
last trade |
|
RT
last time |
|
nCurrency |
|
Recalculate |
No |
Binary
Lottery |
0 |
Ptrader |
|
This controls the specification of general environment variables. A trading environment has n security markets, in the above example this is 2 and is defined on a trial/period basis. That is, each trial traders start with a fresh position (new opening balance of cash and opening balance in each security market). The only variable that carries across trials is the trading bonus earned by a trader in previous trials. This balance is cumulated for performance measurement purposes. Apart from that a trial is completely self contained, starting from a new position and independent realizations of any random variables.
A trial is designed to transform some period of calendar time into FTS time. In the above case a trial covers three years and there are three trading periods in each trial. That is, Number of periods = 3. Each trading period lasts for 300 seconds (Period Length). This can be specified as 300 but in the above example it is specified such that only the first two years are traded. In periods 1 and 2 (years 1 and 2) the market lasts for 300 seconds, and in period 3 (year 3) the market is open for 1 seconds. That is, the example specifies 300/300/1 and the last 1 implies that the market opens for period 3 and immediately closes. All positions are marked to market in period 3 but the market is not open for trading in this period. Alternatively 300 by itself would specify that the market is open for 300 seconds every period.
Period Length (Seconds):
Beside this label the time for a period in seconds is specified. If it is a single number then this applies to each period in the trial. However, sometimes you want to mark a position to market in a period but not trade the period. In this case you need to specify time by period. You can do this using the slash notation:
300/300/1
In this case there are three periods and the first period lasts for 300 seconds, the second trading eriod lasts for 300 seconds but the third trading period lasts for 1 seconds. Market opens, closes and positions are marked but no trading is permitted.
A variation for time: 0 seconds is also supported for a sub period. In this case if all dividends and interest rate are set to zero then time = 0 means the market zips through the period without any consequences. This is useful for some trading case environments.
The maximum number of traders can be large (well above a large class size). The default above is 60 but this can be changed to an upper limit that is specified in the FTS license contract. The system is very fast and does not slow down with a large number of traders. In fact in the recent Global Trading Competition the system accommodated over 125,000 transactions over a two hour trading period without any slowdown.
Number of Trader Types =9: This lets you specify positions and dealing rights at an individual trader “type” level. In the default case (without logins and passwords) trader types are allocated on a first to connect basis. That is, the first to connect to the market is trader type 1, 2nd is trader type 2, and so on until the 9th to connect is trader type 9. The 10th to connect is trader type 1, 11th is trader type 2 and so on. If the number of traders in the market is not divisible by the number of types (in this example 9) then trader types are rotated over trials. If there are the same number of trader types as traders then trader type does not change over trials.
Note: If you want to ensure that a trader remains the same type over trials you must use a pre-assigned login (and optionally password). For example, if you assign login ID’s to equal dealer1, dealer2, etc., (or any name) then this lets you pre-assigns the type.
For each trader type you can define per security the initial endowments, trading rights (dealer, price taker etc.,) as well as initial cash and even how their performance is assessed (i.e., how they earn their trading bonus). In the above case there are two trader types.
Market Depth the default is 10 per security. This has been changed in the above example to equal 20. That is, a deeper market book is permitted. This means that per security yhe 20 best bids and the 20 best asks are stored in the central limit order book at any time. Depth displayed can also be changed. This is the depth a trader actually sees when they double click on a security name to display the central limit order book for a particular security. The book is visible and color coded in a similar way to Level II quotes on the NASDAQ. That is, the best bids and best asks are color coded yellow, followed by the second best color coded as green and so on. The block of yellows gives you an idea of the current depth for buying/selling in a particular security.
Borrowing Allowed: This can be Yes or No or some number. If you put in a number (e.g., 100000) then you are permitting borrowing to be allowed up to 100,000 units of the currency.
Last row with exogenous prices = blank. This field is used only if you are giving prices at different points in time. This is controlled by another part of the spreadsheet. As an example of this the interested reader may want to refer to the spreadsheet associated with XR1. This feature lets you replay a slice of historic prices if desired.
Number of information types = 9. This can be any number --- it doesn’t have to be equal to the number of trader types. The number of information types determines how fine you want to provide information to each trader. For example, if it was public headline information then you only need one information type. If it is private information then you need the number of information types to match the degree of finess for disclosed private information.
Last row with information = 44 This is referring to the last row of the information section of the trading case spreadsheet. It must match the last row number of where you specify information in the case spreadsheet (see the information section of this write-up).
Case Type (RT, FTS or EXPT) The default is FTS (a regular trading case). RT provides additional flexibility if working with real time market prices in a regular trading exercise. EXPT is applicable if you are using the Financial Trading System for experimental market research.
RT last trade
RT last time These are both relevant to an RT case specification and will be described in that section.
Recalculate No. This refers to whether you want to compute the liquidating value for end of trial marking to market purposes. Usually this is no, but if you want to tie the terminal payoff to prices discovered in the market you can with this feature.
Tip: Recalculate Yes needs to be used very carefully. For example, if you are using private information in relation to the terminal value you need to be extremely careful how your dividend payments are defined and how you set them up in the spreadsheet. This is because any equation that is derived using a random number will change at the end of the case. It is possible to mix and match but much care needs to be taken, so usually Recalculate is set to No!
Binary Lottery This is useful for Experimental market research. For example, it can be used to limit the experimenter’s liability when paying subjects. It can also be used to control for risk preferences. In the above example this is not used.
Section B: Markets Section
Name |
CpBond |
Deposit1Yr |
Deposit18M |
SwpBk1 |
SwpBk2 |
SwpBk3 |
|
Security
Type |
Bond |
Deposit/1000000/1.008333/.502778 |
Deposit/1000000/1.513889/1.008333/.502778 |
Swap/1000000/.5/.5/.5 |
Swap/1000000/.5/.5/.5 |
Swap/1000000/.5/.5/.5 |
|
Price
Quotes |
Endogenous |
Endogenous |
Endogenous |
Endogenous |
Endogenous |
Endogenous |
|
Start
Life |
1 |
1 |
1 |
1 |
1 |
1 |
|
End
Life |
2 |
2 |
3 |
3 |
3 |
3 |
|
Short
selling |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Quote
to Price Formula |
Quote |
Quote |
Quote |
Quote |
Quote |
Quote |
|
Information |
Yes |
No |
No |
No |
No |
No |
|
Cashout |
|
|
|
|
|
|
|
Magintrade |
|
|
|
|
|
|
|
uCash |
|
|
|
|
|
|
|
LumpSum |
|
|
|
|
|
|
|
Private
Trade |
|
|
|
|
|
|
|
Max
Qty (type specific) |
|
|
|
|
|
||
Transfer
|
|
|
|
|
|
|
|
Price
Bounds |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mkt
sends info |
|
|
|
|
|
|
The markets specification is illustrated above. There are six securities (1 coupon bond, two eurodollar deposits, and three swap contracts), and prices are discovered from the market making activities of the trading crowd (i.e., Endogenous). Each security has a different life. For example, the Coupon Bond and Swaps have a life equal to three periods. One Eurodollar deposit has a life equal to 2-periods and the other equals 3-periods. The start life is period 1 and end life are specified separately. If there were n periods per trial then start life is 1 and end life is n. Short selling can be turned on or off at the individual security level (in the above it is permitted). Quotations are in natural decimal quotations (Quote to Price Formula is Quote (i.e., actual quote is used). In an example below you will see how real world quotations can also be specified. The first security has private information associated with it so Information = Yes. This means that traders to see their private information (or public news headlines) click on the first security’s name once to see their information.
Name: This is the label that appears on each trader's trading screen for each security. In the above the name CpBond appears for security 1, Deposit1Yr for security 2 etc.,
Security Type and Price Quotes: see below in the extensions section for details on this.
Start Life: The period that trading is first permitted in each trial.
Variation to Start Life: If a comma is included then you can specify a set of sub-periods for trading. For example, suppose you have a security with three periods but you only want to permit trading in periods 1 and 3. That is, no trading is allowed in period 2. You would specify the Start Life field as follows: 1,3 Similarly, if you only permit trading in period 1 then specify as: 1, (i.e., include the comma), whereas if you allow trading in every period then just specify 1
End Life: The last period that trading is permitted in per trial.
Cashout: Suppose
it is specified in the cell beside Cash out as:
Yes/1.1/10/10/10
This means you can liquidate security 1 at a buying price of
$10*1.1 = $11 and sell security at a selling price = $10 at any time to meet
margin calls. Usually the exogenous
liquidating buying selling price is set at a penalty below what the market is
expected to trade at. In practice these prices should be
unfavorable relative to the market so the multiplier may be multiples of 1
e.g., 2.5 time etc.,
Margin Trade: Specified as follows: Yes/0.5/0.4
Yes= Margin borrowing restrictions are in place, 0.5 = initial margin and 0.4 is the maintenance margin.
uCash – this is used if the multiple currencies are in the trading case. It lets you specify what currency each security is traded in.
LumpSum can be used in a trading case with margins and other trading restrictions.
Private Trade can be used if the trading case permits trading with specific individual traders directly. That is, an override of the rules of the double auction market.
Max Qty --- this lets you specify by trader type maximum quantity trading limits. That is, some trader types may be permitted to engage in block trades whereas other retail traders may be restricted to smaller limits. You can control this by trader type e.g., if there are three types you can enter: 1000/100/100 this implies that trader type I can trade up to 1000 at a time and trader types 2 and 3 are restricted to up to 100 at a time.
Transfer --- this lets you transfer quantity directly at some exogenous price. Useful for cases involving geographic transfers or even working with other “desks” within a common institution.
Price Bonds --- A useful constraint for imposing upper and lower bounds on trading prices. Minimum bid and maximum ask are implemented as follows:
Suppose a security lives for 2-periods then if you enter:
12,13/14,15
This specifies that the minimum bid in period 1 is 12, maximum ask in period 1 is 13; minimum bid in period 2 is 14, maximum ask in period 1 is 15
Mkt send info: you can send public messages to all the traders in the market by first typing your message for security 1 in the cell beside this label, then security 2 in the next cell and so on. You then control when to send the message from the menu in the central market.
Steps for sending
public messages to the traders in the market:
Step 1: Type the message you want to send to the market directly into the Excel cell immediately beside Mkt send info. The first cell sends the message to Security 1, second to security 2 etc., BE SURE TO PRESS ENTER AFTER TYPING THE MESSAGE INTO THE EXCEL CELL. This is because otherwise the Excel link will not be live and you will receive an error message asking you to retry linking to Excel. This can affect the operations of the market.
Step 2: When you have typed in your set of public messages to be sent to traders in the market then give focus to the Market and select Options, Send Public Information.
Step 3: Step 2 send the information to the market. It appears on each trader screen by the security name changing to Light Blue. A single click on the security name that is highlighted lets each trader read the message.
Tip: Most of the above features will not be used in the majority of cases.
Extensions:
In the above the Price Quote can be Exogenous. This is the case if prices are given to the market and so only price taking is permited (e.g., see Trading case XR1).
Security Types:
Cells D2, E2 etc.,
Stock = Stock
Bond = Bond (Not really different to putting in stock because the difference is how you define the payoffs).
Name |
Cp
Bnd |
Zero
1 |
Zero
2 |
Zero
3 |
FwdZero2 |
FwdZero3 |
Security
Type |
Bond |
Bond |
Bond |
Bond |
Forward/Script=3 |
Forward/Script=4 |
Forward/Script=3 This is defining a forward contract that is script settled defined on the Security 3. Observe that the third security is Zero 2.
Name |
Stock |
Bond |
Put/25 |
Call/25 |
Security
Type |
Stock |
Bond |
Option/European/Put/Strike=25/Script=1 |
Option/European/Call/Strike=25/Script=1 |
Price
Quotes |
Exogenous |
Endogenous |
Endogenous |
Endogenous |
Start
Life |
1 |
1 |
1 |
1 |
End
Life |
1 |
1 |
1 |
1 |
Put/25 = Option/European/Put/Strike=25/Script=1 This is a European put option defined on security 1 (Stock) with a strike equal to 25. It is automatically exercised if it is “in-the-money” at the end of it’s life (maturity equals End life = 1 in above example).
Name |
Stock |
Bond |
Put/85 |
Call/85 |
Security
Type |
Stock |
Bond |
Option/American/Put/Strike=85/Script=1 |
Option/American/Call/Strike=85/Script=1 |
Price
Quotes |
Exogenous |
Endogenous |
Endogenous |
Endogenous |
Start
Life |
1 |
1 |
1 |
1 |
End
Life |
2 |
2 |
2 |
2 |
The above defines an American option with a 2-period life.
Name |
Index
A |
Index
B |
IndBFut |
|
Security
Type |
Stock |
Stock |
Forward/Cash=2 |
|
Price
Quotes |
Endogenous |
Endogenous |
Endogenous |
|
Start
Life |
1 |
1 |
1 |
|
End
Life |
1 |
1 |
1 |
|
Derivatives can be script or cash settled. The above defines a cash settled forward contract on security B. The term Forward or Futures can be used interchangeably. At the time of the transaction no cash is exchanged with the forward or futures markets.
Example: Using
Real World Quotes in the FTS Markets
Suppose you want to trade treasury Bills and Notes using the real world quotation system. For example, B02A can be converted to real world quotes as follows (case B02R):
See Appendix 1 for the relevant Case data description (three periods trading day 1 of each two month period).
Name |
T-Bill(2M) |
T-Bill(4M) |
Security
Type |
Bond |
Bond |
Price
Quotes |
Endogenous |
Endogenous |
Start
Life |
1 |
1 |
End
Life |
1 |
2 |
Short
Selling |
Yes |
Yes |
Quote
to Price Formula |
10000-Quote*16.16667 |
10000-Quote*33.33333/10000-Quote*16.66667 |
Information |
Yes |
No |
|
|
|
Now the Quote to Price Formula is used and must respect certain rules. First you can only multiply in the formula (so division must be set up as a reciprocal and multiplied). Second you can use the slash notation (e.g., T-bill (4M) to control how the quotation is converted each period. This lets you preserve daycount conventions and is illustrated by the T-Bill(4M) (i.e., four month T-bill).
Exert From Case:
T-bills:
Each T-bill is quoted in the following way. Bids are in DR% where DR% is the discount
rate percentage relative to a $10,000 face value. In the above table you can assume that the
actual days in every two month period is 60 days.
Example: Suppose the bid/ask spread is 3.14 and 3.12
respectively for the 4-month T-bill at the beginning of period 2. This implies that the cash price being bid is
computed as follows where the remaining days to maturity equal 60:
Cash
Discount if selling to bid = DR%*Face*Days to Maturity/(360*100)
= $52.3333
Cash
Spot Price if selling to bid = $9,947.667
Cash
Discount if buying from the ask = DR%*Face*Days to Maturity/(360*100)
= $52
Cash
Spot Price if buying from the ask = $9,948
You
can see that the cash discount being bid is higher than the cash discount being
asked which implies that the spot price in cash being bid is lower than the
spot price in cash being asked. This is
consistent with a positive bid/ask spread.
In the above example the T-bill quote is in terms of Discount Rates (DR%). Suppose the bid in the FTS Market is 3.14 in period 2. The quote formula in the cell is the second part (i.e., after the slash): 10000-Quote*16.666667
A different transformation from quotation to cash exchanged must apply to period 1 and period 2 for the two period security because the actual days move down from 120 to 60 between trading days 1 and 2. First 16.666667 = 10000*60/(360*100). This respects the daycount convention (actual/360). Actual days in the four month period when viewed from day 1 equals 120 and the year convention in a T-bill quote is 360 days but when viewed from period 2 is only 60 days which is in the example above. The bid is given as a percentage so the 100 is used to scale the percentage to a decimal. As a result, the correct conversion is achieved:
10,000 – 3.14*16.666667 = 9947.667
This implies if the bid of 3.14 is hit for 1 unit then the trade is executed at 10000 – 3.14*16.666667 = $9947.667.
Cp
Bnd |
Bond |
Endogenous |
1 |
3 |
Yes |
100*Int(Quote)+(Quote-Int(Quote))*312.5 |
Yes |
Coupon Bond:
The coupon bond is quoted in 32nds relative to a face vale of $100. That is, a bid price of 99.30 implies that
the spot cash price being bid is $99 + 30/32 = $99.9375 relative to $100
face. There is no accrued interest
because in this case the bond pays a coupon every 2-months (as a simplifying
assumption).
One
coupon bond is actually settled with a face value equal to $10,000, so the
total dollars subtracted from your money market is $9993.75 when the quote is
$99.30.
The coupon bond is quoted in 32nds relative to a face value of $100. One unit of the actual contract equals $10,000. If the bid price is 99.30 the cash conversion is as in the above quote to price formula.
100*Int(99.30) + (99.30 – Int(99.30))*312.5 = 9900 + 0.3*312.5 = $9993.75.
Example: Money
Markets and Swaps
Name |
CpBond |
Deposit1Yr |
Deposit18M |
SwpBk1 |
SwpBk2 |
SwpBk3 |
|
Security
Type |
Bond |
Deposit/1000000/1.008333/.502778 |
Deposit/1000000/1.513889/1.008333/.502778 |
Swap/1000000/.5/.5/.5 |
Swap/1000000/.5/.5/.5 |
Swap/1000000/.5/.5/.5 |
|
Price
Quotes |
Endogenous |
Endogenous |
Endogenous |
Endogenous |
Endogenous |
Endogenous |
|
Start
Life |
1 |
1 |
1 |
1 |
1 |
1 |
|
End
Life |
2 |
2 |
3 |
3 |
3 |
3 |
|
The deposit is specified as follows. Consider the 1-year Deposit (which lives for two 6-month periods).
Deposit/1000000/1.008333/0.502778
What does the above mean?
Deposit specifies that the security type is an offshore deposit (e.g., eurodollar deposit or LIBOR market).
The initial outlay for 1 unit of the deposit is defined next (e.g., $1,000000 in the above example).
1.008333 = the daycount convention that applies when there is a remaining life of two periods. In this example, it is a Eurodollar deposit market with a daycount convention of Actual/360. Two six month periods equals 363 days divided by 360 = 1.008333.
In trading period 2 time has moved forward by 182 days. As a result the daycount convention equals 181/360 = 0.502778.
The deposit market is add-on interest so accrued interest is computed as 1,000,000*price*actual/360 where price is a deposit rate expressed as a decimal. That is, the deposit may traded for 0.015 this means that if you are long one unit of the deposit you outlay 1,000,000 and at the end of it’s life you receive back 1,000,000*1.015*Actual Days/360.
In the second deposit (Deposit 18M) note the life is three periods and so three daycounts must be specified to allow for moving through time. So 1.513889 applies to period 1, 1.008333 applies to period 2, and 0.502778 applies to period 3.
Swap/1000000/0.5/0.5/0.5
This is an interest rate swap with a Notional Principal equal to $1,000,000. The reset periods are every period (6-months in this example). The fixed side is paid on 180/360 daycount basis irrespective of the actual number of days equally 180, 181, 182 etc., The “price” of the swap is a quoted rate (i.e., long interest rate swap means that you pay fixed and receive floating). The price is the fixed rate you pay. So the fixed leg of the swap equals $1,000,000*price*0.5 in terms of the cash obligation. The floating side is specified in the dividend section because it is common to every swap contract.
Section C: Trader Data
Recall there were nine trader types defined in the first environment section above. The details for each type are specified in the Trader Data section that starts in row 20 of the spreadsheet columns A, B, C etc., depending upon how many distinct trader types have been defined.
Trader
Type Data |
Type
1 |
Type
2 |
Type
3 |
Type
4 |
Type
5 |
Type
6 |
Type
7 |
Type
8 |
Type
9 |
Cash |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Endow
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Endow
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Endow
3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Endow
4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Endow
5 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Endow
6 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rights
1 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
Rights
2 |
0 |
0 |
0 |
3 |
3 |
3 |
3 |
3 |
3 |
Rights
3 |
0 |
0 |
0 |
3 |
3 |
3 |
3 |
3 |
3 |
Rights
4 |
1 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
Rights
5 |
3 |
1 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
Rights
6 |
3 |
3 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
Lower
Bound |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
Lower
Bound Payoff |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
-1E+08 |
Upper
Bound |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
Upper
Bound Payoff |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
1E+08 |
Constant |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Linear
Coefficient |
0.0001 |
0.0001 |
0.0001 |
0.0001 |
0.0001 |
0.0001 |
0.0001 |
0.0001 |
0.0001 |
Quadratic
Coefficient |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Log
Coefficient |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CARA
Coefficient |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CARA
Exponent |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
HARA
Coefficient |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
HARA
Exponent |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
There is always a cash or money market open plus there are six security markets in this example. The opening cash balance for trader type 1 and 2 is given in row 21 columns B and C. In the above example this is zero. You can specify any amount here. Usually cash is a balancing item so that the expected present value of each type’s position is approximately the same.
Endowments are the number of each stock a trader type starts with. In the above example this is zero for each security. The numbers can be positive, zero or negative (if you want to start with a short position). For example, in some cases it is useful to start traders with symmetrical long/short positions to create gains to exchange relatively to an appropriately defined bonus function.
Important Note: Eurodollar deposits and swaps must start with an initial endowment of zero. This is because price determines the contract (unlike most other types of financial security markets). That is, for a deposit a price of 0.015 specifies the add-on interest rate. Similarly, for a swap a price of 0.015 specifies the fixed rate that must be paid each reset period.
Trading Rights: This lets you control the dealing rights at an individual level. Values at an individual security level (i.e., Rights 1 = Security 1, Rights 2 = Security 2 etc.,) are as follows:
0 = No restrictions on market making or market taking
1 = Market making rights only (i.e., can only bid to buy or ask to sell),
2 = Market taking rights only (can only buy from ask or sell to bid)
3 = No trading rights in the security (permits creating a non tradable position).
4 = Bid rights only
5 = Ask rights only
6 = Buy rights only
7 = Sell rights only
8 = Buying rights only (Bid + Buy)
9 = Selling rights only (Ask + Sell)
Trading rights let you control whether some types are market
makers and other market takers or both.
To read about trading rights and controlling trader types click on: How Do I Control
Each Trader Type?
The next set of variables Lower Bond, Lower Bound Payoff, Upper Bound and Upper bound Payoff control the relevant range for earning market and grade cash over. Firstly, market cash in the above case is well defined over the range -100,000,000 to +100,000,000. That is, above 100 million the cash is truncated at 100 million and vice versa. Grade cash refers to the trading bonus. A trading bonus is earned by transforming market cash to grade cash at the end of each trading trial. The conversion lets you manipulate the incentive to trade in a particular case. For example, a linear conversion corresponds to a risk neutral incentive scheme that rewards managing the expected value. A log conversion is a way of rewarding both risk and return. For example, beside log coefficient this is a number that multiplies the natural logarithm of total end of trial market cash. For this case if end of trial market cash is zero or less the conversion sets grade cash to equal zero.
Other more elaborate schemes can be constructed to reward risk management trading.
Grade Cash = $6 + ((ending market
cash - $45,000)/155,000)*4
So the grade cash is between 6 and 10
(this can be anything) given that there position value doesn’t drop below 45000
-- otherwise they earn nothing.
Above $200,000 market cash earns the
maximum grade cash for one trial which is $10.
Suppose
the above is the type of payoff you want to achieve for the conversion from
Market cash to Grade cash. To do this requires doing the following in the
trader type part of the case spreadsheet. Our goal is to specify that if
the end of trial total market cash (i.e., after all interest is accrued and all
positions are marked and settled) is below the lower bound payoff of 45000 market
cash then the trading bonus is 0. If the
end of trial marked value is above the upper bound payoff of 200000 then the
trading bonus is $10 grade cash. In
between it is $5.10 + 0.00002*Mkt Cash . You can verify with this specification that
at 200000 market cash the trading bonus is $6 + $4 = $10, and at $45000 it is
$6.
You
can specify the above as follows in the case spreadsheet. Of course you can rescale the numbers any way
you want to.
Lower
Bound |
45000 |
45000 |
Lower
Bound Payoff |
0 |
0 |
Upper
Bound |
200000 |
200000 |
Upper
Bound Payoff |
10 |
10 |
Constant |
5.10 |
5.10 |
Linear
Coefficient |
0.00002 |
0.00002 |
Quadratic
Coefficient |
0 |
0 |
Log
Coefficient |
0 |
0 |
CARA
Coefficient |
0 |
0 |
CARA
Exponent |
0 |
0 |
HARA
Coefficient |
0 |
0 |
HARA
Exponent |
0 |
0 |
Section D: Common Dividend and Payoffs Data
This section controls the common dividend payoffs from each security. It is designed so that you can virtually create and trade any type of security you want to. A common dividend is defined relative to the security as opposed to a trader type. For example, one share of IBM pays the same dividend to investors irrespective of whose hands it is in. However, in some cases this may not be the case. For example, if your research is looking at taxation issues then you may want to specify a dividend net of taxes. In this case the dividend net of taxes will vary across trader types (who belong in different tax classes). The EXPT class of cases is designed to cover this example. See the next note..
Note: If you need to have trader specific dividends, as is the case in a number of the experimental markets that have been conducted over the years, then you need to use the Expt case type of specification. This is the contents of cell B13 on each case spreadsheet. Under the Expt condition you can control dividends at an individual trader level if needed.
The example below illustrates the payoffs associated with the first three trials in RE1 (a popular trading case with both instructors and students). In it’s primitive form you can enter the number directly into the cells so that at the end of period 1, trial 1 stock 1 pays a dividend equal to 0, stock 2 pays 12 per share and the spot rate of interest that applies to the money market is 0.0% (i.e., you can borrow and lend at 0%). Similarly, for period 2 the dividends realized are 0, and 18 per share for stocks 1 and 2 respectively.
Payoff
and Settlement Data |
Stock
1 |
Stock
2 |
Interest
Rate |
Trial
1 |
0 |
12 |
0 |
Period
2 |
0 |
18 |
0 |
Trial
2 |
0 |
12 |
0 |
Period
2 |
12 |
12 |
0 |
Trial
3 |
0 |
24 |
0 |
Period
2 |
12 |
8 |
0 |
Now if you hit the Function 9 key in the default case spreadsheet you will see that the realizations all change:
Payoff
and Settlement Data |
Stock
1 |
Stock
2 |
Interest
Rate |
Trial
1 |
24 |
0 |
0 |
Period
2 |
12 |
8 |
0 |
Trial
2 |
12 |
12 |
0 |
Period
2 |
12 |
12 |
0 |
Trial
3 |
24 |
0 |
0 |
Period
2 |
12 |
12 |
0 |
Now stock 1 pays 24 in period 1 and stock 2 pays 0. So before you connect to the spreadsheet (i.e., before you hit initialize in the Market program) you can hit the F9 key until you see a path of realizations that you want to run the market with.
You can control this in two ways. First by using the random number generator in Excel and link cells with equations in them to the payoff cells or you can use macros. We will illustrate both uses in this write-up.
Suppose you wanted to set up risky dividends that were realized from the range [10,50] equally likely in a particular period. In this case you could simply enter the equation into the cell: 10 + Rand()*(50-10)
Each time you hit the Function 9 key a new realization results and so long as you NEVER hit the function 9 key after initializing the Market then your desired path of realizations will be transmitted to the market.
In RE1 a simple Visual Basic macro was used to generate both the realizations and the information provided in RE1. Macros can be particular useful for creating cases where you are tying together information and the payoffs. You are encouraged to take a look at the source code in the ftsStandard.xls case file. To do so click on the menu item Tools, Macro and then Visual Basic Editor. For the case of RE1 macros you will see that the period 1 dividends for Stock 1 and 2 are controlled from cells AJ21 and AK21 via the macro referred to as RE1Payoff1 (where payoff1 refers to period 1).
Overall you will find that the dividend section provides a lot of flexibility for changing and creating your own payoffs. The number of securities and number of periods per trial must provided in the Dividend section must exactly match what you have set up in cells B1 and B3 of the case file.
Exogenous Prices and
Order Flow
In some trading cases you may want to use exogenous prices and or a slice of real world historic prices. The FTS system lets you prespecify a sequence of historic prices at the bid/ask level and if desired a prespecified order flow. For the latter the order flow can be at a trader type level. This permits different types of market microstructures to be recreated.
The relevant parts of the trading case spreadsheet are as follows:
The following example first discusses trading case XR1:
Step 1:
Name |
XR500dm |
T-Strip |
Call290 |
Put290 |
Call310 |
Put310 |
dm
Fut |
Security
Type |
Stock |
Stock |
Stock |
Stock |
Stock |
Stock |
Futures/Cash |
Price
Quotes |
Exogenous |
Exogenous |
Exogenous |
Exogenous |
Exogenous |
Exogenous |
Exogenous |
Start
Life |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
End
Life |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Short
Selling |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Quote
to Price Formula |
Quote |
Quote |
Quote |
Quote |
Quote |
Quote |
Quote |
Information |
No |
No |
No |
No |
No |
No |
No |
Observe that in the security specification part of the spreadsheet the price quotes are exogenous for each security. This specifies that the prices will be transmitted from the spreadsheet. In addition, the trader type rights are such that traders can only buy and sell each security that they are permitted to trade:
Trader
Data |
Type
1 |
Type
2 |
Cash |
114000 |
127300 |
Endow
1 |
0 |
0 |
Endow
2 |
0 |
0 |
Endow
3 |
-2000 |
0 |
Endow
4 |
0 |
-2000 |
Endow
5 |
0 |
0 |
Endow
6 |
0 |
0 |
Endow
7 |
0 |
0 |
Rights
1 |
3 |
3 |
Rights
2 |
2 |
2 |
Rights
3 |
3 |
2 |
Rights
4 |
2 |
3 |
Rights
5 |
2 |
2 |
Rights
6 |
2 |
2 |
Rights
7 |
2 |
2 |
Observe that no trader is permitted to trade the exchange rate (Rights = 3) and each trader tpe is locked into a position in one of the other securities (Rights 3 = 3 for trader type I (i.e., cannot trade the Call 290) and Rights 4 = 3 for trader type II (i.e., is locked into their position in the Put 290).
So to date prices are exogenous and a trader can only buy and sell at these exogenous prices.
Specification of the
Exogenous Prices
In row 20 of the spreadsheet in the bright blue section the exogenous prices are provided.
Exogenous
Prices |
Time
into Period |
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Trial
1 |
0 |
307.306 |
308.511 |
943.299 |
943.408 |
16.083 |
17.153 |
10.42 |
11.49 |
7.71 |
8.779 |
21.456 |
22.525 |
295.37 |
297.211 |
|
20 |
314.644 |
318.957 |
943.843 |
945.041 |
21.255 |
22.693 |
6.811 |
8.249 |
10.93 |
12.368 |
15.919 |
17.357 |
304.721 |
305.911 |
|
40 |
301.625 |
305.434 |
944.727 |
946.337 |
14.107 |
14.469 |
11.614 |
11.976 |
6.451 |
6.814 |
23.414 |
23.777 |
291.686 |
294.268 |
|
60 |
306.014 |
310.466 |
946.415 |
946.83 |
16.207 |
17.531 |
8.826 |
10.15 |
7.435 |
8.759 |
19.533 |
20.857 |
296.734 |
299.23 |
|
80 |
308.22 |
310.712 |
946.861 |
948.569 |
17.368 |
17.857 |
8.357 |
8.846 |
8.201 |
8.69 |
18.693 |
19.182 |
299.609 |
299.646 |
|
100 |
317.922 |
318.602 |
948.752 |
948.865 |
23.359 |
23.368 |
5.553 |
5.562 |
12.063 |
12.072 |
13.782 |
13.791 |
308.376 |
308.861 |
|
120 |
312.252 |
314.739 |
949.399 |
950.408 |
19.825 |
20.643 |
6.034 |
6.852 |
9.441 |
10.259 |
15.2 |
16.018 |
303.673 |
305.256 |
|
140 |
327.62 |
332.308 |
950.542 |
951.457 |
32.119 |
32.97 |
2.176 |
3.028 |
17.963 |
18.815 |
7.593 |
8.445 |
319.584 |
322.32 |
|
160 |
321.562 |
325.508 |
951.389 |
952.805 |
27.556 |
27.809 |
3.205 |
3.457 |
14.479 |
14.732 |
9.724 |
9.976 |
314.547 |
315.819 |
|
180 |
317.285 |
320.684 |
952.734 |
953.656 |
23.416 |
25.362 |
2.892 |
4.838 |
11.137 |
13.083 |
10.233 |
12.178 |
309.79 |
312.667 |
|
200 |
305.559 |
306.575 |
954.093 |
954.497 |
14.827 |
16.361 |
6.176 |
7.71 |
5.675 |
7.209 |
16.666 |
18.2 |
298.848 |
299.322 |
|
220 |
296.249 |
300.417 |
954.687 |
956.106 |
10.623 |
11.603 |
8.927 |
9.907 |
3.454 |
4.434 |
21.425 |
22.405 |
290.709 |
293.242 |
|
240 |
301.482 |
306.448 |
955.937 |
957.06 |
13.864 |
14.602 |
6.275 |
7.014 |
5.011 |
5.749 |
17.113 |
17.851 |
296.763 |
299.13 |
|
260 |
311.081 |
311.599 |
957.045 |
958.16 |
19.055 |
19.261 |
3.856 |
4.062 |
7.857 |
8.062 |
12.372 |
12.578 |
305.359 |
305.93 |
|
280 |
304.167 |
309.14 |
958.499 |
958.916 |
15.2 |
16.577 |
4.044 |
5.421 |
5.201 |
6.578 |
13.784 |
15.161 |
301.052 |
301.963 |
|
300 |
303.887 |
308.089 |
959.81 |
959.817 |
14.626 |
16.184 |
3.628 |
5.186 |
4.638 |
6.197 |
13.401 |
14.96 |
299.987 |
302.646 |
|
320 |
301.551 |
301.695 |
960.508 |
961.334 |
11.973 |
12.93 |
4.741 |
5.698 |
3.284 |
4.241 |
15.837 |
16.794 |
297.199 |
297.751 |
|
340 |
298.578 |
301.634 |
962.023 |
962.036 |
10.631 |
12.099 |
4.402 |
5.869 |
2.345 |
3.813 |
15.925 |
17.393 |
295.021 |
297.85 |
|
360 |
292.781 |
296.199 |
962.275 |
964.004 |
7.519 |
8.309 |
6.319 |
7.109 |
1.226 |
2.017 |
19.859 |
20.65 |
289.966 |
292.706 |
|
380 |
306.403 |
310.567 |
963.995 |
964.507 |
16.486 |
17.933 |
1.06 |
2.506 |
4.443 |
5.89 |
8.874 |
10.32 |
304.279 |
307.021 |
|
400 |
296.354 |
297.726 |
965.1 |
965.627 |
8.379 |
9.254 |
3.734 |
4.609 |
1.052 |
1.927 |
16.287 |
17.162 |
293.914 |
295.614 |
|
420 |
298.29 |
298.645 |
966.376 |
966.58 |
9.088 |
9.814 |
2.556 |
3.282 |
1.03 |
1.756 |
14.403 |
15.128 |
296.315 |
296.957 |
|
440 |
302.023 |
303.386 |
966.718 |
968.467 |
12.212 |
12.604 |
0.998 |
1.389 |
1.648 |
2.04 |
10.361 |
10.753 |
301.184 |
301.438 |
|
460 |
305.915 |
309.999 |
968.199 |
969.22 |
16.897 |
17.359 |
0 |
0.427 |
2.598 |
3.061 |
5.618 |
6.08 |
305.611 |
308.411 |
|
480 |
300.708 |
304.11 |
969.061 |
970.593 |
11.729 |
12.365 |
0 |
0.454 |
0.185 |
0.821 |
8.25 |
8.886 |
301.246 |
302.643 |
|
500 |
314.047 |
314.047 |
970.946 |
970.946 |
24.047 |
24.047 |
0 |
0 |
4.047 |
4.047 |
0 |
0 |
314.047 |
314.047 |
Trial
2 |
0 |
301.137 |
307.186 |
942.803 |
943.904 |
13.949 |
15.308 |
11.78 |
13.139 |
6.336 |
7.695 |
23.576 |
24.935 |
291.628 |
293.743 |
The starting column is entirely dependent upon how many trader types are specified and how many securities in the market. However, the first column has the trial and (if a multiperiod case the period). In XR1 there is only one period so only Trial 1, Trial 2 etc., are listed in the first column. The second column controls the time in seconds that the prices are fed to traders in the market. In this case one period lasts for 500 seconds and so the period opens with the prices listed beside 0 seconds into the period (i.e., exchange rate is 307.306 etc., ). Then 20 seconds into trading prices change to 314.644 etc., and so on throughout the period.
Columns 3 and 4 above specify the Bid and Ask respectively for Security 1, then security 2 and so on working across the columns. These are the prices that traders in the market can trade at.
You can see that it is easy to mix and match. That is, have the underlying being real world prices and opening other derivative markets for which traders can make market among themselves on.
Exogenous Order Flow
For some trading cases it is desirable to specify an exogenous order flow.
Consider trading case ST2. This is a risk management exercise where the quantity of the underlying on the dealers books keeps changing over time (in response to their firm’s market making activities). The quantity changes are exogenous but it is instructive to see how it is specified.
Trial
1 |
0 |
346.826 |
347.173 |
871.2202 |
871.2202 |
60.39482 |
60.6382 |
23.23238 |
23.336 |
|
0 |
q |
566 |
q |
0 |
q |
0 |
q |
0 |
|
45 |
353.554 |
353.908 |
873.583 |
873.583 |
63.15376 |
63.41023 |
20.1095 |
20.20703 |
|
45 |
q |
283 |
q |
0 |
q |
0 |
q |
0 |
|
90 |
356.208 |
356.564 |
875.9521 |
875.9521 |
62.98851 |
63.25029 |
18.13593 |
18.23015 |
|
90 |
q |
416 |
q |
0 |
q |
0 |
q |
0 |
|
135 |
354.871 |
355.226 |
878.3277 |
878.3277 |
59.8268 |
60.08723 |
17.15553 |
17.2501 |
|
135 |
q |
-591 |
q |
0 |
q |
0 |
q |
0 |
|
180 |
374.158 |
374.532 |
880.7097 |
880.7097 |
72.41366 |
72.71386 |
11.3231 |
11.39689 |
|
180 |
q |
186 |
q |
0 |
q |
0 |
q |
0 |
|
225 |
367.267 |
367.635 |
883.0982 |
883.0982 |
64.6562 |
64.94632 |
11.3018 |
11.37968 |
|
225 |
q |
443 |
q |
0 |
q |
0 |
q |
0 |
|
270 |
367.634 |
368.002 |
885.4932 |
885.4932 |
62.54586 |
62.84001 |
9.680027 |
9.753881 |
|
270 |
q |
556 |
q |
0 |
q |
0 |
q |
0 |
|
315 |
366.204 |
366.571 |
887.8946 |
887.8946 |
58.87993 |
59.17598 |
8.300858 |
8.371801 |
|
315 |
q |
211 |
q |
0 |
q |
0 |
q |
0 |
|
360 |
366.761 |
367.128 |
890.3026 |
890.3026 |
56.68471 |
56.98794 |
6.411985 |
6.47575 |
|
360 |
q |
-69 |
q |
0 |
q |
0 |
q |
0 |
|
405 |
350.566 |
350.917 |
892.7171 |
892.7171 |
40.75986 |
41.03033 |
7.523861 |
7.604397 |
|
405 |
q |
432 |
q |
0 |
q |
0 |
q |
0 |
|
450 |
349.035 |
349.384 |
895.1382 |
895.1382 |
36.08122 |
36.35816 |
5.245512 |
5.317577 |
|
450 |
q |
435 |
q |
0 |
q |
0 |
q |
0 |
|
495 |
348.884 |
349.233 |
897.5658 |
897.5658 |
32.02506 |
32.32504 |
2.226546 |
2.27557 |
|
495 |
q |
517 |
q |
0 |
q |
0 |
q |
0 |
Trial
2 |
0 |
346.826 |
347.173 |
871.2202 |
871.2202 |
60.39482 |
60.6382 |
23.23238 |
23.336 |
Again the first row of each time change 0, 45, 90 etc., specifies exogenous prices and the second row, with a “q” in the bid column specifies a qty change. Note quantity can be + or – because it is a change (i.e., added on to existing quantity over time). Again in the above specification every 45 seconds both prices and quantity on the books change.
Finer Details
Sometimes you may want to specify an order flow by trader type. That is, large changes for a professional trader type and smaller quantity changes for a retail trader. The above concept can be extended to handle this by specifying “q” in the bid column and then 5000/-50/100 for the case of three trader types (1 professional and two retail traders).
Information
Appendix 1: Case Data for B02R variation of B02A
illustrated above.
This is based upon B02A with the difference that the quotation convention used is the same as the real world Treasury market quotations.
Trading Case B02R
Case Objective
To understand the time value of money; to understand
the cash flows from a coupon bond and Treasury Bills with different maturities;
to learn about the drivers of fixed income prices; to understand cash matching
and related arbitrage relationships. To understand how Treasury Bills are quoted
and traded. In this market the future
spot rates are stochastic but traders can get private information about these
spot rates.
Key Concepts
Time value of money; discounting; Treasury prices
and interest rates.
Case
description
In this case, there are 3 Treasury Bills and 1
special type of bond. This trading exercise covers six months of calendar
time. However, you will only trade the
first day of each two month period for the first four months. That is, day 1 opens for trading first. At the end of day 1 time flashes by and two
month settlements take place. Shortly
after this day 1 for month 3 opens for trading.
Again at the end of day 1, month 3 time flashes by and end of month 6
final settlements take place. Final
settlement implies that your entire position is converted to it’s
cash equivalent (i.e., marked to market).
The first three securities are Treasury Bills with
different maturities. Security 1 is a
T-bill initially with two months life remaining, security 2 is a T-bill
initially with four months life remaining and security 3 is a T-bill with
initially 6-months life remaining. The
coupon bond is a special coupon bond that pays coupons every two months and has
a coupon interest rate equal to 6% (payable 2-monthly). All bonds have a face value of $10,000. The cash flow from each bond at the end of
each 2-month period is shown in the table below.
The spot interest rate is initially 2% (annualized
and applied on an annual compound basis).
In months 3 and 4, the expected spot rate is 2.5%, while in months 5 and
6, the expected spot rate is again 2.5%.
For months 3 and 4 the possible 2-month spot rates, equally likely, are
2%, 2.5%, and 3%. Similarly, for months
3 and 4 the possible spot rates, equally likely, are again 2%, 2.5%, and
3%. This means that whatever the final
cash balance in your money market account is after the day 1, month 1 earns (or
pays) 2%, after day 1 month 3 earns or pays {2%, 2.5%, 3%} for two successive
2-month periods of time. That is,
borrowing or lending is permitted at the realized 2-month spot rates.
You can short sell bonds. If you sell short a bond or T-bill and do not
cover your position, you will have to pay any coupons and/or face value on the
fixed income security at the end of each two month period.
Prices in this case are determined by the traders,
so all trades take place at bids and asks that either you or another trader in
the system puts in.
At the beginning of each two month period you will
know what the current two month realized spot rate is for the money
market. In addition to this information
in trading period 2 you will receive unbiased private forecasts of the
subsequent 2-month spot rate. That is,
on day 1 month 1 you do not receive any private information. By day 1 month 2 you have become more
experienced traders and now you will receive private information from your
personal analyst. The information will
be in the form of the “true end of period value” plus or minus some error. The expected value of the error is zero but
the realized error can be positive or negative.
Different trader types get different unbiased forecasts so that in aggregate
the market as a whole always has better information than any individual
forecast. In addition, information is
such that you receive forecasts with smaller errors as the period
progresses.
In the information text box (a single click on the
coupon bond reveals the information in the information text box) you may
observe the following:
Forecast Time: xxxx
Current analyst forecast 0.027 (equals true realization plus/minus some
unbiased error (expected error is 0).
This means that the forecast became available when
the trading clock was xxx-seconds into the current period and reveals that an
unbiased estimate of the expected spot rate is 0.027. A forecast can exceed the possible bounds
because of the error it contains. But
don’t forget that errors are independent both across forecasts in time. As a result there is information in a
sequence of forecasts.
A single click on the name
Cp Bnd (under the heading Security Name and after the
market starts) reveals your private information in the text box (top middle of
the FTS Trader screen).
Case Data
The cash flows from bonds are:
|
Payout at end
of Month 2 |
Payout at end
of Month 4 |
Payout at end
of Month 6 |
T-Bill (2M) |
$10,000 |
|
|
T-Bill (4M) |
|
$10,000 |
|
T-Bill (6M) |
|
|
$10,000 |
Cp Bnd |
$100 |
$100 |
$10,100 |
Money Market |
2% |
{2%, 2.5%, or 3%} |
{2%, 2.5%, 3%} |
Actual Days (t=0) |
60 |
120 |
180 |
In
the above money market pays 2% annualized (compounded annually) as the spot
rate for months 1 and 2; either 2%, 2.5% or 3% annualized (compounded annually)
as a realized spot rate in months 3, 4; and the same as a realized 2-month rate
for months 3 &4. C0 is
your initial endowment of market cash. C1
is your closing balance of market cash after the first day’s trading activities
are accounted for. C1 = C0*(1+
realized r)^(2/12).
T-bills:
Each T-bill is quoted in the following way. Bids are in DR% where DR% is the discount
rate percentage relative to a $10,000 face value. In the above table you can assume that the
actual days in every two month period is 60 days.
Example: Suppose the bid/ask spread is 3.14 and 3.12 respectively
for the 4-month T-bill at the beginning of period 2. This implies that the cash price being bid is
computed as follows where the remaining days to maturity equal 60:
Cash
Discount if selling to bid = DR%*Face*Days to Maturity/(360*100)
= $52.3333
Cash
Spot Price if selling to bid = $9,947.667
Cash
Discount if buying from the ask = DR%*Face*Days to Maturity/(360*100)
= $52
Cash
Spot Price if buying from the ask = $9,948
You
can see that the cash discount being bid is higher than the cash discount being
asked which implies that the spot price in cash being bid is lower than the
spot price in cash being asked. This is
consistent with a positive bid/ask spread.
Coupon Bond:
The coupon bond is quoted in 32nds relative to a face vale of $100. That is, a bid price of 99.30 implies that
the spot cash price being bid is $99 + 30/32 = $99.9375 relative to $100
face. There is no accrued interest
because in this case the bond pays a coupon every 2-months (as a simplifying
assumption).
One
coupon bond is actually settled with a face value equal to $10,000, so the
total dollars subtracted from your money market is $9993.75 when the quote is
$99.30.
Your aim is to make as much money as you can which
depends upon how well you trade relative to the prices discovered by the
market. Each trial you earn
grade cash that is cumulated across trials.
Grade case in any trial equals 0.0001 x your closing balance of market
cash. That is, if you end up with
negative wealth then you lose grade cash and if you make money then you gain
grade cash.
Trading is conducted over a number of independent
trials and a record of your cumulative grade cash is maintained. For the case of a weekend trading session
only one trial will be completed.
Spreadsheet
Support
If you choose to create a spreadsheet support system
for this trading case the following cell information is relevant:
Spreadsheet
Cols run from A (blank), B (Security), C (Bid), D (Bid Qty) etc., and rows run
from 1 (Headings), 2 (T-Bill(2M)), 3 (T-Bill(4M), 4 (T-Bill(6M)) etc.,
The above cells are fixed and
general across FTS cases and the numbers are for illustrative purposes
only. That is, the first security’s bid
comes into cell C2, etc., whenever you perform the Spreadsheet link.
VWAP is the volume weighted
average price based upon traded prices for the market as a whole. It is widely used in the real world as a
trading benchmark to calibrate trading performance against.
Cash (10000000) is the current
cash balance in the money market account.
Performing spreadsheet link is
simple. First open Excel. In the FTS Trader click on the File Menu item
and then select Excel
link. Next click on the button Find
Excel Workbooks and select the work book you want to link to. Be sure to link Market Data and Trading
History to two different sheets. Then
click OK. The link is maintained in real
time.
Tip: In a weekend trading session it is recommended that you
have a third master sheet in your workbook to keep you personal trading diary
in. That is, if you are logging in and
out of the market suppose each individual session you link Trading History to
sheet 2. At the end of the session copy
and paste the data to sheet 3 and then clear sheet 2. This is required because when you link to
sheet 2 over independent sessions it will merely overwrite whatever is there
from a previous session.
Tip: Be sure to back up Excel and save during a
session.
The details for the second
sheet which contains your personal trading diary are provided below:
Spreadsheet
Cols run from A (blank), B (Trial), C (Period), D (Time) etc., and rows run
from 1 (Headings), 2 (first trade), 3 (second trade), etc.,
Note: Excel link now supports the transfer of information (private and public). In addition, it denotes whether the trader who did the linking to Excel is the current market maker by depicting the bid or ask in red whereas if the trader is not the current market maker tese values are not depicted in color. This is for the convenience of program trading described below.
Program Trading: The moderator/instructor controls whether this is permitted or not by turning it on in the trading case Excel spreadsheet file. In addition, program trading can be turned on or off at an individual security level. Program trading also provides a trader with enhanced market making support. This is because it allows complex cross market strategies to be set up and implemented in the Excel support spreadsheet that can be linked to trader.
The following steps show you how to allow program trading as well as how traders in the market can trade in this way. As a trader, you can use your Excel support spreadsheet to transmit orders to the market in three ways. First, type in the order directly into the relevant cell in your Excel spreadsheet. Second, paste in a set of orders into multiple cells. This allows you to transmit multiple orders at a point in time. Third, you can build an Excel macro that automates your orders. In the following steps you will see that the three basic order types are covered. That is, you can:
i. make market (i.e., transmit bids and asks directly to the market book). That is, if you have dealing rights you can use Excel to post both bids and asks to a single or multiple securities.
ii. take market (transmit market orders) to buy from the ask or sell to the bid your specified quantity at the best available price.
iii. take market using a market limit order. That is buy from the ask your specified quantity up to (and equal to) the price you specify. Alternatively, you can sell to a bid the quantity you specify down to (or equal to) the price you specify.
Important: You must Modify the Trading Case Excel Spreadsheet before Your Students can use the Program Trading Facility:
Step 1: Download FTS Trading Case Excel files (see hyperlink below)
Select the case you want to modify (each spreadsheet tab refers to a specific trading case). Assuming you have selected one case spreadsheet then change the following cells:
Column C, Row 17 enter the label: Autotrade
Columns D, E etc., corresponding to securities in the case you can enter either “Yes” or “No” to allow or disallow program trading.
Program Trading Rules for FTS Markets (example relative to B02)
The following steps demonstrate how a trader can program trade if and only if the moderator has turned it on for the current trading session.
Step 1: Link to your Excel Workbook in the usual way (In
trader click on File, Excel Link, Locate your Workbook and
link Market Data and History to separate spreadsheets.
Step 2: In the market data sheet Security Names are in Column
B (Cp Bnd in B2, Zero 2 in B3, Zero 3 in B4, Zero 4 in B5,
Zero 5 in B6 and Cash in B7)
Step 3: Program trades must be placed beside each security
name in column A, that is to trade Cp Bnd information must be
placed in cell A2, Zero 2 in A3 etc.,
This information will be automatically grabbed by the FTS Trader
as soon as it is entered into the cell. You can enter this either via
a macro, or you can paste or type the entry into the cell directly (when
typing follow by Return or enter key).
Step 4: Codes
The following messages are recognized:
b/price/quantity e.g., b/85.67/2000 sends in a bid for a price
of 85.67 and 2000 units
Full set of codes:
b/price/qty
a/price/qty
y/price/qty
s/price/qty
y/qty
s/qty
cb
ca
In the above b = bid, a = ask, y = buy, s = sell, y/price/quantity is a market buy limit order, that is it submits a buy up to or equal the given price. "cb" and "ca" refers to clear bid or clear asks in the book for a particular security. That is, you can automate clearing out your market making orders if you want to.
y/quantity is a market buy order at the prevailing best market price (i.e., lowest available ask)
This will let you increase the level of sophistication of your trading strategies, including placing multiple trades.
International FTS Users
We now support different international window settings. These can be changed via the Regional Options in the Windows Control Panel. For example run under Spanish windows, French Russian etc., and even mix and match. That is, the FTS markets are now truly international and can handle traders logging in from different countries using their preferred Regional option. Similarly, the central market can run under different regional settings as well.
Can I run multiple FTS sessions on the one server?
In the new version the answer to this is yes. That is, you can control the port number if you want to via the case file. This also has some experimental research implications if you want to conduct multiple market sessions under different criteria.
For example, the you could run a continuous double auction market and a call auction in parallel. A different port number needs to be specified in case when running more than one FTS market program. The port number is specified in the Excel case worksheet and we recommend keeping above 25000. It is specified in Row 1 as: Port (a label specified in row 1 of the column immediately after the last security in the yellow section. The number is specified in row 1 in the column beside Port.
Example for B02 columns E, F, and G appear as follows to
specify a particular port number = 26999.:
Zero
Cp |
Port
Number |
26999 |
Bond |
|
|
Endogenous |
|
|
1 |
|
|
3 |
|
|
©OS Financial Trading System 1999-2003