What is the Best Day of the Week on which to Sell Corn?

THURSDAY


Too Long; Didn't Read:
The Answer is Thursday...
or maybe Tuesday...
or Wednesday...
or Friday...
But definitely not Monday.

Cİrny News
Pİp Cİrn Trader
Mr GiggleWorth Futures Blog

Seriously, I can't even commit to a tag line;
so you just know, the data that follows is bound to be wrong in one way or another.
CZ Trader Disclaimer
Terms of Service
No warranty.
No guarantee.

Yada. Yada.
But none of that really matters.
For, the question of the moment remains:

What's the Best Day on which to Trade?

Yeah, like there's an answer for that.
Still, if you pinned me down and forced me to answer,
that answer would most definitely be sell on Thursday,
or some other weekday out of the bunch,
except for Monday,
which rather than selling,
turns out to be a great day on which to buy.



Best Day Overall by Figuring Best Day in Each Month Method

This is the last analysis I ran, so might as well put it first. It's probably as close to a real answer as a person is likely to get.

((Also, it's the only analysis that I ran which includes SX2011 data. Maybe I never downloaded SX2011 data or maybe I deleted the file inadvertently. Who knows? One thing is for sure, all the other analysis on all the other pages in this series before now might well have been done without the benefit of any SX2011 data. Need a reason to call my analysis into question? Whoops! There it is.))

For these first graphs, the procedure was simple enough:
  1. For all trade data (corn or soybeans)
  2. Filter so only trades in the issue year remain (2014 trades for CZ2014)
  3. Group trades by month
  4. Select best or worst trade in each month
  5. Tally which day of the week on which those trades took place
  6. And then, graph
Python Panda's Code for the Critical Grouping Loop Being

day = [0,0,0,0,0]
for year in range(start,2015):
    for month in range(1,month):
        tF = dF[dF.index.year == year]
        tF = tF[tF.index.month == month]
        tF = tF.sort("Settle")
        if best:
            day[tF.tail(1).index.weekday] += 1
        else:
            day[tF.head(1).index.weekday] += 1

Code, which well may mean nothing to you, so take it for granted that every Best or Worst Day is weighted equally in the graphs below (i.e. there is no provision for the spread amount between the different Bests).

Best Day in Month

Relative Frequency of Best Trading Day of Week for Corn
Corn
Relative Frequency of Best Trading Day of Week for Soybeans
Soybeans

Worst Day in Month

Relative Frequency of Worst Trading Day of Week for Corn
Corn
Relative Frequency of Worst Trading Day of Week for Soybeans
Soybeans

And there you have it. Monday is looking pretty good, so we can all go home now...

Or, you know, since Monday is also looking pretty bad (the best of the bad, I'll have you know, whatever that means), maybe Friday would be a bit better (at least it's good is good and it's bad is bad). Um, whatever.

Thankfully, there's more than one way to slice the data, so no need to worry, we'll get to the bottom of this and prove beyond all reasonable (and unreasonable doubt) that Thursday is the Best Day.

So with that said, after you've extracted whatever wisdom there is to be had in the graphs above, please continue on to the next section.


The Data Set a Raw Visualization

From here on down, SX2011 is not included in the data, regardless of what it might say in any of the figure headings.

In truth, I started my analysis with the tables that appear at the bottom of the page, but tables are boring, so I figured I put all the graphs up here where they'd catch the eye first.

The eight graphs that follow are a straightforward visualization of the raw data used throughout this page and from which we're trying to extract some kind of meaning. We're all familiar with those time series trade graphs showing the settle price of a commodity over time. Well, these are the same thing, only instead of displaying the price of Corn vs Soybeans or Corn vs Oil, the following show the Settle Price over time for Monday, Tuesday, Wednesday, Thursday, and Friday.

The top row is corn, soybeans on the bottom.
Smaller and smaller periods of time are spanned from left to right.
Note: the data for corn spans 1960-2014, whereas soybeans only spans 1970-2014, because that's all I could find (after an exhaustive fifteen minute search).

Settle Price of Corn Broken Out by Day of Week

Linear Graph Showing the Settle Price of Corn broken out by day of week 1960 to 2014
1960-2014
Linear Graph Showing the Settle Price of Corn broken out by day of week for CZ2014 for 2014
CZ2014
Linear Graph Showing the Settle Price of Corn broken out by day of week October 2014 to end of Issue for CZ2014
Oct-Dec
Linear Graph Showing the Settle Price of Corn broken out by day of week CZ2014 for October
October

Settle Price of Soybeans Broken Out by Day of Week

Linear Graph Showing the Settle Price of Soybeans broken out by day of week 1970 to 2014
1970-2014
Linear Graph Showing the Settle Price of Soybeans broken out by day of week for SX2014 for 2014
SX2014
Linear Graph Showing the Settle Price of Soybeans broken out by day of week October 2014 to end of Issue for SX2014
Oct-Dec
Linear Graph Showing the Settle Price of Soybeans broken out by day of week SX2014 for October
October

So, right there. Thursday, clearly the best day...
Oh, wait. That's the next set of graphs.


Simple Best Day by Sum Average Method

We can do this the hard way (the next section after this) or the easy way, which is as follows:
  1. For all data in range
  2. Split data by day of week
  3. Sum each day
  4. Divide by number of items for that weekday
  5. Subtract out the amount of the overall trade average
  6. And finally, graph
Psuedo Code for the above (probably being easier to understand and) looking something like:

Monday = sum(mondayData)/len(mondayData) - average(allData)

And if that's still not clear (and why it wouldn't be is beyond me), this is pretty similar to the first set of graphs, only we're using All Trade Dates in the range (SX2011 excluded) and getting a weighted average of the settle price on each day of the week.

Simple Best Day by Sum Average Method

Chart Showing Relative Difference in Sales Price on Different Days of Week for Corn 2014
CZ2014
Chart Showing Relative Difference in Sales Price on Different Days of Week for Corn 1960 - 2014
CZ-ALL
Chart Showing Relative Difference in Sales Price on Different Days of Week for Soybeans 2014
SX2014
Chart Showing Relative Difference in Sales Price on Different Days of Week for soybeans 1970 - 2014
SX-ALL

And comparing these to the first set gives... almost no correlation whatsoever. But if one values this analysis, Monday clearly is a good day to buy (crappy day to sell on); and Thursday is looking like a pretty solid sell date (green as it is).

So, let's not muck this thing up with any dissenting opinions. Once again, Thursday, clearly the winner!!!

Or really, a lot better than some of the alternatives. (I'm looking at you Monday.)


Best Day using the Outlier Method

It has been said that one, which I'll take to mean me, can say anything that they want with statistics. It's just a matter of slicing the data in the right way. Perhaps they meant in this way:
  1. For all trade data (corn or soybeans)
  2. Filter so only trades in the issue year remain (2014 trades for CZ2014)
  3. Filter data to include only the top (or bottom) x percent of samples (0.01 = 1%)
  4. Group by day
  5. Find averaged for each day
  6. Subtract the average of all trades remaining after the filters
  7. And finally, graph.
Psuedo Code for the grouping filters looking something like:

data = data.where(issue == year)
data = data.where(data == top_10_percent)

Monday = sum(mondayData)/len(mondayData) - average(data)

And from that, we get the following charts (from most exclusive to least) with the last being the ideological reverse of the first (i.e. limited to the worst of the worst).

Oh, and just by-the-by, one of the ways a person could tell that they're looking at some (complete and utter) degree of randomness (if not out and out chaos) is the way Friday behaves in the last chart on each line. Up and down, up-up-up-up-up, and finally down. Predictive value equals nada.

Thursday on the other hand: golden.

Best 0.01

Graph Showing Relative Difference in the Top 0.01 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Top 0.01 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Top 0.01 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Top 0.01 trading days for Soybeans 1970-2014
SX-ALL

Best 0.05

Graph Showing Relative Difference in the Top 0.05 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Top 0.05 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Top 0.05 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Top 0.05 trading days for Soybeans 1970-2014
SX-ALL

Best 0.10

Graph Showing Relative Difference in the Top 0.10 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Top 0.10 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Top 0.10 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Top 0.10 trading days for Soybeans 1970-2014
SX-ALL

Best 0.25

Graph Showing Relative Difference in the Top 0.25 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Top 0.25 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Top 0.25 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Top 0.25 trading days for Soybeans 1970-2014
SX-ALL

Worst 0.25

Graph Showing Relative Difference in the Bottom 0.25 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Bottom 0.25 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Bottom 0.25 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Bottom 0.25 trading days for Soybeans 1970-2014
SX-ALL

Worst 0.10

Graph Showing Relative Difference in the Bottom 0.10 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Bottom 0.10 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Bottom 0.10 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Bottom 0.10 trading days for Soybeans 1970-2014
SX-ALL

Worst 0.05

Graph Showing Relative Difference in the Bottom 0.05 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Bottom 0.05 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Bottom 0.05 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Bottom 0.05 trading days for Soybeans 1970-2014
SX-ALL

Worst 0.01

Graph Showing Relative Difference in the Bottom 0.01 trading days for CZ2014 2014 Corn
CZ2014
Graph Showing Relative Difference in the Bottom 0.01 trading days for Corn 1960-2014
CZ-ALL
Graph Showing Relative Difference in the Bottom 0.01 trading days for SX2014 2014 Soybeans
SX2014
Graph Showing Relative Difference in the Bottom 0.01 trading days for Soybeans 1970-2014
SX-ALL

It should be noted that since the best trades come from the overall data, these graphs are intrinsically weighted towards times when the price of the underlying commodity is higher (for best) and lower (for worst). The price CZ1960 varied from around $107 to $111 or so; and thus, data from this year dominates the worst figures, while more modern numbers (and their corresponding higher daily averages) dominate the best numbers. This isn't necessarily a bad thing, as it means the Best tables have been skewed towards the modern era, which is probably what we're interested in. But whatever the case, a thorough analysis (like this here analysis) would make note of that particular morsel (which I just have, so there).

Anyway, from all this, I like Thursday. But then, I don't trade, so seriously, what do I care.


T-Test Method

For those looking for Harder Numbers and or a deeper level of analysis (as if one needs to know anything beyond: Thursday), the following should suffice.

In looking at the question of which day is the Best to trade on, the first thing to make note of is that the question is subjective; and therefore, every answer is right & wrong in it's own way. And one of those way's (right or wrong) to evaluate the data is to use a T-Test for Correlated Pairs. It's the classic before and after statistical test, so I figure it works in this situation as well.

But, hey, I'm not really a stats guy and it took me way too long to come up with a guess as to which test to use, so who knows? I guess a stats guy would.

The methodology for this here T-Test for Correlated Pairs is:
  1. Take a bunch of trade data (corn or soybeans)
  2. Sort it into week-long blocks
  3. Run a t-test on the derived values Monday vs Tuesday, Monday vs Wednesday (and so on and so forth) to get a p-value and determine the significance.
  4. Subtracting the average settle amount for each date to determine a magnitude of effect
  5. And then, tabulate that sucker up!!!
As an aside, I should note that the result of a t-test is (ironically enough) both a t-value and a p-value. But the t-value is hard to understand (and relates directly to the p-value), so I've only included the p-values in the tables below. A lower p-value in the charts below means the difference in trades dates (Monday vs Tuesday, etc.) is more likely to be based upon real world causes. In theory, a 0.01 p-value means the correlation between the pairs is due to chance only 1% of the time. To my surprise, there are plenty of low p-values to be found amongst the data.

But then, the p-value is only part of the story, as one can have statistically significant results that no one cares about, so we have a magnitude column. The -0.443939 on the first column represents the Average Settle Price on Monday minus the Average Settle Price on Tuesday. If one took the reverse (the Average Settle Price on Tuesday less the Average Settle Price on Monday) the number would be positive. And in this way, one can get some sort of rough guesstimate as to which is a better trade day and/or whether it makes sense to care about the p-value in the first place.

Of course, in my ever so humble opinion, what we're looking at is a bunch of static. But there are those who stare into the heart of chaos, seeking enlightenment. And who am I to begrudge their pleasure.

Please Note: all data (corn and soybeans) is 1970-2014 (with SX2011 being excluded), as I didn't find a source for CZ1960-CZ1969 until after I had finished compiling the tables for this particular project.


CZ2014: 2014 Corn
Monday Tuesday Wednesday Thursday Friday pValue magnitude
517.451515 517.895455       0.212669 -0.443939
517.451515   517.70303     0.376590 -0.251515
517.451515     517.381818   0.818248 0.069697
517.451515       516.757576 0.022114 0.693939
  517.895455 517.70303     0.081895 0.192424
  517.895455   517.381818   0.031233 0.513636
  517.895455     516.757576 0.013165 1.137879
    517.70303 517.381818   0.696113 0.321212
    517.70303   516.757576 0.022363 0.945455
      517.381818 516.757576 0.020105 0.624242


If the above makes sense to you, please feel free to skip over the first row walk through that follows.

First Row Walk Through: Comparing Monday to Tuesday.

517.451515 is the average Settle price for this Issue on Monday
   (sum of each Monday's settle price / number of trade dates that were on a Monday)
   (note how this is the same number for all Monday entries)
517.895455 is the average Settle price for this Issue on Tuesday
   (the first row has nothing to do with Wed, Thur, Fri, so these lines are blank)
pValue for Monday vs Tuesday
   (pValue for Tuesday vs Monday is the same)
   (a pValue of 0.212 isn't very good)
   (pValue=0.818 is the least significant p-value: Mon-Thur)
   (pValue=0.013 is the most significant p-value: Tue-Fri)
Finally, the average settle price on Monday minus the average settle price on Tuesday
   In other words, if one sold on Monday, one would have gotten 44c less on average than if they sold on Tuesday, which means, that if one had sold on Tuesday, one would have gotten 44c more (per contract) than if one had sold on Monday.

Simple, really.
Same logic, different data sets for the tables that follow.
Low p-values are the best (most likely NOT due to chance).


CZ2010-14: 2010-2014 Corn (Combined)
Monday Tuesday Wednesday Thursday Friday pValue magnitude
508.372605 508.688378       0.350577 -0.315773
508.372605   509.38825     0.173412 -1.015645
508.372605     509.046616   0.014682 -0.674010
508.372605       508.311622 0.014805 0.060983
  508.688378 509.38825     0.025619 -0.699872
  508.688378   509.046616   0.018526 -0.358238
  508.688378     508.311622 0.023642 0.376756
    509.38825 509.046616   0.182308 0.341635
    509.38825   508.311622 0.374430 1.076628
      509.046616 508.311622 0.023810 0.734994


SX2014: 2014 Soybeans
Monday Tuesday Wednesday Thursday Friday pValue magnitude
1198.194286 1198.075714       0.940657 0.118571
1198.194286   1198.73     0.017068 -0.535714
1198.194286     1198.661429   0.014698 -0.467143
1198.194286       1197.327143 0.013417 0.867143
  1198.075714 1198.73     0.018595 -0.654286
  1198.075714   1198.661429   0.017434 -0.585714
  1198.075714     1197.327143 0.016414 0.748571
    1198.73 1198.661429   0.115698 0.068571
    1198.73   1197.327143 0.046024 1.402857
      1198.661429 1197.327143 0.029681 1.334286


SX2010,11--14: 2010, 2012-2014 Soybeans (Combined)
Monday Tuesday Wednesday Thursday Friday pValue magnitude
1160.338774 1160.598726       0.099886 -0.259952
1160.338774   1161.324841     0.026171 -0.986067
1160.338774     1162.039013   0.015582 -1.700239
1160.338774       1161.269904 0.012297 -0.931131
  1160.598726 1161.324841     0.020731 -0.726115
  1160.598726   1162.039013   0.014790 -1.440287
  1160.598726     1161.269904 0.013819 -0.671178
    1161.324841 1162.039013   0.052408 -0.714172
    1161.324841   1161.269904 0.016025 0.054936
      1162.039013 1161.269904 0.016307 0.769108

Do we need an analysis?

OK. Look at the second to last chart, SX2014, Wed vs Fri, there's a $1.40 difference in contracts per day. In the financial world, that's literally a fortune waiting to be made. Why, if you'd put x dollars, on y contracts, you'd wind up with something like z dollars and never have to work another day for the rest of your life. Let me say that again (if not slowly, at least in capitalized bold):

!!!
!!!AND NEVER HAVE TO WORK!!!
!!!ANOTHER DAY FOR THE REST OF YOUR LIFE!!!

!!!

Unfortunately, what was true in 2014 was not true for the range 2010,2012-14 during which the difference per contract drops to $0.05, which means if the spread was up by $1,40 in 2014, it was down by something like -$0.50, in each of those other years.

So, what does this mean?

Glad you asked. It means: Thursday!!!
Or it's static noise, take your pick.


Frequency Method

I'm not a statistician. And so, I don't trust those low p-values. But perhaps more importantly, the above charts are sort of hard for me to understand.

So, here's another methodology, which as far as I'm concerned, is an equally valid way of looking at the data.
  1. Separate the data into weekly groups
  2. From each group select the Best and Worst day
  3. Tabulate how many times each day of the week is in the Best or Worst Group
  4. And then, subtract the weekly average close from the Best and Worst to get a relative magnitude of difference
So, no fancy-smancy statistics stuff, just simple additive arithmetic, put together in one of those smart looking charts to give it that air of authority.

CZ2014: 2014 Corn
Monday Tuesday Wednesday Thursday Friday
Number Trades 182 202 199 198 197
Trade Average 517 516 519 518 518
Best Day 47 29 35 43 50
Over Average 295 177 192 212 245
Worst Day 52 31 30 36 55
Under Average -321 -172 -145 -233 -383
Net Difference -26 5 47 -21 -138

This should be pretty self explanatory:
   (the simple stuff usually is)
The data is grouped by day of week into columns across the top and then down the side in rows we have:
Total Number of Trades Recorded:
   (This is greater than 50, because issues trade for longer than a year)
Trade Average:
    (sum of the daily settle divided by total number of trades)
Best Day:
   (number of times this day was the weekly best)
Over Average:
   (cumulative gain to be had buying one contract on this day and selling at the weekly average, i.e. best day settle less the weekly average settle)
Worst Day:
   (sort of like the Best Day, only not, it's the worst)
Under Average:
   (cumulative loss)
Net Difference:
    (Over Average plus Under Average: the most interesting thing being how often this is a negative number, whereas I would have expected this number to tend towards zero)


CZ2010-14: 2010-2014 Corn (Combined)
Monday Tuesday Wednesday Thursday Friday
Number Trades 875 950 954 939 931
Trade Average 507 507 508 508 508
Best Day 216 128 167 187 274
Over Average 1871 1036 1065 1230 2165
Worst Day 263 174 129 140 266
Under Average -2144 -1318 -780 -1058 -2505
Net Difference -273 -282 285 172 -340


SX2014: 2014 Soybeans
Monday Tuesday Wednesday Thursday Friday
Number Trades 190 208 206 204 205
Trade Average 1199 1193 1200 1201 1198
Best Day 47 37 36 33 57
Over Average 605 349 315 335 640
Worst Day 47 37 31 31 64
Under Average -568 -420 -268 -308 -863
Net Difference 37 -71 47 27 -223


SX2010-14: 2010-2014 Soybeans (Combined)
Monday Tuesday Wednesday Thursday Friday
Number Trades 685 748 749 734 729
Trade Average 1159 1158 1160 1162 1161
Best Day 154 133 120 126 222
Over Average 2404 1586 1237 1648 3263
Worst Day 201 134 110 92 218
Under Average -2995 -1712 -1092 -1217 -3533
Net Difference -591 -126 145 431 -270


Anyway, after staring at all that for a while, I'm will to state:
  1. The difference between best day and worst is only a dollar or two.
  2. And the day of the week that is the best day, varies from year to year.
So, just eye balling it, based on the last few years (and these tables), it certainly doesn't look like it would hurt (much, disclaimer, disclaimer) to sell in the middle of the week and buy at the ends. Once again, I have no faith in it. But what are you going to do?

Or what the heck am I saying. 431! Do you see that? 431! The highest number on the charts, and when does it land? Thursday! Seriously, add those numbers up, Thursday is a landslide victory. I mean, come on, 431 or -591, you make the call. Monday sucks, Thursday rocks, and don't even get me started about Tuesday (middle of the week, hemming and hawing wannabe).


Jumping to Conclusions

In the end, a buck is a buck, and fortunes have been made on price swings as small as a penny, so maybe this Best Day to Trade thing is worth more analysis. Still, as in all seriousness, I thought the t-tests would all come back differently than they did (way high in the 0.90's and so not significant at all). But they didn't.

So, um, who knows?
Maybe I've got the wrong test.
Or maybe my logic is off.

What I do know is that I am partial to the Best Day using the Outlier Method and from that, I see Thursday as the best day.

And anyone who knows me, knows I am quite happy to express strong opinion on things of which I know next to nothing based on superficial data and limited analysis. Add to that the fact that I don't trade, and I think it's all random gibberish (noise in the words of my statistician friends), I'd have to say, nay, declare most enthusiastically:

Sell on Thursday

Buy on Monday

And most importantly,

Give 10% of any Trade
to
Dear Old Uncle Brett

For Services Rendered
being totally unrelated to trade advice
unless, of course, that advice is to give me
10% of every trade that you make


Now, that's advice both Mr. GigglesWorth and I can stand behind!


Corn Index

Brett Stuff - Home
İ 2014 copyright Brett Paufler
Brett@Paufler.net

Sometimes you get what you pay for.
Sometimes you get less.
Just remember, this site was free.

Unless, of course, you're paying me that 10% honorarium
In which case, let me be the first to say:
You've been had!

Or, I mean, to say:
Thank you!
Thank you, very much, indeed!


Terms of Use
More Disclaimers
Just take it on faith that I don't know what I'm talking about.
On this, I think, we all can agree.