My trading software is pretty slow, I want to boost it. There are two bottle-necks.
First bottleneck:
When new bunch of data is received (new quotes, trades etc.
Your questions is rather broad, what you are basically asking is how to make use of parallelism in your application? You already have code which is broken up into discrete tasks, so using parallelism shouldn't be a big problem. I would recommend reading about PLinq and TPL, both provide easy-to-use APIs for this sort of thing:
http://www.codeproject.com/KB/dotnet/parallelism-in-net-4-0.aspx