Statistics
What this model is and how it is evaluated
A graph neural network passes messages between nodes along edges and learns how much each neighbour matters (attention). Here the nodes are views of the market at one decision time: XAUUSD and GC at four scales (rolling windows of 1, 5, 15 and 60 one-minute bars: the last six returns in ATR units, the range of the last six windows, the position inside the last twenty, the distance from their mean; GC nodes also carry a volume z-score and a signed-volume share), a basis node (change of GC − XAUUSD over 5 to 240 minutes and its z-score) and a clock node (New York time of day, weekday, session). Edges connect the scales of one instrument, XAUUSD to GC at the same scale, the basis to every instrument node, and the clock to everything. Two rounds of multi-head attention update every node; the GC 1-minute node and the mean of all nodes feed the output: the predicted change of GC over the horizon, in units of GC's 1-minute ATR.
Every feature is computed from bars up to the decision only; the target is GC's close change from that bar to the bar one horizon later. Decisions on either side of a contract roll, or whose windows would span one, are dropped, and so is any training decision whose horizon reaches into the validation period (and validation into test). Features are standardised with training-period statistics. Training minimises a Huber loss with Adam; the validation period picks the best epoch and stops training early; the test period is scored once, after the fact. The same seed gives the same weights, and yarn gnn:check proves the causality, the roll handling, the purging and that the network learns a synthetic lead–lag structure but not shuffled targets.
IC is the rank correlation between predictions and outcomes: 0 is no information, 0.05 is respectable for minute data, 0.2 would be remarkable. The decile table shows whether higher predictions really came with higher outcomes. The trade simulation enters at the decision's bar open (the last completed close), holds for the horizon and charges the Config fees and slippage plus an assumed spread, because bars have no order book; latency is not modelled, so treat it as an upper bound. A test period of a few months is a small sample: a positive IC in every month matters more than the total. XAUUSD here is IBKR's spot quote, GC the stitched continuous future; the databases update when thirdeye fetches, so the last day is the last day fetched.