Learn R Programming

PortfolioEffectHFT (version 1.6)

optimization_forecast: Porfolio Optimization - Set Optimization Forecast

Description

Sets user-defined forecasted values for a given metric and returns modified optimizer object. By default value of the metric at time "t" is used as a forecast for "t+1".

Usage

optimization_forecast(optimizer, metricType, symbol, value, time)

Arguments

optimizer
Optimizer object created using optimization_goal( ) function
metricType
Choose forecast metric type: "Beta" - position beta, "Variance" - position variance, "Skewness" - position skewness, "Kurtosis" - position kurtosis, "Cumulant1" - position 1-th cumulant, "Cumulant2" - position 2-th cumulant, "Cumulant3" - position 3-th cumulant, "Cumulant4" - position 4-th cumulant
symbol
Unique identifier of an instrument
value
One dimensional vector of forecasted metric values.
time
One dimensional vector of time values (in milliseconds since the beginning of epoch).

Value

Examples

Run this code
## Not run: 
# windowLength='10m'
#   
#   portfolio<-portfolio_create("2014-11-03 09:30:00","2014-11-03 16:00:00")
#   
#   # Add position AAPL and GOOG to portfolio
#   portfolio_addPosition(portfolio,"AAPL",100)
#   portfolio_addPosition(portfolio,"GOOG",200)
#   portfolio_settings(portfolio,resultsSamplingInterval=windowLength)
# 
# 
#   
# forecastingPortfolio=portfolio_create(portfolio )
# portfolio_settings(forecastingPortfolio,windowLength=windowLength)
# 
# 
#   fReturn=list()
#   for(symbol in portfolio_symbols(forecastingPortfolio)){
#     fReturn[[symbol]]=position_expectedReturn(forecastingPortfolio,symbol)
#     fReturn[[symbol]][,2]=c(fReturn[[symbol]][-1,2],fReturn[[symbol]][1,2])
#   }
#     
#   optimizerTest1<-optimization_goal(portfolio,goal="SharpeRatio", 
#   direction="maximize",forecastPortfolioWindow=windowLength,forecastExponentialWindow=windowLength)
#  
#   for(symbol in portfolio_symbols(portfolio)){
#     optimizerTest1=optimization_forecast(optimizerTest1,'ExpReturn',
#     symbol,fReturn[[symbol]][,2],fReturn[[symbol]][,1])
#   }
#   portfolioTempForecast=optimization_run(optimizerTest1)
# 
#   optimizerTest<-optimization_goal(portfolio,goal="SharpeRatio", direction="maximize")
#   portfolioTemp=optimization_run(optimizerTest)
# util_plot2d(portfolio_sharpeRatio(portfolioTemp),"SharpeRatio",legend="No forecast")+
# util_line2d(portfolio_sharpeRatio(portfolioTempForecast),legend="Perfect forecast")
# 
# ## End(Not run)

Run the code above in your browser using DataLab