Trump’s posts do move the oil market, but mostly when they’re about Iran.

Scroll to see what I found

What I found

Oil prices react within seconds of Trump’s oil posts.

Oil prices moved 2× more around Trump’s oil posts than at the same time a week earlier. Half of Iran posts had moved oil more than 0.1% after 5 seconds.

WTI price data Dukascopy.

Volatility a week earlier 0.051, and when Trump posts 0.104.

30-second volatility (%)

A week earlier0.051

When Trump posts0.104

For 179 oil posts between 19 September 2025 and 24 September 2026, median WTI volatility over the next 30 seconds was 0.104%. That was about twice the 0.051% measured at the same time of day one or two weeks earlier. ps is the WTI bid s seconds after the post, s=0,1,…,30rs=100(psps−1−1)V=∑s=130rs2

A model better than guessing

Machine learning predicted whether oil prices would rise or fall over the next 30 seconds slightly better than guessing.

Donald J. Trump @realDonaldTrump Hypothetical post

GPT-6 Luna identifies details in your text for the prediction model.

Try the model with this post, or write your own.

Time is key

Most of the edge is gone after 2–3 seconds.

I measured price changes over 30‑second windows beginning 0, 1, 2 or 3 seconds after each post. The later the window started, the lower the model’s prediction score.

Input
Target
X
Y
06The ML modelscikit-learnHistGradientBoostinglearning_rate 0.03max_iter 100max_depth 2max_leaf_nodes 8min_samples_leaf 10l2_regularization 1.0class_weight balanced
07Results by delayDelayF1 scoreGuessing0 s0.4400.301 s0.4010.302 s0.3550.303 s0.3280.30Each row measures a full 30‑second price change, starting at the delay shown. The score averages F1 for up and down predictions. Randomly choosing up, flat or down with equal probability scores about 0.30.
@realDonaldTrump8,259posts18 Sep 2025 – 25 Sep 2026
DukascopyWTIbid2025-09-18 to 2026-09-25
Make the labelone per oil post
01Trump postsI collected his Truth Social feed from the trumpstruth.org archive, including original posts, reposts and videos.
02Keep his own posts4,138postsEach dot represents one of the 3,861 posts with GPT labels. Green dots mark oil-related posts.OpenAI GPT-6 Sol extracts 9 features from each post.
03Oil-related365postsWe filter the posts, keeping only those about oil.The prediction study had usable WTI prices for 266 posts.
04WTI pricesRetrieving WTI prices from Dukascopy.
05Define predictiontargetI labelled WTI’s change over 30 seconds as up above +0.075%, down below −0.075%, and flat otherwise.

Input

01Trump posts

@realDonaldTrump8,259 posts18 Sep 2025 – 25 Sep 2026

I collected his Truth Social feed from the trumpstruth.org archive, including original posts, reposts and videos.

02Keep his own posts

4,138 posts

Each dot represents one of the 3,861 posts with GPT labels. Green dots mark oil-related posts.

OpenAI GPT-6 Sol extracts 9 features from each post.

03Oil-related

365 posts

We filter the posts, keeping only those about oil.

The prediction study had usable WTI prices for 266 posts.

Target

04WTI prices

DukascopyWTIbid2025-09-18 to 2026-09-25

Retrieving WTI prices from Dukascopy.

05Define prediction target

Make the labelone per oil post

I labelled WTI’s change over 30 seconds as up above +0.075%, down below −0.075%, and flat otherwise.

06The ML model

scikit-learn
HistGradientBoostinglearning_rate 0.03max_iter 100max_depth 2max_leaf_nodes 8min_samples_leaf 10l2_regularization 1.0class_weight balanced

07Results by delay

DelayF1 scoreGuessing
0 s0.4400.30
1 s0.4010.30
2 s0.3550.30
3 s0.3280.30

Each row measures a full 30‑second price change, starting at the delay shown. The score averages F1 for up and down predictions. Randomly choosing up, flat or down with equal probability scores about 0.30.

  1. 1

    Trump posts

    8,259

    I collected his Truth Social feed from the trumpstruth.org archive, including original posts, reposts and videos.

  2. 2

    Keep his own posts

    4,138

    4,138 he wrote himself; 3,861 of them have GPT labels. OpenAI GPT-6 Sol reads each one and extracts 9 features.

  3. 3

    Oil-related

    365

    Filtered by the features: 191 directly about oil, 174 indirectly.

  1. 4

    WTI prices

    The WTI bid from Dukascopy, down to the tick.

  2. 5 Y

    Define prediction target

    I labelled WTI’s change over 30 seconds as up above +0.075%, down below −0.075%, and flat otherwise.

Access and review the code here GitHub

  1. A short sample dominated by the Iran war

    The sample is small and the testing period covers less than a year. Most events are tied to the Iran war, which limits how confidently these results can be applied to other events or market conditions.

  2. Live trading remains untested

    Using Claude agents, I simulated trading on the model’s calls: the historical returns were roughly zero after transaction costs. Live trading performance remains untested, including whether trades could be executed quickly enough and at the prices assumed in the simulation.

  3. Broker CFD quotes rather than exchange prices

    I used prices from Dukascopy, a broker. They may differ from exchange prices and don’t tell us exactly what real trades would cost.

  4. No long-term predictive signal

    The model did better than guessing only for the 30 seconds after a post, and most of the edge is gone after 2–3 seconds. In earlier tests with Claude agents, it showed no clear advantage over one or five days.