Table of Contents

Class TimeSeries

Namespace
Balsam
Assembly
Balsam.Backtester.dll

Encapsulates a series of paired date/double observations.

[ProtoContract(IgnoreListHandling = true)]
public class TimeSeries : SeriesBase<double>, ISeries, IEnumerable<double>, IEnumerable, ICloneable
Inheritance
TimeSeries
Implements
Derived
Inherited Members
Extension Methods

Constructors

TimeSeries()

Initializes an empty timeseries.

public TimeSeries()

TimeSeries(IEnumerable<DateTime>)

Initializes a new timeseries using the specified dates.

public TimeSeries(IEnumerable<DateTime> dates)

Parameters

dates IEnumerable<DateTime>

TimeSeries(IEnumerable<DateTime>, IEnumerable<double>)

Initializes a new timeseries using the specified dates and values.

public TimeSeries(IEnumerable<DateTime> dates, IEnumerable<double> values)

Parameters

dates IEnumerable<DateTime>
values IEnumerable<double>

TimeSeries(IEnumerable<DateTime>, double)

Initializes a new timeseries using the specified dates and value.

public TimeSeries(IEnumerable<DateTime> dates, double value)

Parameters

dates IEnumerable<DateTime>
value double

TimeSeries(int)

Initializes a new timeseries using the specified capacity.

public TimeSeries(int capacity)

Parameters

capacity int

Methods

Clone()

Returns a copy of this TimeSeries.

public TimeSeries Clone()

Returns

TimeSeries

Compare(TimeSeries, TimeSeries, ComparisonOperator)

Returns a BooleanSeries comparing the left timeseries to the right using the specified comparison operator.

public static BooleanSeries Compare(TimeSeries left, TimeSeries right, ComparisonOperator op)

Parameters

left TimeSeries
right TimeSeries
op ComparisonOperator

Returns

BooleanSeries

Exceptions

ArgumentNullException
InvalidOperationException
NotSupportedException

Compare(TimeSeries, double, ComparisonOperator)

Returns a BooleanSeries comparing the left timeseries to a double value using the specified comparison operator.

public static BooleanSeries Compare(TimeSeries series, double value, ComparisonOperator op)

Parameters

series TimeSeries
value double
op ComparisonOperator

Returns

BooleanSeries

Compare(double, TimeSeries, ComparisonOperator)

Returns a BooleanSeries comparing the double value to the specified timeseries using the specified comparison operator.

public static BooleanSeries Compare(double value, TimeSeries series, ComparisonOperator op)

Parameters

value double
series TimeSeries
op ComparisonOperator

Returns

BooleanSeries

Compress(ICompressionProvider)

Returns a compressed TimeSeries using the specified compression provider.

public TimeSeries Compress(ICompressionProvider compressor)

Parameters

compressor ICompressionProvider

Returns

TimeSeries

Compress(ICompressionProvider, CompressionOperator)

Returns a compressed TimeSeries using the specified compression provider and compression operation.

public TimeSeries Compress(ICompressionProvider compressor, CompressionOperator operation)

Parameters

compressor ICompressionProvider
operation CompressionOperator

Returns

TimeSeries

ContainsImaginaryNumbers()

Returns true if the TimeSeries contains any +/- Infinity or NaN values.

public bool ContainsImaginaryNumbers()

Returns

bool

Equals(TimeSeries)

Returns true when the specified timeseries is identical to the current one (all dates and values are equal).

public bool Equals(TimeSeries series)

Parameters

series TimeSeries

Returns

bool

Equals(TimeSeries, TimeSeries)

Returns true when the specified timeseries are identical (all dates and values are equal).

public static bool Equals(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

bool

Load(string)

Loads a timeseries from a text file.

public static TimeSeries Load(string file)

Parameters

file string

Returns

TimeSeries

Load(string, char, bool)

Loads a timeseries from a text file using the specified delimiter.

public static TimeSeries Load(string file, char delimiter, bool includeNaNs = false)

Parameters

file string
delimiter char
includeNaNs bool

Returns

TimeSeries

RemoveImaginaryNumbers()

Removes all NaN, +Infinity, or -Infinity values from this TimeSeries.

public void RemoveImaginaryNumbers()

ReplaceImaginaryNumbers(double)

Converts all NaN or +/-Infinity values to 0 or a specified value.

public void ReplaceImaginaryNumbers(double replacementValue = 0)

Parameters

replacementValue double

Subset(DateTime)

Returns a new TimeSeries starting at the specified date.

public TimeSeries Subset(DateTime startDate)

Parameters

startDate DateTime

Returns

TimeSeries

Subset(DateTime, DateTime)

Returns a subset of this TimeSeries inclusive of the specified start and end dates.

public TimeSeries Subset(DateTime startDate, DateTime endDate)

Parameters

startDate DateTime
endDate DateTime

Returns

TimeSeries

Subset(int, int)

Returns a subset of this TimeSeries starting at the specified index.

public TimeSeries Subset(int index, int count)

Parameters

index int

The starting index.

count int

The number of observations to return. Automatically adjusted to prevent out-of-bounds errors.

Returns

TimeSeries

Sync(ISeries)

Returns a new TimeSeries with dates synced to the specified series.

public TimeSeries Sync(ISeries series)

Parameters

series ISeries

The series to sync to.

Returns

TimeSeries

Sync(ISeries, SyncOption)

Returns a new TimeSeries with dates synced to the specified series.

public TimeSeries Sync(ISeries series, SyncOption option)

Parameters

series ISeries

The series to sync to.

option SyncOption

Controls whether sync carries over the prior value or uses a zero for missing dates.

Returns

TimeSeries

Sync(IEnumerable<DateTime>)

Returns a new TimeSeries synced to the specified enumerable of dates.

public TimeSeries Sync(IEnumerable<DateTime> syncDates)

Parameters

syncDates IEnumerable<DateTime>

Returns

TimeSeries

Sync(IEnumerable<DateTime>, SyncOption)

Returns a new TimeSeries synced to the specified enumerable of dates.

public TimeSeries Sync(IEnumerable<DateTime> syncDates, SyncOption option)

Parameters

syncDates IEnumerable<DateTime>
option SyncOption

Returns

TimeSeries

Operators

operator +(TimeSeries, TimeSeries)

Adds two timeseries.

public static TimeSeries operator +(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

TimeSeries

operator +(TimeSeries, double)

Adds a timeseries and a double value.

public static TimeSeries operator +(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

TimeSeries

operator +(double, TimeSeries)

Adds a double value and a timeseries.

public static TimeSeries operator +(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

TimeSeries

operator /(TimeSeries, TimeSeries)

Divides one timeseries by another.

public static TimeSeries operator /(TimeSeries numerator, TimeSeries denominator)

Parameters

numerator TimeSeries
denominator TimeSeries

Returns

TimeSeries

operator /(TimeSeries, double)

Divides a timeseries by a value.

public static TimeSeries operator /(TimeSeries numerator, double denominator)

Parameters

numerator TimeSeries
denominator double

Returns

TimeSeries

operator /(double, TimeSeries)

Divides a value by a timeseries.

public static TimeSeries operator /(double numerator, TimeSeries denominator)

Parameters

numerator double
denominator TimeSeries

Returns

TimeSeries

operator >(TimeSeries, TimeSeries)

Returns true when the value of the left is greater than the right.

public static BooleanSeries operator >(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

BooleanSeries

operator >(TimeSeries, double)

Returns true when the value of the left is greater than the right.

public static BooleanSeries operator >(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

BooleanSeries

operator >(double, TimeSeries)

Returns true when the value of the left is greater than the right.

public static BooleanSeries operator >(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

BooleanSeries

operator >=(TimeSeries, TimeSeries)

Returns true when the value of the left is greater than or equal to the right.

public static BooleanSeries operator >=(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

BooleanSeries

operator >=(TimeSeries, double)

Returns true when the value of the left is greater than or equal to the right.

public static BooleanSeries operator >=(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

BooleanSeries

operator >=(double, TimeSeries)

Returns true when the value of the left is greater than or equal to the right.

public static BooleanSeries operator >=(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

BooleanSeries

implicit operator TimeSeries(BooleanSeries)

Converts a BooleanSeries to a TimeSeries containing 1 for true and 0 for false.

public static implicit operator TimeSeries(BooleanSeries series)

Parameters

series BooleanSeries

Returns

TimeSeries

implicit operator TimeSeries(IntegerSeries)

Converts an integer series to a timeseries.

public static implicit operator TimeSeries(IntegerSeries series)

Parameters

series IntegerSeries

Returns

TimeSeries

operator <(TimeSeries, TimeSeries)

Returns true when the value of the left is less than the right.

public static BooleanSeries operator <(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

BooleanSeries

operator <(TimeSeries, double)

Returns true when the value of the left is less than the right.

public static BooleanSeries operator <(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

BooleanSeries

operator <(double, TimeSeries)

Returns true when the value of the left is less than the right.

public static BooleanSeries operator <(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

BooleanSeries

operator <=(TimeSeries, TimeSeries)

Returns true when the value of the left is less than or equal to the right.

public static BooleanSeries operator <=(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

BooleanSeries

operator <=(TimeSeries, double)

Returns true when the value of the left is less than or equal to the right.

public static BooleanSeries operator <=(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

BooleanSeries

operator <=(double, TimeSeries)

Returns true when the value of the left is less than or equal to the right.

public static BooleanSeries operator <=(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

BooleanSeries

operator *(TimeSeries, TimeSeries)

Multiplies the left timeseries by the right.

public static TimeSeries operator *(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

TimeSeries

operator *(TimeSeries, double)

Multiplies the left timeseries by a value.

public static TimeSeries operator *(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

TimeSeries

operator *(double, TimeSeries)

Multiplies the right timeseries by a value.

public static TimeSeries operator *(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

TimeSeries

operator -(TimeSeries, TimeSeries)

Subtracts the right timeseries from the left timeseries.

public static TimeSeries operator -(TimeSeries left, TimeSeries right)

Parameters

left TimeSeries
right TimeSeries

Returns

TimeSeries

operator -(TimeSeries, double)

Subtracts a value from a timeseries.

public static TimeSeries operator -(TimeSeries left, double right)

Parameters

left TimeSeries
right double

Returns

TimeSeries

operator -(double, TimeSeries)

Subtracts a timeseries from a value.

public static TimeSeries operator -(double left, TimeSeries right)

Parameters

left double
right TimeSeries

Returns

TimeSeries

operator -(TimeSeries)

Negates a timeseries.

public static TimeSeries operator -(TimeSeries series)

Parameters

series TimeSeries

Returns

TimeSeries