Page 1 of 1

First Notice, Expiration, Settlement Type and CSI

Posted: Sat Dec 05, 2009 2:32 am
by jklatt
I've looked through CSI's manual to see if they're able to output first notice dates, expiration dates and settlement types alongside the normal OHLC, etc. outputs. I've read through their manual pretty throughly and it looks like they don't have that type of functionality. I called them and they confirmed.

I'm just wondering if anyone has gone down this path? I'd like to write some custom software in Matlab to explore rolling my own contracts, but as I started to venture into this arena, I quickly realized I wanted these data points.

I don't mind doing the heavy lifting and going through each instrument and figuring out the data points manually, but if I'm going to be stuck doing that I think I might work on some general liquidity filters to thin out the ~1000 futures contracts that CSI follows.


Posted: Sat Dec 05, 2009 8:20 am
by sluggo
First Notice Dates and Last Trading Dates are, in my experience, not as hard-and-fast as you might wish. Particularly at some of the smaller exchanges. You can download the "Trading Calendar" from the exchange's website and carefully note the FND / LTD lists, but then find that occasionally they move it around without bothering to update the website. (They send a memo to the floor traders / locals, but that's about it.)

Some of the larger brokerage firms make an effort to keep an up to date list of FNDs and LTDs, so they can notify customers who are dangerously close to carrying a position into FND or LTD. However if you have accounts at more than one of these firms, and if you cross-check their lists against one other, you sometimes find that Confucius was right: "Man with two watches never know what time it is." Sometimes broker A and broker B disagree on the FND or LTD of a certain contract month. Ewwww.

I've attached an example of the sort of info you can get from some brokers. I got this particular one by logging in to the customer account portal "eMidas" of the futures broker MF Global. It is called "Reports -> Last Trading Day" on that particular site. There is no industry standard format for presenting this information, every broker does it differently. So if you wish to download from N dfferent sources you will need to customize your parser N different times. For example, MF Global's data is presented in a Frame, so the simplistic File -> Save approach does not work.

Also note that MF Global tells you the exchange and the name of the commodity but not the contract month, that's hitting FND or LTD. You're just supposed to KNOW.

Code: Select all

12/14/2009 Last Trading Day 
  3M LIBOR E15 

Posted: Sat Dec 05, 2009 9:58 am
by AFJ Garner
What I have done is to look at each and every contract specification for the contracts I trade and take note of the verbal description of FNDs/Expiry Dates. EG: "Third Wednesday in the Contract Month except if it is a market holiday in which case.........etc". I have plugged that into my system and my daily TB Print Output for Order Generation. I have also plugged in my own "Failsafe Roll Dates" for each contract, which in general help me to keep abreast of when I am running into the danger period. My algorithm for these is based on when open in interest in a commodity tends to typically roll and for financials it is based on giving me enough prior notice to the earliest of the likely FND/Expiry date in any particular month..

It is NOT of course foolproof and typically, over the weekend, I will make a diary note of what rolls are coming up for the week. I will usually double check market holidays at the same time and also most often double check exchange websites to see whether any changes have been made.

Take a look here: viewtopic.php?t=5657&highlight=roll+date

It is a massive endeavour but also hugely valuable.

I have a number of reports in my daily print output but here are a couple of relevant samples:

Posted: Fri May 21, 2010 11:47 am
by jklatt
You were right, AFJ, it has been a massive endeavor. Seems like questions abound and every time I attempt to answer one of the questions, it spawns several others.

For example, I notice you have HKNVZ as the active months for CT2. Well, I wrote a script that calculates active months for me using the highest volume continuous contracts that I've already created. The script says, if you're looking at just volume, V should be discarded. Going back to Jan-1-1990, the highest volume continuous contract never once used V (October delivery). Going back to inception (the mid 60s), it only used V for 117 trading days in the last ~45 years. 115 of those days came in 1972.

So the questions come rolling in. Do most people trade October Cotton? If so, why? Because it's listed as an active month at the exchange and with CSI? Are most traders not as concerned about being in the contract with the best volume and am I making a mountain out of mole hill? Is there a price based reason for trading October CT2?

I'm not really looking for the answers to those questions from anyone. I plan on answering them for myself. I wanted to illustrate just how massive an endeavor it has been. It would be interesting to see what the edge is over using your own well researched/customized continuous data sets vs. using CSI's default ones. My guess is that it's probably not _too_ large, but it probably pays the bills. Thanks again for your contributions.

Posted: Fri May 21, 2010 12:17 pm
by sluggo
There's an earlier post where a guy explained how and why he came to the decision not to trade certain contract months of certain products. October cotton was one of the specific examples he cited.

Eyeballing the continuous contract in CSI is another simple way to notice weird behavior. As a delightful exercise I suggest you use the Volume and Open Interest pane within CSI, to decide what contract months "should" be included in a continuous contract of CSI symbol "CFI" (commodity number 980). I predict you will be amused and delighted with the outcome.

Posted: Fri May 21, 2010 12:28 pm
by AFJ Garner
I roll on the earliest of a change in OI on commodities or my own "failsafe notice date". Almost inevitably the roll on OI comes first. Even then I always check the actual month I am going to roll into manually. Thus I would not run into the problem with October cotton. For precisely the points raised in this thread I somehow doubt it will ever be totally reliable to run a LTTF system on auto pilot.

My coding flags the necessity to roll and I then check it out.

Posted: Fri May 21, 2010 12:35 pm
by jklatt
My script says Z only for symbol CFI. I'll have to fire up CSI and look at the volumes and open interests visually as you suggest.