Other than that, you have lots of choices for serialization. You could
write a custom format, either in binary or text (binary being preferable
for data that is handled only by software, text being preferable if you
would like it to be human-readable for some reason). A text format could
be as simple as a comma- or tab-delimited file, or an XML-based format.
You could also use one of .NET's built-in serialization techniques. These
work well, especially if you aren't too particular about the precise way
the data is written. You have choices, including binary formatted, plain
XML, or even SOAP.
Any of those should work fine for your needs. Choosing something specific
depends somewhat on your own preferences and technical needs, but that
choice is most likely less critical that one might think. You can waste a
lot of time trying to decide what is the _exact_ best format, when all you
really need is _some_ way to save and load the data.
My own tendency is to go with what is likely to need me to write the least
amount of new code. Usually this would be the built-in serialization for
.NET, but when dealing with an existing and unsupported format such as
MetaStock this could be that format instead. Even when not, customization
of the .NET serialization can sometimes be tricky and so some explicit
format might wind up faster to get written and simpler to understand.