Appendix
The tests that were performed on the real data discussed in the body of the paper will also be performed on simulated data generated from known stochastic processes. The goal of this analysis is to determine if the real data test results also hold in robust simulated markets where the futures price is determined using the carry cost model with mean-reversion and basis risk.
Specifically, using Monte Carlo simulation, we simulate data for 1,000 runs of 100 futures contracts per run. The futures contract times-to-maturities distribution is the same for each contract. At the start (end) of a futures contract’s use as the hedging instrument it has 14 (1) weeks until its maturity. Each profit period is a week. Thus, each run is 100 futures contracts*13 weeks/futures contract = 1,300 weeks long. The carry cost rate (c) and spot price (S) at the end of one futures contract’s use as the hedging instrument (when the futures has 1 week until its maturity) are also the c and S at the start of the next maturing futures contract’s use as the hedging instrument (when it has 14 weeks to its maturity).
To avoid potential distortions when the c values are very close to 0, for each run, the time t annual c incremented by 1, rather than c, is simulated. It is denoted cit (c incremented by 1) and it is simulated as:
$$ {\text{ci}}_{{\text{t}}} = ci_{t - 1} * \exp \left( { - \Theta * \left( {{\text{ci}}_{{{\text{t}} - {1}}} - \mu {\text{i}}} \right) * \Delta t + \sigma_{{\text{c}}} *\Delta {\text{t}}^{{0.{5}}} * \epsilon_{{\text{c}}} } \right) $$
(6)
ϴ is the mean-reversion speed for c, which is the same as it is for ci,
μi is 1 + the long-run mean c (μ), i.e. the long-run mean ci,
σc is the annual volatility of c, which is the same as the volatility for ci,
∆t is 1/52, and
εc is a Wiener process realization component of c.
The time t theoretical spot price, Stheoreticalt , is given as:
$$ {\text{S}}^{{{\text{theoretical}}}}_{{\text{t}}} = {\text{S}}_{{{\text{t}} - {1}}} *{\text{exp}}\left( {\left( {{\text{c}}_{{{\text{t}} - {1}}} - \sigma_{{\text{s}}}^{{2}} /{2}} \right)*\Delta {\text{t}} + \sigma_{{\text{s}}} *\Delta {\text{t}}^{{0.{5}}} *\left( {\rho\epsilon_{{\text{c}}} + \left( {{1} - \rho^{{2}} } \right)^{{0.{5}}} * \epsilon_{{\text{s}}} } \right)} \right) $$
(7)
St-1 is the time t-1 actual spot price as defined in equation 11) below,
ct = cit -1
σs is the annual spot return volatility,
ρ is the correlation between ct and St, and
εs is a Wiener process realization idiosyncratic spot return component.
Within a run, after every 13 weeks, the futures’ hedging instrument switches/rolls to a new futures contract that initially has 14 weeks-to-maturity. On the switch/roll date, 2 futures prices are determined, that for the old futures contract that has 1 week to its maturity and that for the new futures contract that has 14 weeks to its maturity. The timestep t theoretical futures’ price is:
$$ {\text{F}}^{{{\text{theoretical}}}}_{{{\text{t}} }} = {\text{S}}_{{\text{t}}} *\left( {{1} + {\text{c}}_{{\text{t}}} *\left( {{\text{WTM}}_{{\text{t}}} *\Delta {\text{t}}} \right)} \right) $$
(8)
where: WTMt is the time t futures hedging instrument’s Weeks-To-Maturity; it runs from 14 to 1.
$$ {\text{The carry cost from time t}} - {\text{1 to time t is S}}_{{{\text{t}} - {1}}} *{\text{c}}_{{{\text{t}} - {1}}} *\Delta {\text{t}} $$
(9)
There is basis risk; the spot and futures price processes are noisily linked by c. The spot and futures price time t errors (deviations from their above theoretical prices) are based on the prior time’s actual prices and denoted with the superscript “error”. They are:
$$ {\text{S}}^{{{\text{error}}}}_{{{\text{t}} }} = {\text{ S}}_{{{\text{t}} - {1}}} * \, \left( {{\text{exp}}\left( {\left( {\sigma_{{{\text{err}}\_{\text{s}}}} *\Delta {\text{t}}^{{0.{5}}} } \right)* \epsilon_{{{\text{err}}\_{\text{s}}}} } \right) - {1}} \right) $$
(10)
$$ {\text{F}}^{{{\text{error}}}}_{{\text{t}}} = {\text{ F}}_{{{\text{t}} - {1}}} *\left( {{\text{exp}}\left( {\left( {\sigma_{{{\text{err}}\_{\text{f}}}} *\Delta {\text{t}}^{{0.{5}}} } \right)* \epsilon_{{{\text{err}}\_{\text{f}}}} } \right) - {1}} \right) $$
(11)
εerr_s and εerr_f are idiosyncratic Wiener process realization components of the spot and futures price changes, and their volatilities are σerr_s and σerr_f, respectively.
The time t actual spot and futures prices are:
$$ {\text{S}}_{{\text{t}}} {\text{ = S}}^{{{\text{theoretical}}}}_{{\text{t}}} {\text{ + S}}^{{{\text{error}}}}_{{\text{t}}} $$
(12)
$$ {\text{F}}_{{\text{t}}} {\text{ = F}}^{{{\text{theoretical}}}}_{{\text{t}}} {\text{ + F}}^{{{\text{error}}}}_{{\text{t}}} $$
(13)
Two baseline parameterization simulations are run: one where c’s long-run mean (μ) is positive and another where it is negative. For each baseline parameterization simulation, we also perform simulations incorporating ceteris paribus increases and decreases in each parameter. The tests performed on the real data (that were discussed in the body of the paper) are performed on the simulated data with the goal of assessing the test results’ robustness to data generated via alternative parameter specifications.
The baseline (positive long-run c mean) simulation’s parameterization is: c0 = 0.02, S0 = 50, σc = σs = 0.2, ϴ = 0.5, μ = 0.02, ρ = 0, and σerr_s = σerr_f = 0.02. For this parameterization’s simulated data, hT’s mean is 0.9692, its mean standard deviation is 0.0133, and its mean HE is 0.9611. These values are very similar to those from the real data. For each of the 1,000 runs, the average of the variable to be tested is determined; it is their: mean, standard deviation, count, T value, and P value across these 1000 runs that is reported in Tables. However, in the stationarity test, the β’s and γ’s significance levels are based on their values for each run averaged across the 1000 runs.
The test results based on the positive long-run c mean baseline simulated data (presented in Appendix Tables
Table 8 Test results based on data generated via the simulation’s baseline (positive long-run c mean) parameters 8 and 16A) are consistent with the paper’s real data test results. First, on average, hc is higher (by ≈ 0.0288) and less volatile (by ≈ 62%) than hT. Second, the negative correlation between the paired average c and hT is recovered, albeit inefficiently; while the correlation between the paired average c and hT had a mean and standard deviation of -0.4473 and 0.1335, respectively, the corresponding values for hc were about -0.954 and essentially 0, respectively. Third, the BAM is stationary. Fourth, hc and hc-BA reduce risk better than do hT and h1. With the exception of the time coefficient estimate in the BAM stationarity test which was expected to be and was found to be statistically insignificant, all the results are statistically significant at the 1% confidence level.
These positive long-run c mean baseline results also hold for data generated by ceteris paribus changes in the c0, S0, σc, σs, ϴ, μ, ρ, and σerr_s = σerr_f simulation parameter values (presented in Appendix Tables
Table 9 Test results based on data generated via from changing the baseline c0 input (0.02) by 0.01, ceteris paribus 9,
Table 10 Test results based on data generated from changing the baseline S0 input (50) to 100 and 10, respectively, ceteris paribus 10,
Table 11 Test results based on data generated from changing the baseline σc input (0.2) by 0.05, ceteris paribus 11,
Table 12 Test results based on data generated from changing the baseline σs input (0.2) by 0.05, ceteris paribus 12,
Table 13 Test results based on data generated from changing the baseline ϴ (c mean-reversion speed) input (0.5) by 0.15, ceteris paribus 13,
Table 14 Test results based on data generated from changing the baseline ρ, correlation(ct, St), input by 0.1, ceteris paribus 14,
Table 15 Test results based on data generated from changing the baseline σerr_s and σerr_f inputs (0.02) by 0.01, ceteris paribus Table 16 BAM Stationarity test results based on data generated for the positive long-run c mean baseline parameters and for ceteris paribus changes in the baseline parameters 15, 16). Tables 9 and 16, Panels A and B for each, show the results when c0 is increased and decreased by 0.01, respectively, from its baseline value of 0.02. Tables 3 and 9, Panels A and B for each, show the results when S0 is doubled and halved, respectively, from its baseline value of 50. Tables 4 and 9, Panels A and B for each, show the results when σc is increased and decreased by 0.05, respectively, from its baseline value of 0.2. Tables 5 and 9, Panels A and B for each, show the results when σs is increased and decreased by 0.05, respectively, from its baseline value of 0.2. Tables 6 and 9, Panels A and B for each, show the results when ϴ is increased and decreased by 0.15, respectively, from its baseline value of 0.5. Tables 7 and 9, Panels A and B for each, show the results when ρ is increased and decreased by 0.1, respectively, from its baseline value of 0. Tables 8 and 9, Panels A and B for each, show the results when σerr_s = σerr_f is increased and decreased by 0.01, respectively, from its baseline value of 0.02.
The negative long-run c mean baseline parameterization simulation and comparative static simulations are the same as the positive long-run c mean’s baseline, except for them: c0 = µ = − 0.02. For the negative long-run c mean baseline parameterization simulation, the mean hT is 0.9746; as expected, this is a little higher than it was for the above positive long-run c mean simulation (since hc is also higher than it was for the above positive long-run c mean simulation). The hT’s mean standard deviation = 0.0127 and its mean HE is 0.9625. These values nearly match their values for the data generated by the positive long-run c mean simulation.
The test results based on the negative long-run c mean baseline and comparative static simulation data (Appendix Tables
Table 17 Test results based on data generated from the simulation’s baseline negative long-run c mean parameters 17,
Table 18 A and B below show the test results based on data generated from changing the baseline c0 input (− 0.02) by 0.01, ceteris paribus 18,
Table 19 A and B below show test results based on data generated from changing the baseline S0 input (50) to 100 and 10, respectively, ceteris paribus 19,
Table 20 A and B below show test results based on data generated from changing the baseline σc input (0.2) by 0.05, ceteris paribus 20,
Table 21 A and B below show test results based on data generated from changing the baseline σs input (0.2) by 0.05, ceteris paribus 21,
Table 22 A and B below show test results based on data generated from changing the baseline ϴ input (0.5) by 0.15, ceteris paribus 22,
Table 23 A and B below show test results based on data generated from changing the baseline ρ, correlation (ct, St), input (0) by 0.1, ceteris paribus 23,
Table 24 A and B below show test results based on data generated from changing the baseline σerr_s and σerr_f inputs (0.02) by 0.01, ceteris paribus 24,
Table 25 A and B below show the BAM Stationarity test results based on data generated from the negative long-run c mean baseline parameters and for ceteris paribus changes in the parameters 25) are similar to those based on the positive long-run c mean simulations data. They are available upon request from the authors.
In summary, the real data test results also hold when applied to simulated data generated from a wide range of alternative simulation parameter specifications.
Appendix Tables 9, 10, 11, 12, 13, 14, 15, 16, show test results based on data generated via ceteris paribus changes to the positive long-run c mean baseline set of parameter inputs.