- ago
I love the new "Symbol by Symbol" optimization feature, and have been using it extensively. But there are two fairly basic things that I'm having difficulty with:

1) Is there a way to backtest a single parameter set against all symbols in a DataSet, one-by-one? For now, what I've been doing is disabling all optimization parameters, and then adding one meaningless one, so that I can run an "Exhaustive" Symbol-by-Symbol optimization where there is only 1 permutation for each symbol. But this becomes quite tedious when working with lots of parameters.

2) Is there a way to optimize towards a single set of parameters that work best for all symbols in a DataSet? (rather than different parameter results for each symbol)
3
1,371
6 Replies

Reply

Bookmark

Sort
Glitch8
 ( 10.62% )
- ago
#1
Well as you’ve see. there’s no way to easily do those things right now but they are good ideas and worthy of a Feature Request. I can tag this topic later or Eugene can do it if he happens to spot this before i get a chance.
1
- ago
#2
Tagged as #FR.
1
Glitch8
 ( 10.62% )
- ago
#3
>>2) Is there a way to optimize towards a single set of parameters that work best for all symbols in a DataSet? (rather than different parameter results for each symbol)<<

Forgive my possible lack of understand, but wouldn't this just be a STANDARD OPTIMIZATION??
0
- ago
#4
Are you referring to doing a Standard Optimization with "Portfolio Backtest" selected? My understanding is that such an optimization may return a set of parameters that is heavily optimized towards one particular symbol. For example, we might end up with something like this:

Strategy parameters returned from Standard Optimization:
Symbol A: 1 position, .1% APR
Symbol B: 1 position, .1% APR
Symbol C: 28 positions, 60% APR

So in effect, the optimization process has ignored Symbol A and B, and found that the highest APR by only focusing on Symbol C.

With the Symbol-by-Symbol optimization, the goal would be to find a single generalized parameter set that can successfully be applied to any symbol in the data set. You would get optimization results such as:
Symbol A: 10 positions, 20% APR
Symbol B: 10 positions, 20% APR
Symbol C: 10 positions, 20% APR

Even though the results from both optimizations have an average-per-symbol of 20 positions and 20% APR, the parameter results from the second optimization is much more generally applicable.
0
- ago
#5
QUOTE:
Strategy parameters returned from Standard Optimization:
Symbol A: 1 position, .1% APR
Symbol B: 1 position, .1% APR
Symbol C: 28 positions, 60% APR

So in effect, the optimization process has ignored Symbol A and B, and found that the highest APR by only focusing on Symbol C.

With the Symbol-by-Symbol optimization, the goal would be to find a single generalized parameter set that can successfully be applied to any symbol in the data set. You would get optimization results such as:
Symbol A: 10 positions, 20% APR
Symbol B: 10 positions, 20% APR
Symbol C: 10 positions, 20% APR

That final solution for symbols A, B, and C is not ideal. The ideal solution is to run a cluster analysis on the parameters and have the results of that analysis put Symbol C in a separate dataset from symbols A and B. Look up "cluster analysis" in stat textbook for first year graduate students in statistics. That should breakdown the process for you. And anyone publishing research papers in the social sciences would be familiar with a cluster analysis; they do it all the time because they need to cluster numerous variables into low-noise "composite variables" for further analysis (Factor Analysis).

The next question is how to get WL to export the optimization results into a stat package to perform such a cluster analysis? An interesting question. Honestly, I think the parameter settings output, By Symbol, of the optimizer results may be enough to do the clustering by the stat package. You just need to capture that By Symbol optimizer output to the clipboard and paste it into the stat package doing the cluster analysis.

Remember, you're trying to cluster the symbols, not the optimization parameters, so you can group related symbols into separate datasets. Don't configure the problem up-side-down.

I wouldn't have WL do what a dedicated statistics or numerical analysis package can do better. Just use the right tool for the job.
0
MIH8
- ago
#6
Hello mdosey,

QUOTE:

Are you referring to doing a Standard Optimization with "Portfolio Backtest" selected? My understanding is that such an optimization may return a set of parameters that is heavily optimized towards one particular symbol. For example, we might end up with something like this:


Finally, the parameters are optimized for a complete data set with all symbols. Optimization in this context means finding a set of parameters that is best for the overall result, making trade-offs in individual cases.

You are describing a different optimization problem. As I understand you, you want to optimize symbols one by one and then find the subset that forms the highest yield. This is a combinatorial problem where individual groups would have to be measured and the best recombinations retained.

For a start, it might help you to look in the backtest results under the "By Symbol" tab. If you sort the table, you should be able to determine a group of symbols that are "optimal" for you.
0

Reply

Bookmark

Sort