Correlation Matrix: Choose Windows Without Cherry-Picking
A practical Correlation Matrix lesson for comparing 60D, 90D, 180D, and 365D relationships as evidence windows before writing a desk note.
Educational only
The examples teach workflow and risk framing. They do not provide trade recommendations, personalized advice, leverage guidance, or guaranteed outcomes.
Chapter 01
Treat window length as a model assumption
Trader question
Which completed-history window built this relationship read?
A period setting is not decoration. It decides which aligned returns enter the sample, so the first safe habit is to name the window before interpreting the coefficient.
Desk checklist
- Name the active period before reading the cell.
- Treat the period as an assumption.
- Avoid copying a conclusion across windows.
Interactive proof
Matrix period control and period rail
Open the window lab and choose the period label that belongs in the desk note.
Window choice is part of the evidence. A short-term relationship that disagrees with the longer baseline becomes a review prompt, not a forecast.
Interactive desk lab
Correlation Window Lab
A practical Correlation Matrix window-comparison lab for toggling 60D, 90D, 180D, and 365D reads, spotting cherry-pick risk, and writing a cautious pause reason.
A practical Correlation Matrix window-comparison lab for toggling 60D, 90D, 180D, and 365D reads, spotting cherry-pick risk, and writing a cautious pause reason.
Window as an assumption
Four period cards appear as assumptions, not proof buttons.
A relationship question opens above an empty desk note.
60D, 90D, 180D, and 365D cards stack in sequence.
Each card stamps a different sample label on the same pair.
The final frame says: period belongs in the note.
Remotion code
CorrelationWindowAssumptionStackVideo
The snippet is stored with the lesson so a future Remotion project can render the chapter video.
Show component snippet
import {AbsoluteFill, Easing, Sequence, interpolate, useCurrentFrame} from "remotion";
const windows = ["60D", "90D", "180D", "365D"];
export const CorrelationWindowAssumptionStackVideo = () => {
const frame = useCurrentFrame();
return (
<AbsoluteFill style={{background: "#fff8e8", color: "#071126", padding: 72}}>
<h1 style={{fontSize: 56, lineHeight: 1}}>The period is an assumption.</h1>
<p style={{fontSize: 26, color: "#5c6576", maxWidth: 820}}>The same pair can answer different questions when the window changes.</p>
<div style={{marginTop: 54, display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 14}}>
{windows.map((item, index) => {
const progress = interpolate(frame, [index * 18, index * 18 + 18], [0, 1], {extrapolateLeft: "clamp", extrapolateRight: "clamp", easing: Easing.bezier(0.16, 1, 0.3, 1)});
return <div key={item} style={{opacity: progress, transform: "translateY(" + (28 - progress * 28) + "px)", border: "2px solid #ad862d", background: "#fffdf7", padding: 24, minHeight: 150}}>
<span style={{fontSize: 18, color: "#805407", fontWeight: 900}}>Window</span>
<strong style={{display: "block", fontSize: 52, marginTop: 12}}>{item}</strong>
<span style={{display: "block", color: "#5c6576", fontSize: 18}}>sample label</span>
</div>;
})}
</div>
<Sequence from={88} layout="none">
<div style={{marginTop: 34, background: "#071126", color: "#fff8e8", padding: 22, fontSize: 28, fontWeight: 900}}>Desk note must say which window built the read.</div>
</Sequence>
</AbsoluteFill>
);
};Sources used for this tutorial
Next step
Open the tool with the checklist beside you.
Move from the lesson into the matching Bullion Brains tool, keep the checklist visible, and treat the output as evidence until the caveats are clear.