Skip to content

Instantly share code, notes, and snippets.

@febintt
Created December 13, 2013 13:38
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save febintt/7944314 to your computer and use it in GitHub Desktop.
Created a new View containing the new value
/**
* 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