예제 #1
0
파일: adret.py 프로젝트: tjisana/IEOR4739
    # Solve
    m.optimize()

    log.jointoutput("j x[j]   mu[j]  delta[j]  mu[j] - delta[j]\n")
    for j in xrange(n):
        log.jointoutput(str(j) + " " + (str(x[j])).ljust(5,' ') + "  " + (str(mu[j])).ljust(5,' ') + "    " + (str(delta[j].x)).ljust(8,' ') + " " + str(mu[j]-delta[j].x) + "\n")

    nominal = 0
    adversarial = 0
    for j in xrange(n):
        nominal += mu[j]*x[j]
        adversarial += (mu[j] - delta[j].x)*x[j]

    log.jointoutput("nominal return: " + str(nominal)+"; adversarial: " + str(adversarial) + "\n     objective: " + str(m.objval) + ";  net:" + str(nominal - m.objval) + "\n")

###main.  Syntax: adret.py datafile lpfilename.  The data file has the positions, the 
###       expected returns and the risk model (gamma and Gamma)

if len(sys.argv) != 3:  # the program name and datafile
  # stop the program and print an error message                                 
  sys.exit("usage: adret.py dataname lpname ")

log = Logger("adret.log")

n, gamma, Gamma, x, mu = datareader(log,sys.argv[1])

formulator(log, n, gamma, Gamma, x, mu, sys.argv[2])

log.closelog()