Almost all of my strategies use rotation in some way. I first looked at the Rotation framework in the New Strategy tab realized that there was no way for me to code my strategies using Building Blocks, and the was no way to concert that type of a strategy to C# code. I then started looking at the Discussion Board figuring that there must be skeleton code somewhere, but no luck.
So where can I find it?
So where can I find it?
Rename
There is no skeleton, our Rotation Strategies are derived from a higher level base class than UserStrategyBase so they cannot be converted to C# Strategies like Building Block Strategies.
Glitch,
Is there no "cheat" that I can use in the standard C# framework that allows me to select the equity with the highest or lowest weight? I need something like this to translate most of my WL6 code to WL8.
Is there no "cheat" that I can use in the standard C# framework that allows me to select the equity with the highest or lowest weight? I need something like this to translate most of my WL6 code to WL8.
Yes you can use the PreExecute method.
Here are some examples of C# Coded Rotation strategies that you can use for templates -
https://www.wealth-lab.com/Discussion/10285#post1
https://www.wealth-lab.com/Discussion/7316#post22
https://www.wealth-lab.com/Discussion/9515#post2
https://www.wealth-lab.com/Discussion/10285#post1
https://www.wealth-lab.com/Discussion/7316#post22
https://www.wealth-lab.com/Discussion/9515#post2
Thanks Cone!
I could not find anything in the Help file about PreExecute.
I could not find anything in the Help file about PreExecute.
It’s also described in the Blog article “Anatomy of a WealthLab Strategy.”
Re: I could not find anything in the Help file about PreExecute.
See the QuickRef - there's actually a full rotation example that you can conveniently open there.
See the QuickRef - there's actually a full rotation example that you can conveniently open there.
Thanks Guys!
I understand that parallel optimizers don't necessarily work with strategies that use the PreExecute function.
Which optimizers do work? Only Exhaustive and Shrinking Window?
Which optimizers do work? Only Exhaustive and Shrinking Window?
No, those are both parallel.
Just look for the ones with "non-parallel" in the name.
Just look for the ones with "non-parallel" in the name.
Most of the parallel optimizers have a special checkbox in their configuration to disable the parallel optimization if you want to do so.

But the real question is why not implement some of the indicator caching solutions so you can still use PreExecute with parallel optimization successfully? I would post this issue in one of the topics that discusses how to perform parallel optimization with PreExecute. There are several ways.
But the real question is why not implement some of the indicator caching solutions so you can still use PreExecute with parallel optimization successfully? I would post this issue in one of the topics that discusses how to perform parallel optimization with PreExecute. There are several ways.
superticker,
First, thanks for pointing out the checkbox. I must admit that I never saw it.
Second, I, for one, would definitely be interested in the ability to do a Rotation without PreExecute so that I can take full advantage of the parallel optimizers. Looking forward to seeing that!
First, thanks for pointing out the checkbox. I must admit that I never saw it.
Second, I, for one, would definitely be interested in the ability to do a Rotation without PreExecute so that I can take full advantage of the parallel optimizers. Looking forward to seeing that!
Glitch,
Does the same limitation re: parallel optimizers exist for the built-in Rotation framework?
Does the same limitation re: parallel optimizers exist for the built-in Rotation framework?
QUOTE:
interested in the ability to do a Rotation without PreExecute
We misunderstood each other. I meant you could use PreExecute with parallel optimization. There are some caching approaches and execution locking (execution exclusion) approaches that will let PreExecute run with parallel optimization successfully.
The caching approach is discussed in Post 6 of https://www.wealth-lab.com/Discussion/Parallel-Optimization-issues-6718 . We should take the discussion there if you want that approach. If you want to discuss the execution exclusion approach, we need to start a new topic. That method hasn't been applied to PreExecute before. Are you familiar with the Reader Writer problem you studied in computer science? It works that way.
This has nothing to do with the type of strategy (e.g. rotational) used with PreExecute.
superticker,
I really appreciate your help with this!
My last formal computer class (Fortran) was in the very early 60's (punch cards, submitting decks, and mainframes). Everything I needed in my early career I needed to learn from other users. I picked up C on my own when Dennis Richie sent me an 8" floppy with his brand new compiler for my DEC minicomputer. Later in my career I did not need to program, so my formal computer skills are severely lacking, to say the least! 😉
I really appreciate your help with this!
QUOTE:
Are you familiar with the Reader Writer problem you studied in computer science?
My last formal computer class (Fortran) was in the very early 60's (punch cards, submitting decks, and mainframes). Everything I needed in my early career I needed to learn from other users. I picked up C on my own when Dennis Richie sent me an 8" floppy with his brand new compiler for my DEC minicomputer. Later in my career I did not need to program, so my formal computer skills are severely lacking, to say the least! 😉
QUOTE:
sent me an 8" floppy with his brand new compiler for my DEC minicomputer.
I remember those 8" floppies and the PDP-8e. Those were the days.
I would get your conversion from WL6 to WL8 done first using single-threaded optimization. Afterwards, you can try the caching approach for parallel optimization. It's not perfect, but it works for the most part.
The execution exclusion approach based on the Reader Writer problem is conceptually more complicated to code, but it will deliver the exact answer. Someone at MIcrosoft wrote some methods for implementing the Reader Writer solution that you can compile in your local DLL library to use, but I would read about the Reader Writer problem first (probably discussed online somewhere) so you know what's going on. This is a more advanced and selective method of exclusion.
Glitch,
Does the same limitation re: parallel optimizers exist for the built-in Rotation framework?
Does the same limitation re: parallel optimizers exist for the built-in Rotation framework?
No, it should be OK with parallel.
Your Response
Post
Edit Post
Login is required