Learn R Programming

PortfolioEffectHFT (version 1.6)

optimization_goal: Porfolio Optimization - Set Optimization Goal

Description

Initializes portfolio optimization goals and returns newly constructed optimizer object.

Usage

optimization_goal(portfolio, goal=c("EquiWeight", "ContraintsOnly", "Variance", "VaR", "CVaR", "ExpectedReturn", "Return", "SharpeRatio", "ModifiedSharpeRatio", "StarrRatio" ), direction=c("minimize", "maximize"), confidenceInterval=0.95, forecastPortfolioWindow='1m', forecastTimeStep='1m', forecastType=c("exp_smoothing","simple"), forecastExponentialWindow='5m', errorInDecimalPoints=1e-12, globalOptimumProbability=0.99)

Arguments

portfolio
Portfolio object created using portfolio_create( ) function
goal
Choose optimization goal: "Variance" - portfolio returns variance, "VaR" - portfolio Value-at-Risk, "CVaR" - portfolio Expected Tail Loss, "ExpectedReturn" - portfolio expected return, "Return" - portfolio return, "SharpeRatio" - portfolio Sharpe Ratio, "ModifiedSharpeRatio" - portfolio modified Sharpe Ratio, "StarrRatio" - portfolio STARR Ratio, "EquiWeight" - no optimization is performed, constraints are not processes. Portfolio positions are returned with equal weights, "ContraintsOnly" - no optimization is performed. This is used for returning portfolio that meets specified set of constraints.
direction
choose direction of optimization algorithm: "minimize" - maximization goal, "maximize" - minimization goal
confidenceInterval
Confidence interval (in decimals) to be used as a cut-off point. Applicable for "VaR", "CVaR", "ModifiedSharpeRatio", "StarrRatio" metrics only.
forecastPortfolioWindow
Rolling window length for metric estimations and position history (look-behind duration) used in computing forecast values. Available interval values are: "Xs" - seconds, "Xm" - minutes, "Xh" - hours, "Xd" - trading days (6.5 hours in a trading day), "Xw" - weeks (5 trading days in 1 week), "Xmo" - month (21 trading day in 1 month), "Xy" - years (256 trading days in 1 year), "all" - all observations are used. Default value is "1d" - one trading day .
forecastTimeStep
Forecast time step length (look-ahead duration). Available interval values are: "Xs" - seconds, "Xm" - minutes, "Xh" - hours, "Xd" - trading days (6.5 hours in a trading day), "Xw" - weeks (5 trading days in 1 week), "Xmo" - month (21 trading day in 1 month), "Xy" - years (256 trading days in 1 year). Default value is "1m" - one trading day.
forecastType
Forecast algorithm, if user-defined metric forecasts are not provided: "simple" - use last available metric value, "exp_smoothing" - use automatic exponential smoothing. Default value is "exp_smoothing".
forecastExponentialWindow
Length of exponential window if forecastType is set to "exp_smoothing". vailable interval values are: "Xs" - seconds, "Xm" - minutes, "Xh" - hours, "Xd" - trading days (6.5 hours in a trading day), "Xw" - weeks (5 trading days in 1 week), "Xmo" - month (21 trading day in 1 month), "Xy" - years (256 trading days in 1 year). Default value is "1m" - one trading day.
errorInDecimalPoints
Estimation error in decimal points for computing optimal weights. Smaller value slows down optimization algorithm, but increases precision.
globalOptimumProbability
Required probability level of a global optimum. Higher value slows down optimization algorithm, but increases chance of finding globally optimal solution.

Value

Optimizer object.

Examples

Run this code
## Not run: 
# dateStart = "2014-11-17 09:30:00"
# dateEnd = "2014-11-17 16:00:00"
# portfolio<-portfolio_create(dateStart,dateEnd)
# portfolio_settings(portfolio,portfolioMetricsMode="price",windowLength = '3600s',
# resultsSamplingInterval='60s')
# portfolio_addPosition(portfolio,'AAPL',100)
# portfolio_addPosition(portfolio,'C',300) 
# optimizer<-optimization_goal(portfolio,goal="Return", 
# direction="maximize")
# optimizer=optimization_constraint_beta(optimizer,"<=",0.5)
# optimalPortfolio<-optimization_run(optimizer)
# print(optimalPortfolio)
# ## End(Not run)

Run the code above in your browser using DataLab