package com.activequant.domainmodel; import com.activequant.domainmodel.annotations.Property; /** * Holds a variety of performance related figures, so that * an automated report can be generated, for example with BIRT. * * @author GhostRider * */ public class PerformanceReport extends PersistentEntity { private String reportId; private TimeStamp reportTimeStamp; private Long startDate8, endDate8; private Double annualizedRateOfReturn, avgMonthlyReturn, last12MthsReturn, last25MthsReturn, percPosMonths, returnSinceStratInception, sharpeRatio, sortinoRatio, worstDrawdown, skewness, excessKurtosis, annualizedVolatility; /** * TimeStamps contains the timestamps in nanoseconds that correspond to performance measures. * They must be aligned. */ private Long[] timestamps; private Double[] performance; private String[] instrumentUniverse; private Double[] instrUniverseWeight; private String seriesId; public PerformanceReport() { super(PerformanceReport.class.getCanonicalName()); } public PerformanceReport(String className){ super(className); } @Override public String getId() { return nullSafe(reportId)+"."+ nullSafe(reportTimeStamp); } @Property public String getReportId() { return reportId; } public void setReportId(String reportId) { this.reportId = reportId; } @Property public Long getStartDate8() { return startDate8; } public void setStartDate8(Long startDate8) { this.startDate8 = startDate8; } @Property public Long getEndDate8() { return endDate8; } public void setEndDate8(Long endDate8) { this.endDate8 = endDate8; } @Property public Double getAnnualizedRateOfReturn() { return annualizedRateOfReturn; } public void setAnnualizedRateOfReturn(Double annualizedRateOfReturn) { this.annualizedRateOfReturn = annualizedRateOfReturn; } @Property public Double getAvgMonthlyReturn() { return avgMonthlyReturn; } public void setAvgMonthlyReturn(Double avgMonthlyReturn) { this.avgMonthlyReturn = avgMonthlyReturn; } @Property public Double getLast12MthsReturn() { return last12MthsReturn; } public void setLast12MthsReturn(Double last12MthsReturn) { this.last12MthsReturn = last12MthsReturn; } @Property public Double getLast25MthsReturn() { return last25MthsReturn; } public void setLast25MthsReturn(Double last25MthsReturn) { this.last25MthsReturn = last25MthsReturn; } @Property public Double getPercPosMonths() { return percPosMonths; } public void setPercPosMonths(Double percPosMonths) { this.percPosMonths = percPosMonths; } @Property public Double getReturnSinceStratInception() { return returnSinceStratInception; } public void setReturnSinceStratInception(Double returnSinceStratInception) { this.returnSinceStratInception = returnSinceStratInception; } @Property public Double getSharpeRatio() { return sharpeRatio; } public void setSharpeRatio(Double sharpeRatio) { this.sharpeRatio = sharpeRatio; } @Property public Double getSortinoRatio() { return sortinoRatio; } public void setSortinoRatio(Double sortinoRatio) { this.sortinoRatio = sortinoRatio; } @Property public Double getWorstDrawdown() { return worstDrawdown; } public void setWorstDrawdown(Double worstDrawdown) { this.worstDrawdown = worstDrawdown; } @Property public Double getSkewness() { return skewness; } public void setSkewness(Double skewness) { this.skewness = skewness; } @Property public Double getExcessKurtosis() { return excessKurtosis; } public void setExcessKurtosis(Double excessKurtosis) { this.excessKurtosis = excessKurtosis; } @Property public Double getAnnualizedVolatility() { return annualizedVolatility; } public void setAnnualizedVolatility(Double annualizedVolatility) { this.annualizedVolatility = annualizedVolatility; } @Property public Long[] getTimestamps() { return timestamps; } public void setTimestamps(Long[] timestamps) { this.timestamps = timestamps; } @Property public Double[] getPerformance() { return performance; } public void setPerformance(Double[] performance) { this.performance = performance; } @Property public String[] getInstrumentUniverse() { return instrumentUniverse; } public void setInstrumentUniverse(String[] instrumentUniverse) { this.instrumentUniverse = instrumentUniverse; } @Property public Double[] getInstrUniverseWeight() { return instrUniverseWeight; } public void setInstrUniverseWeight(Double[] instrUniverseWeight) { this.instrUniverseWeight = instrUniverseWeight; } @Property public TimeStamp getReportTimeStamp() { return reportTimeStamp; } public void setReportTimeStamp(TimeStamp reportTimeStamp) { this.reportTimeStamp = reportTimeStamp; } @Property public String getSeriesId() { return seriesId; } public void setSeriesId(String seriesId) { this.seriesId = seriesId; } }