|
Continuous Contract
Reader Feedback
|
Mon, 29 Aug
2005
Contract
Specifications
Hi Ed,
I’ve been popping into the TSP area occasionally and have noticed
either an oversight or an issue that, up to now has not gotten
addressed.
As the test applies to a S&P 500 futures contract and not basing the
testing on the futures data for then trading the cash …
Using the formula
Position_Size = Budget / Risk_Per_Lot
Position_Size = (Equity * Heat) / (ATR * ATR_Multiplier)
In the example of the simulated trade…
To see how this works, scan down the metrics log to mid-September, 1982.
82-09-13-M slow=114.531 fast=114.094 Atr=3.408 - Eq=1000000.00
82-09-14-T slow=114.621 fast=114.467 Atr=3.335 - Eq=1000000.00
82-09-15-W slow=114.716 fast=114.844 Atr=3.270 + Eq=1000000.00
82-09-16-H slow=114.803 fast=115.182 Atr=3.225 + Eq=1000000.00
The fast average crosses above the slow average on 9/15/82 (See the +
sign in the position column). Therefore, the system buys on the next
open.
Again, look in the metrics log for the prices.
82-09-15-W OHLC:[ 124.30 125.05 122.40 124.10 ]
82-09-16-H OHLC:[ 124.05 125.60 122.80 123.45 ]
82-09-17-F OHLC:[ 123.20 124.25 122.15 122.55 ]
On 9/16 the open is 124.05 and the high is 125.60. The system awards an
execution 50 percent of the way from the open to the high, or 124.82.
On 9/15 the ATR is 3.270. The ATR Multiplier is 5 so the Risk_Per_Lot is
5 * 3.27 = 16.35.
On 9/15 the Equity is 1,000,000 and the Heat (for the entire run) is 5%
so the Risk_Budget is 5% of 1,000,000 or $50,000.
The Position_Size, then, is 50,000 / 16.35 = 3058.104
Rounding to the nearest 50, we get 3050.
The “Position Size” is using a point value of $1.00 as if it were
trading cash shares. The trade taking place 82-09-16 in the futures
contract “at that time” would have a point value of $500.00 for
trading the S&P 500 futures contract.
To compute the Position Size the formula should be …
Position_Size = Budget / Risk_Per_Lot
Position_Size = (Equity * Heat) / ((ATR * ATR_Multiplier) * 500.00)
Using this I get a Position Size of 6.116 contracts prior to any
rounding.
Also any trades and position sizing computations after Nov 1st 1997 have
to use the formula, using a point value multiplier of $250.00 because
the S&P contract size was halved. So the formula would be like this
for trades and position sizing after Nov 1st 1997…
Position_Size = Budget / Risk_Per_Lot
Position_Size = (Equity * Heat) / ((ATR * ATR_Multiplier) * 250.00)
The same trade example if it were after 11/01/97 would result in a
position size calculation of 12.232 contracts prior to any rounding.
This brings the issue of bringing the current contract specifications
(as they exist now) to the beginning of the test. This is an error
similar to that of bringing the portfolio selection process from the end
of a simulation to the beginning of another simulation. This is because
some futures instruments have altered their contract specs thru their
history and can affect the price volatility and the respective currency
“Value” of the volatility and thus any position sizing based upon
it. The same problem applies for valuing the simulated trades that span
the contract specification change. An example of this would be buying
the S&P contract in 1995 and holding the trade to 2000. The
resulting trade equity file, volatility of the equity file, position
size and risk would be terribly in error given a contract specification
change in the S&P contract in 1997. The correct way would be to end
the trade (if the trade is still open at the date the contract changes)
and seamlessly reinstate it with the new position size and value each of
the 2 parts of the trade accordingly.
This all assumes the data file for the given contract was not somehow
adjusted (properly/improperly) for the contract specification change.
Contract specification changes are very difficult to pin down except
from the obvious ones. It’s possible to scan individual contract price
files high and low fields automatically identifying the minimum tick and
then see if that matches the min tick of the next further out contract
price file. A change might flag and indicate a possible historical
contract specification change. Not sure if it would flag them all
however. This doesn’t seem to work on the S&P because the min
tick quoted in some cases changed in mid stream (the same contract at
the November 1st date) even though you are looking at the December 1997
contract. |
| Yes, I use $1 per handle
lots to avoid the effect of variable contract specifications. |
|