The 1-page Performance Summary
“Onepage” is the FDC function that gives you the box score performance summary. Here’s what the output looks like:

If you just enter
on a command line, you will get a small template that will ask you for the required inputs (the left inputs to the Onepage function). This is the easiest way to learn this function.

When you operate the Onepage function from the template, the code will automatically be entered for you on the command line. That way you can see how code should be entered if you choose to do so yourself. You can also then alter that code to make a modified request directly from the command line.
For those of you who grow weary of templates and menus, we recommend entering your own code, as illustrated in the following syntax. In either case, please read through the enumerated points below to understand the particulars about this function.
Syntax: ‘[name in quotes]’ [chart code] [linear/log] [cash download] onepage [dataset]
![]()
1. Onepage will operate on the first 3 columns of a dataset. If your dataset does not have 3 columns, then you must give it 3, such as: (SPX COLS 1 1 1). The first column in your dataset is your featured data, such as the results of your trading. The second column is the benchmark, which is used in the comparative calculations. The third column is another comparison, but is not used in any calculations. Those who have seen our performance summaries usually see our featured program compared to the S&P500 along with a 10% Yield curve. The S&P is the standard benchmark, and the 10% line is the target that pension funds must make to avoid being in deficit. The output shown above illustrates just that.
2. The Sharpe Ratio is the return of the program above a risk-free return, divided by the standard deviation.

For Onepage to calculate the Sharpe Ratio, you must have a dataset named “cash_comp” available. Cash_comp must be the compounded value of an investment earning the risk-free return. You may use any rate you wish, recognizing that lower rates will give you higher Sharpe Ratio values. We recommend that you use daily 3-month Treasury bills, and provide a facility within the Onepage function to download cash_comp values based on the 3-month bills. To request automatic downloading of cash_comp, just enter “1” in the cash download field. If you already have a cash_comp value, enter “0” in that field.
![]()
Here you see the automatic download choice ( 1 ) selected. If you choose to download our values of cash_comp (1983 to present, daily), you do not have to do that every time you run this function. We only update that dataset daily, and each download takes several seconds. Should you wish to use a different interest rate and not know how to compound it, we have included instructions on how to do so at at the bottom of this page.
3. You must provide a title for your performance summary. That title must be in quotes, such as ‘Lucky Louie Lunar Program’. Do not put an apostrophe in the title as it will be confused with an end quote.
results in the following name in the display:

Okay, now you are ready to input something, so let’s try the following:
‘test’ 3 0 0 onepage ((cl spx) common (cl indu) common (cl dju))
Substitute any datasets you wish.
4. The output is interactive. Notice the pushbuttons above the monthly box scores. Monthly is the default, but if you change them, you will get different output.
![]()
5. Onepage will size itself to your screen resolution. If you have 20 years of data, it will not all fit on the one page. You will be shown what fits up to the latest period. However, if you put your mouse on one of the cells in the box score, and use the left arrow, you can scroll the summary back to earlier years.
6. You may note that the percent maximum drawdown is shown as say 35.13, and you cannot find that number in the calendar yearly summaries. So how did it happen? Well, Onepage is smart – if you give it daily data, it will calculate the drawdown on the basis of daily data. But that drawdown may have occurred over a several-month period within one calendar year, in which case you will find it in the yearly summaries. But if it occurred over two calendar years, it will not be in the yearly summaries. If you only input month-end data, you can hide or minimize those intra-month drawdowns, but that’s cheating.
When you produce a Onepage performance summary, it is either for yourself or for presentation to others. If it’s just for yourself, you probably don’t have to do anything else. However if you are making a presentation copy, you will want everything labeled and described. In that case, you will find the following items necessary.
7. You may provide a description, which will go in the lower left quadrant of the summary. The text produced there will come from the Note tab of the dataset. So whatever you want to appear on the summary, you must provide in the Note tab of the dataset.
in the Note tab ![]()
produces the text in the performance summary:

8. If you do nothing to the column headings of the dataset, the chart legend of the performance summary will display the lines as “Column 1”, “Column 2”, and “Column 3”. That works fine if the performance summary is just for your use. However if you want a dress-up version, go into the dataset and re-label the columns to what you want, such as, “ETF Program”, “S and P” and “10% Yield”. Note that some characters will not reproduce, such as the “&”.
![]()
Labeling the columns produces the labels in the chart legend:
![]()
9. The chart can display daily, weekly or monthly data. The chart code is “1” for daily, “2” for weekly, and “3” for monthly. Of course your dataset must have daily data to produce daily charts. We ourselves use daily data and display monthly charts, but you are welcome to try the others.
10. The chart defaults to linear, whose code is “0”. Should you want a log scale chart, enter “1” in this field. The colors on the chart cannot be changed: Blue, Red and Green for columns 1, 2 and 3, respectively. Here is a sample of syntax with log scale selected ( 1 ):
![]()
11. It is not possible to save the display as a file. But you can always reproduce it at a moment’s notice. We are also not happy with a printed version of this file, and have therefore not provided that capability. We have found that the easiest and most efficient way to save and print this information is as a .gif file.
How to compound an interest rate:
Step 1: Download or import the interest rate data that you want to compound.
For example, if you want data from the Fed, FDC’s Data Wizard enables you to do this with a few mouse clicks. You can either use the Data Wizard or enter your own code:
startdate: 19900101
a: 'fed' getdata 'DTB3' startdate today
You will have to supply the startdate (YYYYMMDD), and FDC will download values from that date until today. (FDC knows what day today is.)
It is important that you look at the data so you know how those values are presented. Specifically, is 5.25 percent expressed as 5.25, 0.0525, or some other representation? The decimal values will make a difference in the compounding code. The Fed data listed above is presented as follows:

We will assume that most data will be expressed in this manner.
Step 2: Compound it, and save those values as “cash_comp”.
b: cumprod ((a/100)+1)^(1/252)
cash_comp gets b
Let me take some time to explain what is happening here, and at the end an anecdote will elaborate why. The first thing that gets done is the interest rate (a) gets divided by 100. So a value of 5, becomes 0.05. Then we add the value of 1 to it, making it 1.05. That 1.05 is the value at the end of a year of an initial asset of 1 growing at an annual 5 percent rate. No distributions or additions are involved. Then we take the 252nd root of that 1.05. There are on average 252 market days in a year, and the t-bill data is based on days when the financial markets are open. By doing this, you have turned an annual growth rate of 1.05 into a daily growth rate of 1.00019363. Then we need to compound all of those daily growth rates. The function “cumprod” takes the cumulative product of the entire dataset. Here are the values of the daily 30-day T-bill rate compounded from 1990:

The last line saves the value “b” as “cash_comp”, which can then be used either in Onepage, or as you wish.

The above is a monthly chart of that compounding. On the surface, it does not look that interesting. However, we assure you that the compounded value of the highest-liquidity asset on the planet is of tremendous value. We suggest you experiment with it.
Step 3: A variation. How do you compound a fixed rate?
All you need to do is to redefine the rate, say 5 (i.e. 5 percent). But you do need the dates, and for those dates, we will just take the ones provided above by DTB3:
startdate: 19900101
a: 'fed' getdata 'DTB3' startdate today
a: 5 when (a gt 0)
b: cumprod ((a/100)+1)^(1/252)
cash_comp gets b
If you have already saved cash_comp, then you may shortcut the process by “borrowing” its dates:
a: 5 when (cash_comp gt 0)
b: cumprod ((a/100)+1)^(1/252)
Anecdote: In managing a fund with some debt as assets, we once had to value a $1 million note yielding 7.75% annually, paying interest on a 365-day year. The debt was redeemed at the end of 137 days. Neither the fund’s Administrator nor the fund’s Auditor knew how to value the note. We provided the answer which we got from the formula: 1,000,000 * (1.0775 ^ (137/365)). Both the Administrator and the Auditor were truly impressed and asked what specialty software we used to calculate the value. They did not trust us when we told them we used a hand calculator, so we had to send them an Excel spreadsheet. The particularly interesting fact is that the Administrator had an M.B.A. in Finance and the Auditor was a Partner at a Big-4 accounting firm.