Actionable Analysis on Equities, Energies, Ags, Metals, & Other Critical Assets
No Fear of Crude Oil Tariffs
Last week, we outlined how the United States has become the world’s largest crude oil producer and a net exporter of crude oil and petroleum products since 2020. The Trump administration’s newly implemented—though postponed—10% tariff on crude oil imports from Canada could disrupt this balance, prompting a deeper dive into the data.
As for prices, the market appears to have shrugged off the tariff threat, but complacency may be premature.
Despite being the world’s largest crude oil producer, the US still relies on crude oil imports—primarily from Canada—to sustain its domestic production and petroleum exports, such as gasoline and diesel. On average, around 50% to 60% of US crude oil and petroleum product imports come from Canada. This crude is refined into gasoline and other fuels for both domestic consumption and export. Without these imports, the US fuel market would be significantly tighter, leading to higher prices. To function effectively, Trump’s “Drill, Baby, Drill” mantra would require expanded refinery capacity and looser regulations to bring down fuel prices.
On a global scale, approximately 40% of US petroleum exports are crude oil, with the remaining 60% consisting of refined products. The US export market is diverse, with around 20% of shipments destined for China and Mexico (roughly 10% each), while the remaining 80% is spread across more than 140 countries.
Meanwhile, Canada lacks the export flexibility that the US enjoys. Around 80% of Canadian crude production is exported, with the majority transported to the US via pipeline. While recent pipeline expansions in western Canada have opened access to new markets—primarily China—shipping via tankers remains costly and time-consuming. Pipeline exports to the US remain the most efficient means of getting Canadian crude to market.
Ultimately, the US’s position as a net petroleum exporter hinges on its refining capacity, while Canada has limited alternative markets for its crude. Tariffs could therefore lead to tighter markets and higher fuel and crude oil prices both in the US and globally. Cooler heads must prevail.
Corn Bullish Yet Rangebound?
CME corn prices rallied this week after the Trump administration announced a one-month postponement of its import tariffs on Mexican goods. Looking ahead, the corn market could face heightened volatility in the coming months due to trade tensions and fluctuating global stock levels. That said, prices may remain range-bound for some time.
The drought in Brazil has been a key driver of the corn price rally in early 2025. This supply concern has likely contributed to money managers—key speculators in grain markets and major influences on price direction—steadily building their largest net long position since mid-2022. In what appears to be a preemptive move to mitigate trade war risks, US corn importers—primarily Mexico—have purchased above-average volumes in recent months, further supporting bullish sentiment.
Brazilian farmers are currently planting the country’s second corn crop, which typically accounts for around 80% of total production. Despite ongoing drought conditions, a strong harvest in June and July remains possible if timely rains arrive. Brazil’s corn exports to Mexico have increased in recent years and could help offset any shortfall if US exporters are locked out of the Mexican market.
In the US, stockpiles could rise sharply if export demand weakens. As for the upcoming growing season, American farmers are unlikely to make significant acreage shifts between crops (e.g., from corn to soybeans or wheat) due to trade uncertainty. Planting decisions are generally based on agronomics and profitability, with commitments made months in advance. Assuming normal weather conditions, a strong 2025/26 harvest could further inflate stockpiles. An initially bullish outlook could quickly turn bearish if supply continues to outpace demand.
Seasonally, corn prices tend to bottom in late August or September before rising into the US planting season. Apart from a brief dip in October, the current rally has followed this pattern closely. While early 2025’s price gains could extend further, technical resistance remains a concern.
Although speculators typically focus on prompt-month contracts, examining the “new-crop” December 2025 contract offers insight into longer-term market trends. As shown in the chart above, the $5/bushel level has been a key resistance point since early 2024. Should the market pull back, the $4.25/bushel level is likely to serve as strong support. Traders should remain cautious, particularly if prices break through key resistance or support levels.
Gold Catches A Bid
After months of stagnation, gold prices rallied through January and early February, reaching a new all-time high this week. Gold and the US dollar typically move inversely, but that correlation has weakened in recent weeks as investors seek “safe-haven” assets amid escalating trade tensions and economic uncertainty.
While we would not advise betting against gold’s uptrend, it is worth noting that its inverse relationship with the US dollar rarely remains disrupted for long. More importantly, there is no clear way to predict how or when this relationship will realign.
Aluminum Flutters
Aluminum prices remain range-bound, but the Trump administration’s newly implemented 25% import tariff on Canadian aluminum could tighten supply and push prices higher. Last year, Canada accounted for around 50%—or 2.9 million metric tonnes—of US aluminum imports. Historically, nearly 90% of Canada’s aluminum exports are shipped to the US.
As we noted a few weeks ago, the tariff is unlikely to eliminate Canadian aluminum imports entirely, but it may force producers to seek alternative export markets. With the global manufacturing sector contracting, Canadian aluminum producers would likely need to offer steep discounts to non-US buyers to remain competitive. As a result, while the tariffs could provide short-term bullish momentum, they may ultimately prove bearish for the global aluminum market in the longer term.
Speculators and hedgers should approach aluminum trading with caution. While both the CME and LME offer aluminum contracts, the LME futures and options market provides greater liquidity and open interest than the CME.
Coffee on the Boil
Coffee prices have soared since early 2024, driven largely by a severe El Niño-induced drought in top producer Brazil. According to the Brazilian Coffee Exporters Council, the country exported a record 50.4 million 60-kg bags last year, further fuelling the price rally. A sharp depreciation in the Brazilian real—now hovering near all-time lows—has likely contributed to rising prices and export volumes.
There are signs, however, that high prices are beginning to curb demand. After several months of record shipments in late 2024, Brazilian coffee exports fell by more than 8% year-on-year in December. Meanwhile, new EU import regulations, originally set to take effect on 1 January, have been postponed until the end of 2025, potentially easing demand pressures in the near term.
That said, when a market enters a parabolic phase, traditional technical analysis often becomes irrelevant. Fear and greed can drive prices to extremes that defy supply and demand fundamentals. Speculative traders may be best advised to stay on the sidelines until market conditions stabilise, while hedgers should exercise caution—potentially favouring non-marginable positions via ICE options.
Trading futures and options involves the risk of loss. Please consider carefully whether futures or options are appropriate to your financial situation. Only risk capital should be used when trading futures or options. You must review the customer account agreement before establishing an account. Investors could lose more than their initial investment. You must review the customer account agreement prior to establishing an account. Past results are not necessarily indicative of future results. The risk of loss in trading can be substantial, carefully consider the inherent risks of such an investment in light of your financial condition.
High Risk Investment Trading foreign exchange on margin carries a high level of risk, and may not be suitable for all investors. Before deciding to trade foreign exchange, you should carefully consider your investment objectives, level of experience, and risk appetite. The possibility exists that you could sustain a loss of some or all of your investment, and therefore, you should not invest money that you cannot afford to lose. You should be aware of all the risks associated with foreign exchange trading and seek advice from an independent financial advisor if you have any doubts.
Market Opinions Any opinions, news, research, analyses, prices, or other information contained on this website is provided as general market commentary and does not constitute investment advice. LiveSquawk and Global News Services, Ltd will not accept liability for any loss or damage, including without limitation to, any loss of profit, which may arise directly or indirectly from use of or reliance on such information.
Accuracy of Information The content on this website is subject to change at any time without notice and is provided for the sole purpose of assisting traders to make independent investment decisions. LiveSquawk and Global News Services, Ltd have taken reasonable measures to ensure the accuracy of the information on the website, however, does not guarantee its accuracy and will not accept liability for any loss or damage which may arise directly or indirectly from the content or your inability to access the website, for any delay in or failure of the transmission or the receipt of any instruction or notifications sent through this website.
Distribution This site is not intended for distribution or use by any person in any country where such distribution or use would be contrary to local law or regulation. None of the services or investments referred to in this website are available to persons residing in any country where the provision of such services or investments would be contrary to local law or regulation. It is the responsibility of visitors to this website to ascertain the terms of and comply with any local law or regulation to which they are subject.
/*jshint esversion: 6 */
var socket;
var assigned_server = 3001;
var distributor_server = 3010;
var publisher_channel = '';
var broadcaster_channel = '';
var remote_ip = '';
var session_info = {};
var logging_interval;
var logging_interval_time = 120000;
var socket_emits = 0;
var session_start_time;
var reconnectionDelayGrowFactor = 1.2;
var reconnection_delay = 1000;
var playing = false;
var connected_to_assigned = false;
var socket_close_timeout;
var player_disconnected_annoucement_play_delay = 1500;
var player_disconnected_annoucement_play_timeout = null;
self.onmessage = function (msg) {
switch(msg.data.action) {
case 'Reactivate': reactivate(); break;
case 'ConnectDistributor': connect_to_distributor(msg); break;
case 'SessionStaticInfo': session_static_info(msg); break;
case 'SessionInfo': update_session_info(msg.data); break;
case 'PauseLogging': clearTimeout(logging_interval); break;
case 'RestartLogging': postMessage({action: 'RequestSessionStaticInfo' }); break;
case 'JoinPublisherChannel': join_publisher_channel(msg.data); break;
case 'JoinPlayerChannel': join_player_channel(msg.data); break;
case 'CheckChannelStatus': check_channel_status(msg.data); break;
case 'PlayerLogResponse': player_log_response(msg.data); break;
case 'CloseSocket': close_socket(); break;
case 'RequestMessageSearch': request_message_search(msg.data); break;
case 'RequestMoreMessages': request_more_messages(msg.data); break;
case 'PlayerDisconnectedAnnoucementTimeoutStart': player_disconnected_annoucement_timeout_start(); break;
case 'PlayerDisconnectedAnnoucementTimeoutClear': player_disconnected_annoucement_timeout_clear(); break;
}
};
function player_disconnected_annoucement_timeout_clear() {
clearTimeout(player_disconnected_annoucement_play_timeout);
player_disconnected_annoucement_play_timeout = null;
}
function player_disconnected_annoucement_timeout_start() {
player_disconnected_annoucement_play_timeout = setTimeout(function() { send_play_disconnect_annoucement(); }, player_disconnected_annoucement_play_delay );
}
function send_play_disconnect_annoucement() {
postMessage({action: "PlayDisconnectAnnoucement"});
}
function reactivate() {
playing = false;
connect_to_assigned_server();
}
function player_log_response(data) {
var data_array = {};
data_array.type = 'PlayerLogResponse';
data_array.respond_to_socket_final = data.respond_to_socket_final;
data_array.respond_to_socket = data.respond_to_socket;
data_array.player_socket_id = data.player_socket_id;
data_array.logs = data.logs;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function request_message_search(data) {
var data_array = {};
data_array.type = 'request_message_search';
data_array.publisher_channel = data.publisher_channel;
data_array.search_term = data.search_term;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function request_more_messages(data) {
var data_array = {};
data_array.type = 'request_more_messages';
data_array.publisher_channel = data.publisher_channel;
data_array.last_record_id = data.last_record_id;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function check_channel_status(data) {
var data_array = {};
data_array.type = 'check_channel_status';
data_array.app_name = data.app_name;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1 && connected_to_assigned) { socket.send(msg_string); }
else { setTimeout(function() { check_channel_status(data); },500); }
}
function check_channel_status_response(data) {
postMessage({ action: 'CheckChannelStatusReponse', stream_status: data.stream_status.status, onair: data.stream_status.onair, connected: data.stream_status.connected });
}
function join_publisher_channel(data) {
var data_array = {};
data_array.type = 'join_publisher_channel';
if (typeof data.api_key !== 'undefined') { data_array.api_key = data.api_key; }
else {
data_array.publisher_channel = data.publisher_channel;
data_array.username = data.username;
data_array.subscriber_group = data.subscriber_group;
data_array.display_name = data.display_name;
data_array.single_sign_on = data.single_sign_on;
data_array.remote_ip = data.remote_ip;
data_array.http_referrer = data.http_referrer;
data_array.current_page = data.current_page;
data_array.php_session_id = data.php_session_id;
data_array.from_react = data.from_react;
}
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) {
socket.send(msg_string); }
postMessage({action: 'PublisherChannelJoined' });
}
function session_static_info(msg) {
set_static_session_info(msg.data);
start_log();
}
function connect_to_distributor(msg) {
publisher_channel = msg.data.publisher_channel;
remote_ip = msg.data.remote_ip;
socket = new WebSocket("wss://ws.livesquawk.com/ws"+distributor_server);
socket.onopen = function(event) { request_server_assignment(); };
socket.onmessage = function(event) {
var msg_string = event.data.toString();
var data = JSON.parse(msg_string);
switch(data.type) {
case 'server_assignment_response': server_assignment_response(data); break;
}
};
}
function session_info_interval() {
postMessage({action: 'RequestSessionInfo' });
logging_interval = setTimeout(session_info_interval,logging_interval_time);
}
function server_assignment_response(data) {
assigned_server = data.selected_server;
socket.close();
connect_to_assigned_server();
}
function request_server_assignment() {
var data_array = {};
data_array.type = 'request_server_assignment';
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function connect_to_assigned_server() {
socket = new WebSocket("wss://ws.livesquawk.com/ws"+assigned_server);
socket.onopen = function(event) {
postMessage({ action: 'VisibleConsole',console_string: "Connected to server "+assigned_server });
console.log("Connected to server "+assigned_server);
postMessage({ action: 'ConnectedToAssigned' });
connected_to_assigned = true;
if (playing) {
postMessage({ action: 'RejoinPlayerChannel' });
}
};
socket.onmessage = function(event) {
var msg_string = event.data.toString();
var data = JSON.parse(msg_string);
if (data.type != 'server_ping') { /* console.log(data.type); */ }
switch(data.type) {
case 'reconnect': postMessage({ action: 'VisibleConsole',console_string: "Reconnected" }); break;
case 'reload': postMessage({ action: 'Reload' }); break;
case 'start_log_response': start_log_response(data); break;
case 'application_refresh_start': application_refresh_start(data); break;
case 'application_refresh_stop': application_refresh_stop(data); break;
case 'player_log_request':
case 'check_channel_status_response': check_channel_status_response(data); break;
case 'PlayerLogRequest':
case 'new_tweet':
case 'new_latest_news':
case 'delete_report':
case 'add_report':
case 'add_ref_doc':
case 'calendar_change':
case 'calendar_insert':
case 'calendar_delete':
case 'new_note':
case 'AppStart':
case 'AppStop':
case 'BroadcasterStarted':
case 'BroadcasterStopped':
case 'added_cme_report':
case 'updated_cme_report':
case 'added_cme_commentary':
case 'updated_cme_commentary':
case 'server_assignment_response':
case 'initial_messages':
case 'message_categories':
case 'more_messages':
case 'matched_messages':
pass_straight_to_post_message(data);
break;
case 'output':
case 'server_ping':
case 'reconnect':
case 'disconnect':
break;
}
};
socket.onerror = function(event) {
postMessage({ action: 'VisibleConsole',console_string: "LS Socket Error" + event.type });
console.log(event);
postMessage({ action: 'LSSocketConnectionError' });
};
socket.onclose = function(event) {
console.log('Socket is closed. Reconnect will be attempted in 1 second.', event.reason);
socket_close_timeout = setTimeout(connect_to_assigned_server, reconnection_delay);
reconnection_delay = reconnection_delay*reconnectionDelayGrowFactor;
connected_to_assigned = false;
};
}
function close_socket() {
clearTimeout(socket_close_timeout);
socket_close_timeout = null;
socket.onclose = function(event) {};
socket.onmessage = function(event) {};
socket.onerror = function(event) {};
socket.close(1000);
console.log('Socket Closed');
}
function pass_straight_to_post_message(data) {
data.action = data.type;
postMessage(data);
}
function join_player_channel(data) {
var data_array = {};
data_array.type = 'join_player_channel';
data_array.player_channel = data.player_channel;
data_array.remote_ip = data.remote_ip;
data_array.username = data.username;
data_array.app_name = data.app_name;
data_array.onair_status = data.onair_status;
data_array.http_referrer = data.http_referrer;
data_array.current_page = data.current_page;
data_array.php_session_id = data.php_session_id;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
postMessage({action: 'PlayerChannelJoined' });
playing = true;
}
function start_log_response(data) {
session_info.session_id = data.log_record_id;
session_info_interval();
}
function application_refresh_start(data) {
if (data.app_name == session_info.application_name) { postMessage({action: 'ApplicationRefreshStart' }); }
}
function application_refresh_stop(data) {
if (data.app_name == session_info.application_name) { postMessage({action: 'ApplicationRefreshStop' }); }
}
function set_static_session_info(data) {
session_info.browser_codename = data.browser_codename;
session_info.browser_name = data.browser_name;
session_info.user_agent = data.user_agent;
session_info.browser_version = data.browser_version;
session_info.cookies_enabled = data.cookies_enabled;
session_info.platform = data.platform;
session_info.player_version = data.player_version;
session_info.stream = data.stream;
session_info.connection_protocol = data.protocol;
session_info.delay_target = data.delay_target;
session_info.session_email = data.session_email;
session_info.remote_ip = data.remote_ip;
session_info.php_session_id = data.php_session_id;
session_info.application_name = data.application_name;
session_info.http_referrer = data.http_referrer;
}
function start_log() {
var session_start_date = new Date();
session_start_time = session_start_date.getTime();
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var session_start_date_string = session_start_date.getDate() + " " + months[session_start_date.getMonth()] + " " + session_start_date.getFullYear();
var data_array = {};
data_array.type = 'webrtc_start_log';
data_array.remote_ip = session_info.remote_ip;
data_array.username = session_info.session_email;
data_array.php_session_id = session_info.php_session_id;
data_array.webrtc_protocol = '';
data_array.session_start_time = (session_start_time/1000).toFixed(0);
data_array.stream_name = session_info.stream;
data_array.session_start_date = session_start_date_string;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function update_session_info(data) {
var data_array = {};
var msg_string = '';
var current_date = new Date();
var current_time = current_date.getTime();
session_info.protocol = data.protocol;
session_info.curr_delay = (data.effective_latency / 1000).toFixed(2);
session_info.session_length = current_time - session_start_time;
session_info.ping_time = data.ping_time;
session_info.jitter = data.jitter;
session_info.packet_loss = data.packet_loss;
session_info.effective_latency = data.effective_latency;
session_info.mean_opinion_score = data.mean_opinion_score;
session_info.restarts = data.restarts;
if (socket_emits == 0) {
data_array = {};
data_array.type = 'webrtc_log_data_full';
data_array.connection_protocol = session_info.protocol;
data_array.threshold = 0;
data_array.curr_delay = session_info.curr_delay;
data_array.session_length = session_info.session_length;
data_array.date = current_time;
data_array.browser_codename = session_info.browser_codename;
data_array.browser_name = session_info.browser_name;
data_array.user_agent = session_info.user_agent;
data_array.browser_version = session_info.browser_version;
data_array.cookies_enabled = session_info.cookies_enabled;
data_array.platform = session_info.platform;
data_array.player_version = session_info.player_version;
data_array.stream = session_info.stream;
data_array.restarts = session_info.restarts;
data_array.delay_target = 0;
data_array.op_sys = '';
data_array.flash_version = '';
data_array.remote_ip = session_info.remote_ip;
data_array.http_referrer = session_info.http_referrer;
data_array.php_session_id = session_info.php_session_id;
data_array.user_email = session_info.session_email;
data_array.webrtc_protocol = session_info.protocol;
data_array.ping_time = session_info.ping_time;
data_array.jitter = session_info.jitter;
data_array.packet_loss = session_info.packet_loss;
data_array.effective_latency = session_info.effective_latency;
data_array.mean_opinion_score = session_info.mean_opinion_score;
data_array.session_id = session_info.session_id;
msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
else {
data_array = {};
data_array.type = 'webrtc_log_data';
data_array.session_id = session_info.session_id;
data_array.php_session_id = session_info.php_session_id;
data_array.connection_protocol = session_info.protocol;
data_array.restarts = session_info.restarts;
data_array.threshold = 0;
data_array.curr_delay = session_info.curr_delay;
data_array.session_length = session_info.session_length;
data_array.date = current_time;
data_array.webrtc_protocol = session_info.protocol;
data_array.ping_time = session_info.ping_time;
data_array.jitter = session_info.jitter;
data_array.packet_loss = session_info.packet_loss;
data_array.effective_latency = session_info.effective_latency;
data_array.mean_opinion_score = session_info.mean_opinion_score;
data_array.stream = session_info.stream;
msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
socket_emits++;
if (socket_emits == 100) { socket_emits = 0; }
}
Actionable Analysis on Equities, Energies, Ags, Metals, & Other Critical Assets
Last week, we outlined how the United States has become the world’s largest crude oil producer and a net exporter of crude oil and petroleum products since 2020. The Trump administration’s newly implemented—though postponed—10% tariff on crude oil imports from Canada could disrupt this balance, prompting a deeper dive into the data.
As for prices, the market appears to have shrugged off the tariff threat, but complacency may be premature.
Despite being the world’s largest crude oil producer, the US still relies on crude oil imports—primarily from Canada—to sustain its domestic production and petroleum exports, such as gasoline and diesel. On average, around 50% to 60% of US crude oil and petroleum product imports come from Canada. This crude is refined into gasoline and other fuels for both domestic consumption and export. Without these imports, the US fuel market would be significantly tighter, leading to higher prices. To function effectively, Trump’s “Drill, Baby, Drill” mantra would require expanded refinery capacity and looser regulations to bring down fuel prices.
On a global scale, approximately 40% of US petroleum exports are crude oil, with the remaining 60% consisting of refined products. The US export market is diverse, with around 20% of shipments destined for China and Mexico (roughly 10% each), while the remaining 80% is spread across more than 140 countries.
Meanwhile, Canada lacks the export flexibility that the US enjoys. Around 80% of Canadian crude production is exported, with the majority transported to the US via pipeline. While recent pipeline expansions in western Canada have opened access to new markets—primarily China—shipping via tankers remains costly and time-consuming. Pipeline exports to the US remain the most efficient means of getting Canadian crude to market.
Ultimately, the US’s position as a net petroleum exporter hinges on its refining capacity, while Canada has limited alternative markets for its crude. Tariffs could therefore lead to tighter markets and higher fuel and crude oil prices both in the US and globally. Cooler heads must prevail.
CME corn prices rallied this week after the Trump administration announced a one-month postponement of its import tariffs on Mexican goods. Looking ahead, the corn market could face heightened volatility in the coming months due to trade tensions and fluctuating global stock levels. That said, prices may remain range-bound for some time.
The drought in Brazil has been a key driver of the corn price rally in early 2025. This supply concern has likely contributed to money managers—key speculators in grain markets and major influences on price direction—steadily building their largest net long position since mid-2022. In what appears to be a preemptive move to mitigate trade war risks, US corn importers—primarily Mexico—have purchased above-average volumes in recent months, further supporting bullish sentiment.
Brazilian farmers are currently planting the country’s second corn crop, which typically accounts for around 80% of total production. Despite ongoing drought conditions, a strong harvest in June and July remains possible if timely rains arrive. Brazil’s corn exports to Mexico have increased in recent years and could help offset any shortfall if US exporters are locked out of the Mexican market.
In the US, stockpiles could rise sharply if export demand weakens. As for the upcoming growing season, American farmers are unlikely to make significant acreage shifts between crops (e.g., from corn to soybeans or wheat) due to trade uncertainty. Planting decisions are generally based on agronomics and profitability, with commitments made months in advance. Assuming normal weather conditions, a strong 2025/26 harvest could further inflate stockpiles. An initially bullish outlook could quickly turn bearish if supply continues to outpace demand.
Seasonally, corn prices tend to bottom in late August or September before rising into the US planting season. Apart from a brief dip in October, the current rally has followed this pattern closely. While early 2025’s price gains could extend further, technical resistance remains a concern.
Although speculators typically focus on prompt-month contracts, examining the “new-crop” December 2025 contract offers insight into longer-term market trends. As shown in the chart above, the $5/bushel level has been a key resistance point since early 2024. Should the market pull back, the $4.25/bushel level is likely to serve as strong support. Traders should remain cautious, particularly if prices break through key resistance or support levels.
After months of stagnation, gold prices rallied through January and early February, reaching a new all-time high this week. Gold and the US dollar typically move inversely, but that correlation has weakened in recent weeks as investors seek “safe-haven” assets amid escalating trade tensions and economic uncertainty.
While we would not advise betting against gold’s uptrend, it is worth noting that its inverse relationship with the US dollar rarely remains disrupted for long. More importantly, there is no clear way to predict how or when this relationship will realign.
Aluminum prices remain range-bound, but the Trump administration’s newly implemented 25% import tariff on Canadian aluminum could tighten supply and push prices higher. Last year, Canada accounted for around 50%—or 2.9 million metric tonnes—of US aluminum imports. Historically, nearly 90% of Canada’s aluminum exports are shipped to the US.
As we noted a few weeks ago, the tariff is unlikely to eliminate Canadian aluminum imports entirely, but it may force producers to seek alternative export markets. With the global manufacturing sector contracting, Canadian aluminum producers would likely need to offer steep discounts to non-US buyers to remain competitive. As a result, while the tariffs could provide short-term bullish momentum, they may ultimately prove bearish for the global aluminum market in the longer term.
Speculators and hedgers should approach aluminum trading with caution. While both the CME and LME offer aluminum contracts, the LME futures and options market provides greater liquidity and open interest than the CME.
Coffee prices have soared since early 2024, driven largely by a severe El Niño-induced drought in top producer Brazil. According to the Brazilian Coffee Exporters Council, the country exported a record 50.4 million 60-kg bags last year, further fuelling the price rally. A sharp depreciation in the Brazilian real—now hovering near all-time lows—has likely contributed to rising prices and export volumes.
There are signs, however, that high prices are beginning to curb demand. After several months of record shipments in late 2024, Brazilian coffee exports fell by more than 8% year-on-year in December. Meanwhile, new EU import regulations, originally set to take effect on 1 January, have been postponed until the end of 2025, potentially easing demand pressures in the near term.
That said, when a market enters a parabolic phase, traditional technical analysis often becomes irrelevant. Fear and greed can drive prices to extremes that defy supply and demand fundamentals. Speculative traders may be best advised to stay on the sidelines until market conditions stabilise, while hedgers should exercise caution—potentially favouring non-marginable positions via ICE options.
LinkedIn: @Chris Stadele | @LiveSquawk
Trading futures and options involves the risk of loss. Please consider carefully whether futures or options are appropriate to your financial situation. Only risk capital should be used when trading futures or options. You must review the customer account agreement before establishing an account. Investors could lose more than their initial investment. You must review the customer account agreement prior to establishing an account. Past results are not necessarily indicative of future results. The risk of loss in trading can be substantial, carefully consider the inherent risks of such an investment in light of your financial condition.
High Risk Investment
Trading foreign exchange on margin carries a high level of risk, and may not be suitable for all investors. Before deciding to trade foreign exchange, you should carefully consider your investment objectives, level of experience, and risk appetite. The possibility exists that you could sustain a loss of some or all of your investment, and therefore, you should not invest money that you cannot afford to lose. You should be aware of all the risks associated with foreign exchange trading and seek advice from an independent financial advisor if you have any doubts.
Market Opinions
Any opinions, news, research, analyses, prices, or other information contained on this website is provided as general market commentary and does not constitute investment advice. LiveSquawk and Global News Services, Ltd will not accept liability for any loss or damage, including without limitation to, any loss of profit, which may arise directly or indirectly from use of or reliance on such information.
Accuracy of Information
The content on this website is subject to change at any time without notice and is provided for the sole purpose of assisting traders to make independent investment decisions. LiveSquawk and Global News Services, Ltd have taken reasonable measures to ensure the accuracy of the information on the website, however, does not guarantee its accuracy and will not accept liability for any loss or damage which may arise directly or indirectly from the content or your inability to access the website, for any delay in or failure of the transmission or the receipt of any instruction or notifications sent through this website.
Distribution
This site is not intended for distribution or use by any person in any country where such distribution or use would be contrary to local law or regulation. None of the services or investments referred to in this website are available to persons residing in any country where the provision of such services or investments would be contrary to local law or regulation. It is the responsibility of visitors to this website to ascertain the terms of and comply with any local law or regulation to which they are subject.