Hello

I have an issue on a payout code. eval function does not succeed for myPayout_GMV because of unused argument (returns). I have put below all the R code.

Thks.

PS: other issue on testGlobalAllocationSubmission which does not succeed even for myPayout_EW function.

#packages

.sourceQlib()

library(quantmod)

library(quadprog)

allocation = getTickersGlobalAllocationChallenge()

portAllocation = portfolio(as.list(allocation[allocation$field==“bb live”, “ticker”]))

myPayout_EW = function(features)

{

# Getting data from dataFeatures

df = getTickersGlobalAllocationChallenge()

bbLive = subset(features, tickers=df[df$field==“bb live”, “ticker”], fields=“bb_live”)

bbLive = bbLive@pxs

# Equally-weighted

signal = xts(x = matrix(0, nrow(bbLive), ncol(bbLive)), order.by = index(bbLive))

for (i in 1:nrow(bbLive))

{

for(j in 1:ncol(bbLive)) signal[i, j] = 1/ncol(bbLive)

}

colnames(signal) = df[df$field==“bb live”, “ticker”]

return(signal)

}

myPayout_GMV = function(features)

{

# Getting data from dataFeatures

df = getTickersGlobalAllocationChallenge()

bbLive = subset(features, tickers=df[df$field==“bb live”, “ticker”], fields=“bb_live”)

bbLive = bbLive@pxs

# Covariance matrix

n <- ncol(bbLive)

T <- nrow(bbLive)

e <- rep(1, n)

returns <- matrix(0, T, n)

for (j in 1:n) returns[, j] <- Delt(bbLive[, j], type = ‘arithmetic’)

Sigma <- cov(returns[2:T,]) * (T - 1) / (T - n - 2)

# Empirical constrained GMV with no short selling and a maximum weight of 0.2 by asset

# min(-d^T b + 1/2 b^T D b) with the constraints A^T b >= b_0

dvec <- numeric(n)

# Constraints of sum of the weights equal to 1 and weights between 0 and 0.2

Amat <- cbind(e, diag(1, n, n), -diag(1, n, n))

bvec <- cbind(1, t(numeric(n)), t(rep(-0.2, n)))

omega <- solve.QP(Sigma, dvec, Amat, bvec, meq = 1)$solution

signal = xts(x = matrix(0, nrow(bbLive), ncol(bbLive)), order.by = index(bbLive))

for(i in 1:T) signal[i, ] = omega

colnames(signal) = df[df$field==“bb live”, “ticker”]

return(signal)

}

# portAllocation = payout(portAllocation, myPayout_EW)

portAllocation = payout(portAllocation, myPayout_GMV)

portAllocation = eval(portAllocation, zoom=“2003::2015”)

backtest(portAllocation, tc=0.01, rebalancePenalty=0.02, rebalancePenaltyPerAsset=FALSE)