Standard error (SE) measures the sampling variability of an aggregate measurement such as a mean. A single execution-cost measurement can give conflicting exchange choices; replication reduces that instability by averaging many individual measurements. The estimated SE of an aggregate is sd_1 / sqrt(num_ind), where sd_1 is the standard deviation of individual measurements and num_ind is their count. More observations make the aggregate distribution narrower and its SE smaller. section 2.2.1 section 2.3.2
Estimating execution-cost uncertainty
Collect 300 execution-cost observations for each exchange, compute each mean, then compute its individual-measurement standard deviation and divide by sqrt(300). The resulting pair reports both estimated cost and its sampling uncertainty: ASDAQ yields about 12.00 mips with SE 0.060, while BYSE yields about 10.05 mips with SE 0.057. The SE describes uncertainty in each mean, not the spread of individual trade costs. section 2.2.1
For a comparison, propagate the uncertainty of two aggregate measurements as se_delta = sqrt(se_byse**2 + se_asdaq**2), with delta defined as the BYSE mean minus the ASDAQ mean. Dividing delta by se_delta produces a z score used to judge whether an observed difference is sufficiently far from zero under the equal-expectation assumption. section 2.3.1
Use SE operationally to control measurement precision:
- Choose replication counts: sample-size calculations use SE to ensure a practically significant execution-cost difference can become statistically significant. section 2.3.2
- Plan for power: a stricter design increases the required observations, using the combined individual-measurement variability and practical-significance target. section 2.3.2
- Compare response-surface measurements: take many individual observations at each threshold so error bars on aggregate profit are small, while limiting the number of threshold settings measured. section 4.1.2
Listing 2.5 Aggregate measurement with SE
def aggregate_measurement_with_se(exchange, num_individual_measurements):
individual_measurements = np.array(
[trading_system(exchange) for _ in range(num_individual_measurements)]
) #1
aggregate_measurement = individual_measurements.mean() #2
sd_1 = individual_measurements.std() #3
se = sd_1 / np.sqrt(num_individual_measurements) #3
return aggregate_measurement, se
The function computes an aggregate mean, estimates the standard deviation of its individual measurements, and returns the mean with SE scaled by the square root of the sample count. section 2.2.1

