MATLAB: Option chains and neural nets

option chains neural nets

it seems reasonable to think of option chains as having some predictive power with respect to the price of their underlying securites. options are after all a bunch of crowdsourced best guesses about the future.
it also seems like given the huge amount of historical data out there, one could train a neural net pretty easily: for each day, you have an option chain, and you have an underlying closing price. maybe some time shifting would be involved. maybe we all get rich. right.
anyways, problem number one is that option chains are 2D data (tables), and our nets can only accept 1D data (vectors). so somehow we have to turn all these 2D matrices into vectors before passing them in.
one suggestion for this is to use simple serialization — just spool out the rows or cols end-to-end and call it done.
but option chains have a certain structure to them that seems important, and simple serialization seems like it would obscure this structure if not scramble it up completely. this would be a huge loss of information… right?
that is, option chains are tables of strike prices, where the x axis represents days into the future, and the y axis price. and each column (strike prices at a particular time in the future) has a kind of center of gravity: the "on the money point" where the strike price is the same as the underlying.
a price point's simple distance from this center, (ie, motion along the y axis) is known as "moneyness". moneyness is an important metric in that world. much of options theorization revolves around moneyness.
so here's my question: doesn't this structure seem like an important thing? the options guys do. and because option chains are very irregular (sometimes rows or cols are omitted, the on the money price floats around, etc) doesnt simple serialization scramble that (loose but real) structure up, and we lose critical information as we go from 2D to 1D?
or do we just trust our nets to see structure even though we scrambled it up?
thanks

Best Answer

Columnization using the (:) operator does not scramble the data. It rearranges it.
The only problem is if the user scrambles the data by omitting rows and or columns.
On a limited scale you could probably replace missing data with NaNs.
However, you would have to practice on this scenario to see how much damage is incurred and how much that damage can be tolerated.
Hope this helps.
Thank you for formally accepting my answer.
Greg