Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

Is it possible to combine different algorithms so as to improve trading performance? In particular, I have read that social media sentiment tracking, digital signal processing and neural networks all can be used for trading algorithms.

Would it be possible to create a trading algorithm that combines elements from these three areas or are these methods mutually exclusive in that they are incompatible with each other? If you commit to one, can you use the other?

share|improve this question

3 Answers 3

up vote 9 down vote accepted

Yes. First, it is much easier to proceed if you standardize the output of your forecast so they are in the same units (returns, for example, or probabilities of an event/condition occurring). After you have done this, there are 3 general approaches:

  1. Signal weighting: Then you need to define a weighting scheme for your factors. Richard Grinold has an one answer to this question in his paper "Signal Weighting". Note there are quite a few methods to weight signals (optimization, meta-models, forecast pooling, Bayesian model averaging, weighing based on out-of-sample performance, etc.). The general problem of "Signal Weighting" is attracting significant research lately, and it is a hard problem with no consensus in my view.

  2. Entropy-pooling: Instead of weighing signals you can also integrate signals using entropy-pooling. Here you would assign confidence scores to each signal and develop a new posterior distribution. Entropy-pooling will mix signals in a way that imposes the least spurious structure on your forecast. Atillio Meucci has a paper on how to do this.

  3. Build a model using these independent signals as predictor variables. You might try PCA, regression, a hierarchical model, or an ensemble technique. You also do not have to ensure the signals are in the same units although it would aid your intuition. Naturally, you'd have to proceed thru some modelling procedure and consider co-linearity, non-stationarity, etc.

share|improve this answer

As you mention neural network, in general, you may like to look further into various machine learning techniques.

On that side, Quant Guy also mentioned ensemble learning which is the general term to combine different learning models. I'd like to elaborate on this point a bit further:

In machine learning, traditional ways to combine models are simple voting committee, bagging, boosting (adaboost), etc. All these, you can simply google the term to get a lot of information.

Stacking generalization, also called blending lately, is getting more and more popular in practical machine learning tasks. For example, both top two teams in the famous Netflix prize (1 million $) applied blending heavily, often optimizing the models with thousands of model combined by blending.

For blending, you could refer to this blogpost, from the Netflix winning team. And also, and the original paper by D. H. Wolpert.

share|improve this answer

Whatever method you use, I recommend you test your implementation with Monte Carlo simulations as well as real data (although doing the latter subjects you to data mining bias, it can give a sanity check on your Monte Carlo simulations.) For most instances of multiple algorithms, the returns streams will not be independent, and you should take this into account in your tests.

As far as the combination method to use, I would suggest you start simple with an equal dollar allocation (akin to the 1/n rule which seems to work well for equity portfolios), or at least an 'equal risk' allocation. By this I mean something along the lines of "put a fixed amount of money into each strategy you are trading, let them hold their own portfolios, and rebalance the money on e.g. a monthly schedule."

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.