(function(){
var COOKIE_NAME = 'menthorq_utm_params';
var LS_KEY = 'menthorq_utm_params';
var UTM_KEYS = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content','utm_id'];
var CLICK_ID_KEYS = ['gclid','fbclid','msclkid','ttclid'];
var COOKIE_DAYS = 30;// Read UTM parameters and click IDs from current URL
var params = new URLSearchParams(window.location.search);
var trackingData = {};
var hasData = false;
var allKeys = UTM_KEYS.concat(CLICK_ID_KEYS);
for (var i = 0; i < allKeys.length; i++) {
var val = params.get(allKeys[i]);
if (val) {
trackingData[allKeys[i]] = val;
hasData = true;
}
}if (hasData) {
// Fresh tracking data found in URL — store it (overwrites previous attribution)
trackingData.captured_at = new Date().toISOString();
setCookie(COOKIE_NAME, JSON.stringify(trackingData), COOKIE_DAYS);
try { localStorage.setItem(LS_KEY, JSON.stringify(trackingData)); } catch(e) {}
return;
}// No tracking params in URL — check if cookie exists
if (getCookie(COOKIE_NAME)) return;// Cookie is missing (expired or first visit) — try to restore from localStorage
try {
var stored = localStorage.getItem(LS_KEY);
if (stored) {
var parsed = JSON.parse(stored);
if (parsed && (parsed.utm_source || parsed.gclid || parsed.fbclid || parsed.msclkid || parsed.ttclid)) {
setCookie(COOKIE_NAME, stored, COOKIE_DAYS);
}
}
} catch(e) {}// Helper: set cookie
function setCookie(name, value, days) {
var expires = new Date(Date.now() + days * 864e5).toUTCString();
var cookie = name + '=' + encodeURIComponent(value) + ';expires=' + expires + ';path=/;SameSite=Lax';
if (location.protocol === 'https:') cookie += ';Secure';
document.cookie = cookie;
}// Helper: get cookie value (returns empty string if not found)
function getCookie(name) {
var match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
return match ? decodeURIComponent(match[1]) : '';
}
})();
var breeze_prefetch = {"local_url":"https://menthorq.com","ignore_remote_prefetch":"1","ignore_list":["/wp-json/openid-connect/userinfo","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
The futures curve is your structural foundation. It tells you the cost or reward of holding a long or short position through time. The key concept here is carry, the profit or drag associated with rolling your position forward.
There are two main curve shapes:
Backwardation: Near-term contracts are priced higher than deferred ones.
This is a tailwind for long positions.
Rolling a long position earns yield as you sell high and buy lower.
Suggests near-term tightness in supply (e.g., inventory draws, strong demand).
Contango: Near-term contracts are priced lower than deferred ones.
This is a headwind for long positions.
Rolling a long position loses money (negative roll yield).
Implies weak immediate demand or storage overhang.
To measure carry, calculate the average of the front 3–6 month spreads (e.g., CL1–CL2, CL2–CL3, CL3–CL4). A positive average suggests long bias is rewarded. A negative average implies staying flat or looking short.
This curve shape doesn’t tell you where price is going tomorrow, but it helps you filter directional setups. It answers the question: “Is this a market that rewards longs or punishes them?”
Step Two: Follow the Flows, Not Just the Labels
CFTC positioning reports are often misunderstood. Traders get caught up in net long vs net short numbers, but the real edge is in watching how fast the flows are changing.
The weekly Commitment of Traders (COT) report breaks down open interest across categories like:
But these labels are fuzzy in oil. Banks might appear under “swap dealers” but could be carrying both airline hedges and investor exposure. What matters more than the label is the speed of trading.
Here’s what matters:
Fast money: Trend-following funds, CTAs, and algo traders. These groups move quickly with momentum and often drive short-term volatility.
Slow money: Long-only investors, large hedgers. These groups shift more gradually and tend to follow fundamental changes.
Other traders: Often retail or small participants, historically the least profitable group in oil.
Watch weekly changes in positioning, especially from the fast money group. A sharp build in longs from CTAs alongside rising prices often confirms strength. But when that same group hits extreme positioning, the risk of reversal grows.
The weekly flow gives you a crowd signal, not to trade blindly, but to assess where the leverage is. Are traders chasing or fading? Is there fuel left in the trend or are we stretched?
Step Three: Anchor to a Catalyst
The final leg of the framework is narrative. What is the dominant macro story that the market is trading?
Common catalysts include:
OPEC+ decisions or surprises
Inventory data (API/EIA draws and builds)
Central bank policy shifts (affecting the dollar)
War, sanctions, or weather disruptions
Refinery outages or maintenance
Global demand shocks (e.g., China reopening)
Why is narrative important? Because it determines how traders interpret the same data.
For example:
A 3 million barrel draw during a bullish narrative (tight market, strong demand) could spike prices $3.
The same draw during a bearish macro (recession risk) might be ignored or faded.
The narrative acts as a magnifier or dampener. It tells you whether positioning and structure are likely to work with or against you.
A strong narrative layered on top of bullish structure and light positioning? That’s a high-conviction long.
A weak narrative on top of crowded longs and flat curve? That’s a market prone to reversal.
How to Combine the Three
Here’s how traders often use this framework in practice:
1. Filter with Curve
First, assess the carry regime:
Is the curve in backwardation (tailwind for longs)?
Is the curve in contango (headwind)?
This shapes your default bias. In backwardation, be open to long setups. In contango, stay nimble or flat.
2. Check Positioning Flows
Next, look at weekly COT changes:
Are fast money flows accelerating into the trend? That supports continuation.
Are they hitting extremes? That increases reversal risk.
Are they flipping (net selling)? Watch for trend change.
This gives you a sentiment read who’s long, who’s trapped, who’s waiting.
3. Layer in Catalyst
Finally, ask: what’s the story?
Is there a reason for trend to extend?
Are we heading into a high-impact data point?
Are headlines supporting or contradicting the structural read?
This gives you timing context when to size up, fade, or wait.
An Example: Applying the Framework
Let’s say:
Brent curve is in backwardation by +$0.60 (carry tailwind).
Price is trending above the 200-day moving average (momentum).
CFTC shows fast money adding to longs, but still below extreme levels.
The dominant story is OPEC+ maintaining cuts and China refining runs are high.
In this case:
Carry supports long bias
Positioning has room to build
Narrative aligns with structural tightness
This is a setup where traders may lean into long exposure, using dips to enter or pyramiding risk with confirmation.