Behind the scenes, when future parameters are uploaded, they are really uploaded as sets of prices for all the currently active contract codes for a commodity code. For example, let us assume you were to upload this set of future parameters:
ProductCode | ContractCode | Price |
CL | H13 | 8500 |
CL | H14 | 9250 |
B | Z12 | 10000 |
NG | U14 | 4000 |
Assuming you were doing this on the date this documentation was written (10-02-2012),
CL has 76 active contracts, B has 76 and NG has 146. So, in actuality you would
be saving three sets of future prices (301 in all). In all cases the future price
of the uploaded contract replaces the existing future price.
How the future prices for the other contracts in the ‘set’ are calculated is dependent
upon which interpolation method you choose.
At present we offer four interpolation methods.
Copy Only
This is the simplest. When Copy Only is selected the only future prices changed
are the ones uploaded. If I upload the above set only four future prices will change:
CL/H13, CL/H14, B/Z12 and NG/ UI4.
The other four interpolation methods all apply changes based on expiration date,
from earliest to latest.
Simple Addition
The price difference between the new and old price is calculated. This is then added
to or subtracted from all the other contracts for that trader in expiration date
order until either the next uploaded parameter is encountered or the last active
contract code is reached.
Simple Addition With Price Adjustment
The price difference between the new and old price is multiplied by the ratio of
the current contracts adjustment to the uploaded contract’s adjustment. This value
is then added to or subtracted from all the other contracts for that trader in expiration
date order until either the next uploaded parameter is encountered or the last active
contract code is reached.
Time Weighted
This method is only applicable when there are two or more contracts for a commodity
in the upload set. Contracts before the first uploaded parameter are not affected.
First we calculate the total number of days between adjacent uploaded parameters.
Then we compute the price change between the existing value and the new (uploaded) value.
Then for every contract whose expiration date lies between the two uploaded parameters that we
are working with, we calculate the number of days between that expiration date and
the starting expiration date. We then use the slope-intercept equation to determine
the price for that contract.
m = price change difference / total days
x = number of days between the current expiration date and the starting expiration date
b = start price
contract price = mx + b
For all contracts after the last uploaded parameter we use the following formula.
new price = current price + (last uploaded price change difference * (current price adjustment / last price adjustment)