Created a new View containing the new value
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies | |
* | |
* Please see distribution for license. | |
*/ | |
package com.opengamma.algotree.function; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
import com.opengamma.OpenGammaRuntimeException; | |
import com.opengamma.component.tool.AbstractTool; | |
import com.opengamma.core.config.impl.ConfigItem; | |
import com.opengamma.engine.value.ValueRequirementNames; | |
import com.opengamma.engine.view.ViewCalculationConfiguration; | |
import com.opengamma.engine.view.ViewDefinition; | |
import com.opengamma.examples.simulated.loader.ExampleEquityPortfolioLoader; | |
import com.opengamma.financial.security.equity.EquitySecurity; | |
import com.opengamma.financial.tool.ToolContext; | |
import com.opengamma.id.UniqueId; | |
import com.opengamma.livedata.UserPrincipal; | |
import com.opengamma.master.config.ConfigMasterUtils; | |
import com.opengamma.master.portfolio.PortfolioSearchRequest; | |
import com.opengamma.master.portfolio.PortfolioSearchResult; | |
import com.opengamma.scripts.Scriptable; | |
import com.opengamma.util.money.Currency; | |
/** | |
* Example code to create a set of example views. | |
* <p> | |
* It is designed to run against the HSQLDB example database. | |
*/ | |
@Scriptable | |
public class EquityViewDefinitionPopulator extends AbstractTool<ToolContext> { | |
/** Name of the default calculation configurations */ | |
private static final String DEFAULT_CALC_CONFIG = "Default"; | |
/** Logger. */ | |
private static final Logger s_logger = LoggerFactory.getLogger(EquityViewDefinitionPopulator.class); | |
/** A list of currency pairs */ | |
//------------------------------------------------------------------------- | |
/** | |
* Main method to run the tool. No arguments are needed. | |
* | |
* @param args the arguments, unused | |
*/ | |
public static void main(final String[] args) { // CSIGNORE | |
new EquityViewDefinitionPopulator().initAndRun(args, ToolContext.class); | |
//System.exit(0); | |
} | |
//------------------------------------------------------------------------- | |
@Override | |
protected void doRun() { | |
storeViewDefinition(getEquityViewDefinition(ExampleEquityPortfolioLoader.PORTFOLIO_NAME)); | |
} | |
private ViewDefinition getEquityViewDefinition(final String portfolioName) { | |
final UniqueId portfolioId = getPortfolioId(portfolioName).toLatest(); | |
final ViewDefinition viewDefinition = new ViewDefinition(portfolioName + " View1", portfolioId, UserPrincipal.getTestUser()); | |
viewDefinition.setDefaultCurrency(Currency.USD); | |
viewDefinition.setMaxFullCalculationPeriod(30000L); | |
viewDefinition.setMinFullCalculationPeriod(500L); | |
viewDefinition.setMinDeltaCalculationPeriod(500L); | |
viewDefinition.setMaxDeltaCalculationPeriod(30000L); | |
final ViewCalculationConfiguration defaultCalc = new ViewCalculationConfiguration(viewDefinition, DEFAULT_CALC_CONFIG); | |
addValueRequirements(defaultCalc, EquitySecurity.SECURITY_TYPE, | |
new String[] { | |
ValueRequirementNames.FAIR_VALUE, | |
//ValueRequirementNames.CAPM_BETA, | |
//ValueRequirementNames.HISTORICAL_VAR, | |
//ValueRequirementNames.SHARPE_RATIO, | |
//ValueRequirementNames.TREYNOR_RATIO, | |
//ValueRequirementNames.JENSENS_ALPHA, | |
//ValueRequirementNames.TOTAL_RISK_ALPHA, | |
//ValueRequirementNames.PNL, | |
MyValueRequirementNames.MyFunction, | |
MarketValueFromLastHistoricalValueFunction.MARKET_VALUE_NAME}); | |
viewDefinition.addViewCalculationConfiguration(defaultCalc); | |
return viewDefinition; | |
} | |
private void addValueRequirements(final ViewCalculationConfiguration calcConfiguration, final String securityType, final String[] valueRequirementNames) { | |
for (final String valueRequirementName : valueRequirementNames) { | |
calcConfiguration.addPortfolioRequirementName(securityType, valueRequirementName); | |
} | |
} | |
private UniqueId getPortfolioId(final String portfolioName) { | |
final PortfolioSearchRequest searchRequest = new PortfolioSearchRequest(); | |
searchRequest.setName(portfolioName); | |
final PortfolioSearchResult searchResult = getToolContext().getPortfolioMaster().search(searchRequest); | |
if (searchResult.getFirstPortfolio() == null) { | |
s_logger.error("Couldn't find portfolio {}", portfolioName); | |
throw new OpenGammaRuntimeException("Couldn't find portfolio " + portfolioName); | |
} | |
return searchResult.getFirstPortfolio().getUniqueId(); | |
} | |
private void storeViewDefinition(final ViewDefinition viewDefinition) { | |
System.out.println("View Definition saving : " + viewDefinition.getName()); | |
final ConfigItem<ViewDefinition> config = ConfigItem.of(viewDefinition, viewDefinition.getName(), ViewDefinition.class); | |
ConfigMasterUtils.storeByName(getToolContext().getConfigMaster(), config); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment