First of all, I appreciate all the hard works the developers have poured
for this package. Is there anyone who could help me with this?

I have searched this question and got to the following answer provided by
Braverock.
http://r.789695.n4.nabble.com/Parameters-setting-for-multiple-indicators-with-the-same-argument-names-td3793443.html

I tried to follow his recommendation but couldn't get it work. My codes are
as follows. It appears that only the first set of parameters are repeated
over and over. External parameters (shortMA and longMA) don't seem like to
be updated at all.


input_data <- read.csv('mktdata.csv')
EURUSD <- xts(input_data[,3:6], as.POSIXct(input_data[,'Date'], tz='PST',
format='%Y-%m-%d', drop.time=F))
names(EURUSD) <- c("OPEN","HIGH","LOW","CLOSE")

shortMA = 5
longMA = 10

initDate <- as.Date('2000-01-02') - 1

stock.str <- 'EURUSD'
strat.name <- 'MAX'
initEq=1000000

dummy <- initPortf(name=strat.name,symbols=stock.str, initDate=initDate)
dummy <- initAcct(name=strat.name,portfolios=strat.name,
                  initDate=initDate, initEq=initEq)
initOrders(portfolio=strat.name,initDate=initDate)
strat <- strategy(strat.name)

*#indicators:*
strat <- add.indicator(strategy = strat, name = "SMA", arguments =
list(x=quote(Cl(mktdata)), *n=quote(shortMA))*,label= "ma_sn" )
strat <- add.indicator(strategy = strat, name = "SMA", arguments =
list(x=quote(Cl(mktdata)), *n=quote(longMA))*,label= "ma_ln")

# signals:
strat <- add.signal(strategy = strat,name="sigCrossover",
                    arguments = list(columns=c("ma_sn","ma_ln"),
relationship="gte"),
                    label="ma_sn.gt.ma_ln")
strat <- add.signal(strategy = strat,name="sigCrossover",
                    arguments =
list(column=c("ma_sn","ma_ln"),relationship="lt"),
                    label="ma_sn.lt.ma_ln")

# rules:
strat <- add.rule(strategy = strat,name='ruleSignal',
                  arguments = list(sigcol="ma_sn.gt.ma_ln",sigval=TRUE,
orderqty=1000000,
                                   ordertype='market',
orderside='long',pricemethod='market'),type='enter',path.dep=T)
strat <- add.rule(strategy = strat,name='ruleSignal',
                  arguments = list(sigcol="ma_sn.lt.ma_ln",sigval=TRUE,
orderqty=-1000000,
                                   ordertype='market',
orderside='long',pricemethod='market'),type='exit',path.deop=T)


library(PerformanceAnalytics)

ShortM <- c(5,10,15) #,20)
LongM <- c(20, 40) #, 50,60,100)

parm.comb <- expand.grid(ShortM=ShortM,LongM=LongM)
num.opts <- nrow(parm.comb)
res.vec <- rep(NA,num.opts)
res.vec2 <- res.vec


for(i in 1:num.opts) {

  # initialize portfolio and orders
  try(rm(list=ls(pos=.blotter),pos=.blotter),silent=TRUE)
  try(rm(list=ls(pos=.strategy),pos=.strategy),silent=TRUE)
  dummy <- initPortf(name=strat.name,symbols=stock.str, initDate=initDate)
  initOrders(portfolio=strat.name,initDate=initDate)

  # apply strategy
  ShortMA <- parm.comb[i,"ShortM"]
  LongMA <- parm.comb[i,"LongM"]

  if (ShortMA<LongMA) {
    out<-try(applyStrategy(strategy=strat, portfolios=strat.name,
verbose=F, parameters=list(shortMA=ShortMA, longMA= LongMA)))

    # calculate performance matric
    dummy <- updatePortf(Portfolio=strat.name,
Dates=paste('::',as.Date('2012-08-17'),sep=""))

    trading.pl <- getPortfolio(strat.name)$summary$Net.Trading.PL
    rets <- trading.pl/initEq
    omega <- as.numeric(Omega(rets))
    res.vec[i] <- omega

  }
}



--

        [[alternative HTML version deleted]]

_______________________________________________
R-SIG-Finance@r-project.org 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