Brian asked I bounce this to the list... -- Joshua Ulrich FOSS Trading: www.fosstrading.com
On Mon, Jul 19, 2010 at 9:00 AM, Brian G. Peterson <brian at braverock.com> wrote:
On Mon, 2010-07-19 at 12:59 +0100, Raghu wrote:
Hi I ran the following code (re-using the BBands.R demo file to test a simple MACD) but it throws an error in the following way. I tried figuring out but could not. Any assistances pls? dput(s) and str(s) as follows. Many thanks. out<-try(applyStrategy(strategy='s' , portfolios='macd1')) Error in list(x) : 'x' is missing
<snip>
The error was in your arguments list:
s <- add.indicator(strategy = s, name = "MACD", arguments = list(Close =
quote(Close('IBM')), a=a,b=b,c=c, maType=quote(EMA)))
the correct arguments list looks like this:
stratMACD <- add.indicator(strategy = stratMACD, name = "MACD",
arguments = list(x=quote(Cl(mktdata)), nFast=fastMA, nSlow=slowMA,
nSig=signalMA,maType="EMA") )
The arguments for MACD are
MACD(x, nFast=12, nSlow=26, nSig=9, maType, percent=TRUE, ...)
you tried to pass Close, a, b, c as named arguments with the wrong
names.
You would also have seen this warning from quantstrat:
In addition: Warning message:
In applyIndicators(strategy = strategy, mktdata = mktdata, ...) :
?some arguments stored for MACD do not match
which was trying to tell you that your arguments list might have
something wrong with it.
I've attached a simple MACD strategy script that uses sigThreshold
(instead of sigCrossover) to use MACD as a simple trend indicator,
buying when signal is greater than zero, and selling when signal is less
than zero.
This example has been checked in to SVN.
Regards,
?- Brian
--
Brian G. Peterson
http://www.braverock.com/brian/
Ph: 773-459-4973
IM: bgpbraverock