I note that the list

"pre","risk","order","rebalance",
               "exit","enter","entry","post"

Contains types that are not in the notes. Can I find some further info on what they are for?

When Joshua says he has 'committed' the changes, does that mean if I download quadstrat the amendments will be incorporated in it?

And finally (for the moment ;-) thanks for the way you all have helped me solve my problems.

Stephen Choularton Ph.D., FIoD


On 28/01/2011 2:55 AM, Joshua Ulrich wrote:
On Wed, Jan 26, 2011 at 6:42 AM, Brian G. Peterson<[email protected]>  wrote:
On 01/25/2011 09:47 PM, Aleksandr Rudnev wrote:
On Tue, Jan 25, 2011 at 3:54 PM, Stephen Choularton
<[email protected]>    wrote:
...

The rules will be executed by type, in the order listed above.
...
Has anyone got this problem and solved it?
I have seen similar thing, but never had time to trace it before today...

It seems like a defect in applyRules (if we take mentioned note as a
spec) or in add.rule, or in ruleOrderProc, depending on how you look
at it, but I guess authors will comment on that.
Basically, what's happening is that "rules" list in strategy is
populated with lists of rules of different type, each of such lists
("order", "entry", "exit", etc) is created and added to "rules" when
add.rule is invoked first time for such type (lazy initialization). In
applyRules "rules" are iterated in order corresponding to how
different types of rules were added. In your case you start with
"enter" type, then add "exit".
Workaround would to first add "exit" rule(s), then "enter" rule(s).
This is correct.  Thank You for the detailed examination of the code.

I second that.  Aleksandr did most of the work, which made it very
easy to patch.

The lines in question in applyRules() are a loop around a switch:

l506 and following:

for ( type in names(strategy$rules)){
        switch( type ,

I'll need to think about an alternate formulation in applyRules() that would
work the rule types in order as described in the documentation (which was
our intent).

Any input on fixes gladly accepted.

I've committed the patch below.  Rather than looping over
names(strategy$rules), I create a factor that will sort in the same
order as described in the documentation.  Obviously, if a new new rule
type is created, it must be added to this list.

types<- sort(factor(names(strategy$rules),
   levels=c("pre","risk","order","rebalance",
                "exit","enter","entry","post")))
for ( type in types ) {
   switch( type ,

The maCross demo now works correctly when the short rules are uncommented.

Best,
--
Joshua Ulrich  |  FOSS Trading: www.fosstrading.com


Regards,

  - Brian


--
Brian G. Peterson
http://braverock.com/brian/
Ph: 773-459-4973
IM: bgpbraverock

_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions
should go.

_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should 
go.




-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1204 / Virus Database: 1435/3405 - Release Date: 01/26/11




_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should 
go.

Reply via email to