Class SeriesManager
- Namespace
- Balsam
- Assembly
- Balsam.Backtester.dll
An abstract class for maintaining concurrency across series and supporting data management for backtesting.
public abstract class SeriesManager
- Inheritance
-
SeriesManager
- Derived
- Inherited Members
- Extension Methods
Constructors
SeriesManager()
Initializes a new SeriesManager.
protected SeriesManager()
Properties
CacheIndicators
Gets/sets whether indicator timeseries are cached for a particular symbol/parameter setting. Default is true.
protected bool CacheIndicators { get; set; }
Property Value
Close
Gets the closes of the primary series.
protected TimeSeries Close { get; }
Property Value
Col1
Gets/sets column 1.
protected TimeSeries Col1 { get; set; }
Property Value
Col10
Gets/sets column 10.
protected TimeSeries Col10 { get; set; }
Property Value
Col11
Gets/sets column 11.
protected TimeSeries Col11 { get; set; }
Property Value
Col12
Gets/sets column 12.
protected TimeSeries Col12 { get; set; }
Property Value
Col13
Gets/sets column 13.
protected TimeSeries Col13 { get; set; }
Property Value
Col14
Gets/sets column 14
protected TimeSeries Col14 { get; set; }
Property Value
Col15
Gets/sets column 15.
protected TimeSeries Col15 { get; set; }
Property Value
Col16
Gets/sets column 16.
protected TimeSeries Col16 { get; set; }
Property Value
Col17
Gets/sets column 17.
protected TimeSeries Col17 { get; set; }
Property Value
Col18
Gets/sets column 18.
protected TimeSeries Col18 { get; set; }
Property Value
Col19
Gets/sets column 19.
protected TimeSeries Col19 { get; set; }
Property Value
Col2
Gets/sets column 2.
protected TimeSeries Col2 { get; set; }
Property Value
Col20
Gets/sets column 20.
protected TimeSeries Col20 { get; set; }
Property Value
Col3
Gets/sets column 3.
protected TimeSeries Col3 { get; set; }
Property Value
Col4
Gets/sets column 4.
protected TimeSeries Col4 { get; set; }
Property Value
Col5
Gets/sets column 5.
protected TimeSeries Col5 { get; set; }
Property Value
Col6
Gets/sets column 6.
protected TimeSeries Col6 { get; set; }
Property Value
Col7
Gets/sets column 7.
protected TimeSeries Col7 { get; set; }
Property Value
Col8
Gets/sets column 8.
protected TimeSeries Col8 { get; set; }
Property Value
Col9
Gets/sets column 9.
protected TimeSeries Col9 { get; set; }
Property Value
Condition1
Gets/sets condition 1.
protected BooleanSeries Condition1 { get; set; }
Property Value
Condition2
Gets/sets condition 2.
protected BooleanSeries Condition2 { get; set; }
Property Value
Condition3
Gets/sets condition 3.
protected BooleanSeries Condition3 { get; set; }
Property Value
Condition4
Gets/sets condition 4.
protected BooleanSeries Condition4 { get; set; }
Property Value
Condition5
Gets/sets condition 5.
protected BooleanSeries Condition5 { get; set; }
Property Value
Condition6
Gets/sets condition 6.
protected BooleanSeries Condition6 { get; set; }
Property Value
Condition7
Gets/sets condition 7.
protected BooleanSeries Condition7 { get; set; }
Property Value
Condition8
Gets/sets condition 8.
protected BooleanSeries Condition8 { get; set; }
Property Value
CurrentBar
Gets the current bar or null if no primary series is set.
protected Bar CurrentBar { get; }
Property Value
CurrentDate
Gets the current date being tested.
protected DateTime CurrentDate { get; }
Property Value
Dates
Returns test dates in read-only wrapper.
protected SeriesManager.TestDates Dates { get; }
Property Value
EndDate
Gets/sets an end date for the simulation. Use this to stop processing early.
public DateTime EndDate { get; set; }
Property Value
FirstValidDate
Gets/sets the first date for which all data is valid (i.e. the current bar is greater than or equal to max bars back). This property is initialized automatically during OnStrategyStart() processing; however, it can be overriden by setting the property manually in OnStrategyStart(). This can be helpful when the automatically generated date is too early because certain initialization is not readily discoverable. Note that dates manually set that are earlier than the automatically generated value will be ignored.
protected DateTime FirstValidDate { get; set; }
Property Value
High
Gets the highs of the primary series.
protected TimeSeries High { get; }
Property Value
Index
Gets the index of the date being testing or -1 if the simulation is not running.
protected int Index { get; }
Property Value
Low
Gets the lows of the primary series.
protected TimeSeries Low { get; }
Property Value
NextDate
Gets the next (future) test date or DateTime.MaxValue if invalid.
protected DateTime NextDate { get; }
Property Value
Open
Gets the opens of the primary series.
protected TimeSeries Open { get; }
Property Value
OpenInterest
Gets the open interest of the primary series.
protected TimeSeries OpenInterest { get; }
Property Value
PreviousDate
Gets the prior test date or DateTime.MinValue if invalid.
protected DateTime PreviousDate { get; }
Property Value
PrimarySeries
Gets/sets the primary series.
public BarSeries PrimarySeries { get; set; }
Property Value
Series
Gets the underlying collection of BarSeries.
public BarSeriesCollection Series { get; set; }
Property Value
Setback
Gets/sets the number of extra bars beyond FirstValidDate used to initialize a simulation. Default is 1 to allow for referencing of the prior bar without problems.
protected int Setback { get; set; }
Property Value
StartDate
Gets/sets a start date for the simulation. This will override the FirstValidDate if it is later, otherwise it will be ignored.
public DateTime StartDate { get; set; }
Property Value
Symbol
Gets the symbol of the primary series or null if no primary series is set.
protected string Symbol { get; }
Property Value
Tick
Returns the tick size in decimal form for the primary series.
protected double Tick { get; }
Property Value
UnadjustedClose
Gets the unadjusted closes of the primary series.
protected TimeSeries UnadjustedClose { get; }
Property Value
Volume
Gets the volume of the primary series.
protected TimeSeries Volume { get; }
Property Value
Methods
Abs(TimeSeries)
Returns the absolute value of the specified series.
protected TimeSeries Abs(TimeSeries series)
Parameters
series
TimeSeries
Returns
AddToActive(ISeries)
Adds the specified series to the internal collection that ensures concurrency is maintained. This only needs to be called if the user creates new ISeries objects that need to have concurrency maintained after a simulation is already running.
protected void AddToActive(ISeries series)
Parameters
series
ISeries
Adx(BarSeries, int)
Returns Wilder's Average Directional Index for the specified series.
protected TimeSeries Adx(BarSeries series, int length)
Parameters
Returns
Adx(int)
Returns Wilder's Average Directional Index for the Primary series.
protected TimeSeries Adx(int length)
Parameters
length
int
Returns
Atr(BarSeries, int)
Returns the average true range of the specified series smoothed with a Sma of the specified length.
protected TimeSeries Atr(BarSeries series, int length)
Parameters
Returns
Atr(int)
Returns the average true range of the Primary series smoothing using a Sma of the specified length.
protected TimeSeries Atr(int length)
Parameters
length
int
Returns
BarsSinceHigh(TimeSeries, int)
Returns the number of bars that have passed since the specified series made a new high.
protected TimeSeries BarsSinceHigh(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
BarsSinceLow(TimeSeries, int)
Returns the number of bars that have passed since the specified series made a new low.
protected TimeSeries BarsSinceLow(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
BollingerBand(TimeSeries, int, double)
Returns the Bollinger Band.
protected TimeSeries BollingerBand(TimeSeries series, int length, double standardDeviations)
Parameters
series
TimeSerieslength
intstandardDeviations
doubleNumber of standard deviations. Use negative number for lower band.
Returns
Correlation(TimeSeries, TimeSeries, int)
Returns the Pearson's correlation coefficient between series1 and series2 over the specified number of bars.
protected TimeSeries Correlation(TimeSeries series1, TimeSeries series2, int length)
Parameters
series1
TimeSeriesseries2
TimeSerieslength
int
Returns
CrossAbove(TimeSeries, TimeSeries)
Returns true when series1 crosses above series2.
protected BooleanSeries CrossAbove(TimeSeries series1, TimeSeries series2)
Parameters
series1
TimeSeriesseries2
TimeSeries
Returns
CrossAbove(TimeSeries, double)
Returns true when the specified timeseries crosses above the specified value.
protected BooleanSeries CrossAbove(TimeSeries series, double value)
Parameters
series
TimeSeriesvalue
double
Returns
CrossBelow(TimeSeries, TimeSeries)
Returns true when series1 crosses below series2.
protected BooleanSeries CrossBelow(TimeSeries series1, TimeSeries series2)
Parameters
series1
TimeSeriesseries2
TimeSeries
Returns
CrossBelow(TimeSeries, double)
Returns true when the specified timeseries crosses below the specified value.
protected BooleanSeries CrossBelow(TimeSeries series, double value)
Parameters
series
TimeSeriesvalue
double
Returns
Cumulative(TimeSeries)
Returns the cumulative sum of the specified timeseries.
protected TimeSeries Cumulative(TimeSeries series)
Parameters
series
TimeSeries
Returns
EfficiencyRatio(TimeSeries, int)
Returns the Efficiency Ratio.
protected TimeSeries EfficiencyRatio(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Ema(TimeSeries, double)
Returns an exponential moving average with a specified smoothing coefficient.
protected TimeSeries Ema(TimeSeries series, double factor)
Parameters
series
TimeSeriesfactor
double
Returns
Ema(TimeSeries, int)
Returns an exponential moving average with specified length.
protected TimeSeries Ema(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
ExponentialWma(TimeSeries, int)
Returns an exponential weighted moving average.
protected TimeSeries ExponentialWma(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
GetActiveSeries()
Returns all ISeries objects not decorated with the SuppressExport attribute. Useful for diagnostics or exporting data.
public IEnumerable<ISeries> GetActiveSeries()
Returns
Highest(TimeSeries, int)
Returns the highest value of the specified timeseries over a specified lookback.
protected TimeSeries Highest(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
HistoricalVolatility(BarSeries, int)
Returns historical volatility using unadjusted prices to calculate accurate percentage returns.
protected TimeSeries HistoricalVolatility(BarSeries series, int length)
Parameters
Returns
HistoricalVolatility(TimeSeries, int)
Returns the historical volatility.
protected TimeSeries HistoricalVolatility(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
HistoricalVolatility(int)
Returns the historical volatilty of the primary series for the specified length.
protected TimeSeries HistoricalVolatility(int length)
Parameters
length
int
Returns
HookAbove(TimeSeries, TimeSeries)
Returns true when the left series closes down from above the right series.
protected BooleanSeries HookAbove(TimeSeries left, TimeSeries right)
Parameters
left
TimeSeriesright
TimeSeries
Returns
HookAbove(TimeSeries, double)
Returns true when the series closes down from above the specified value.
protected BooleanSeries HookAbove(TimeSeries series, double value)
Parameters
series
TimeSeriesvalue
double
Returns
HookBelow(TimeSeries, TimeSeries)
Returns true when the left series closes up from below the right series.
protected BooleanSeries HookBelow(TimeSeries left, TimeSeries right)
Parameters
left
TimeSeriesright
TimeSeries
Returns
HookBelow(TimeSeries, double)
Returns true when the series closes up from below the specified value.
protected BooleanSeries HookBelow(TimeSeries series, double value)
Parameters
series
TimeSeriesvalue
double
Returns
KeltnerChannel(BarSeries, int, double)
Returns the Keltner Channel of the specified series.
protected TimeSeries KeltnerChannel(BarSeries series, int length, double factor)
Parameters
Returns
KeltnerChannel(int, double)
Returns the Keltner Channel of the Primary series.
protected TimeSeries KeltnerChannel(int length, double factor)
Parameters
Returns
Lag(TimeSeries)
Lags the specified timeseries by one bar.
protected TimeSeries Lag(TimeSeries series)
Parameters
series
TimeSeries
Returns
Lag(TimeSeries, int)
Lags a timeseries by the specified number of bars.
protected TimeSeries Lag(TimeSeries series, int offset)
Parameters
series
TimeSeriesoffset
int
Returns
Lead(TimeSeries, int)
Pushes a timeseries forward in time by a specified number of bars.
protected TimeSeries Lead(TimeSeries series, int offset)
Parameters
series
TimeSeriesoffset
int
Returns
Log(TimeSeries)
Returns the natural logrithm of a timeseries.
protected TimeSeries Log(TimeSeries series)
Parameters
series
TimeSeries
Returns
Lowest(TimeSeries, int)
Returns the lowest value of a series over the specified lookback.
protected TimeSeries Lowest(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Macd()
Returns Appel's moving average convergence divergence on the Primary series using default smoothings of 12 and 26.
protected TimeSeries Macd()
Returns
Macd(TimeSeries, int, int)
Returns Appel's moving average convergence divergence.
protected TimeSeries Macd(TimeSeries series, int fastLength, int slowLength)
Parameters
series
TimeSeriesfastLength
intslowLength
int
Returns
Macd(int, int)
Returns Appel's moving average convergence divergence on the Primary series using the specified lengths.
protected TimeSeries Macd(int fastLength, int slowLength)
Parameters
Returns
Max(params TimeSeries[])
Returns the maximum value for a bar over a list of timeseries.
protected TimeSeries Max(params TimeSeries[] series)
Parameters
series
TimeSeries[]
Returns
Median(TimeSeries, int)
Returns the median over the specified lookback.
protected TimeSeries Median(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Midpoint()
Returns the midpoint (high + low) / 2 of the primary series.
protected TimeSeries Midpoint()
Returns
Midpoint(BarSeries)
Returns the midpoint (high + low) / 2 of the specified series.
protected TimeSeries Midpoint(BarSeries series)
Parameters
series
BarSeries
Returns
Midpoint(TimeSeries, TimeSeries)
Returns the midpoint of the specified high and low timeseries.
protected TimeSeries Midpoint(TimeSeries high, TimeSeries low)
Parameters
high
TimeSerieslow
TimeSeries
Returns
Min(params TimeSeries[])
Returns the minimum value for a bar over a list of timeseries.
protected TimeSeries Min(params TimeSeries[] series)
Parameters
series
TimeSeries[]
Returns
Momentum(TimeSeries, int)
Returns the momentum over the specified number of bars.
protected TimeSeries Momentum(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
OnMessage(MessageEventArgs)
Called to raise a Message event.
protected virtual void OnMessage(MessageEventArgs e)
Parameters
Osc(TimeSeries, int, int)
Returns the difference between two simple moving averages of the specified lengths.
protected TimeSeries Osc(TimeSeries series, int length1, int length2)
Parameters
series
TimeSerieslength1
intlength2
int
Returns
Peek(BarSeries, int)
Returns the specifed series' bar the specified number of bars in the future relative to the current bar. Returns null if the specified bars peeks beyond the last bar.
protected Bar Peek(BarSeries series, int bars)
Parameters
Returns
PercentChange()
Returns the one day percentage change of the primary series.
protected TimeSeries PercentChange()
Returns
PercentChange(BarSeries)
Returns the one period percent change for the specified BarSeries.
protected TimeSeries PercentChange(BarSeries series)
Parameters
series
BarSeries
Returns
PercentChange(BarSeries, int)
Returns the percent change for the specified BarSeries.
protected TimeSeries PercentChange(BarSeries series, int length)
Parameters
Returns
PercentChange(TimeSeries)
Returns the one day percentage change of the specified timeseries.
protected TimeSeries PercentChange(TimeSeries series)
Parameters
series
TimeSeries
Returns
PercentChange(TimeSeries, int)
Returns the percentage change of the specified series over the specified lookback.
protected TimeSeries PercentChange(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
PercentRank(TimeSeries, int)
Returns the percentile rank of the specified series.
protected TimeSeries PercentRank(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
PivotHigh(TimeSeries, int)
Returns the price of the last pivot high formed by a single high bar surrounded by lower highs.
protected TimeSeries PivotHigh(TimeSeries series, int length)
Parameters
series
TimeSeriesThe timeseries of interest.
length
intThe number of bars on either side of the high.
Returns
PivotHigh(TimeSeries, int, int)
Returns the price of the last pivot high.
protected TimeSeries PivotHigh(TimeSeries series, int length, int maxWidth)
Parameters
series
TimeSeriesThe series of interest.
length
intThe number of bars on either side of the high.
maxWidth
intMax consecutive bars equal to the pivot high.
Returns
PivotHighBar(TimeSeries, int)
Returns the number of bars since the last pivot high formed by a single high surrouned by lower highs.
protected TimeSeries PivotHighBar(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
PivotHighBar(TimeSeries, int, int)
Returns the number of bars since the last pivot high.
protected TimeSeries PivotHighBar(TimeSeries series, int length, int maxWidth)
Parameters
series
TimeSerieslength
intmaxWidth
int
Returns
PivotLow(TimeSeries, int)
Returns the price of the last pivot low, a single low bar surrounded by higher lows.
protected TimeSeries PivotLow(TimeSeries series, int length)
Parameters
series
TimeSeriesThe series of interest.
length
intThe number of bars on either side of the low.
Returns
PivotLow(TimeSeries, int, int)
Returns the price of the last pivot low.
protected TimeSeries PivotLow(TimeSeries series, int length, int maxWidth)
Parameters
series
TimeSeriesThe series of interest.
length
intThe number of bars on either side of the low.
maxWidth
intMax consecutive bars equal to the pivot low.
Returns
PivotLowBar(TimeSeries, int)
Returns the number of bars since the last pivot low, a single low bar surrounded by higher lows.
protected TimeSeries PivotLowBar(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
PivotLowBar(TimeSeries, int, int)
Returns the number of bars since the last pivot low.
protected TimeSeries PivotLowBar(TimeSeries series, int length, int maxWidth)
Parameters
series
TimeSerieslength
intmaxWidth
intMax consecutive bars equal to the pivot low.
Returns
Roc(BarSeries, int)
Returns the rate of change for the specified series.
protected TimeSeries Roc(BarSeries series, int length)
Parameters
Returns
Roc(TimeSeries, int)
Returns the rate of change indicator.
protected TimeSeries Roc(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Roc(int)
Returns the rate of change for the PrimarySeries.
protected TimeSeries Roc(int length)
Parameters
length
int
Returns
RoundTickDown(double)
Returns a price rounded to the next lowest tick based on the instrument of the primary series.
protected double RoundTickDown(double price)
Parameters
price
double
Returns
RoundTickNearest(double)
Returns a price rounded to the nearest tick based on the instrument of the primary series.
protected double RoundTickNearest(double price)
Parameters
price
double
Returns
RoundTickUp(double)
Returns a price rounded to the next highest tick based on the instrument of the primary series.
protected double RoundTickUp(double price)
Parameters
price
double
Returns
Rsi(TimeSeries, int)
Returns Wilder's Relative Strength Index for the specified series.
protected TimeSeries Rsi(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Rsi(int)
Returns Wilder's Relative Strength Index for the Primary series.
protected TimeSeries Rsi(int length)
Parameters
length
int
Returns
Slope(TimeSeries, int)
Returns the slope of the specified series.
protected TimeSeries Slope(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
SlowD(BarSeries, int)
Returns the SlowD for the specified series.
protected TimeSeries SlowD(BarSeries series, int length)
Parameters
Returns
SlowD(TimeSeries, TimeSeries, TimeSeries, int)
Returns the SlowD using the specified series.
protected TimeSeries SlowD(TimeSeries high, TimeSeries low, TimeSeries close, int length)
Parameters
high
TimeSerieslow
TimeSeriesclose
TimeSerieslength
int
Returns
SlowD(int)
Returns the SlowD for the Primary series.
protected TimeSeries SlowD(int length)
Parameters
length
int
Returns
SlowK(BarSeries, int)
Returns the SlowK for the specified series.
protected TimeSeries SlowK(BarSeries series, int length)
Parameters
Returns
SlowK(TimeSeries, TimeSeries, TimeSeries, int)
Returns the SlowK using the specified series.
protected TimeSeries SlowK(TimeSeries high, TimeSeries low, TimeSeries close, int length)
Parameters
high
TimeSerieslow
TimeSeriesclose
TimeSerieslength
int
Returns
SlowK(int)
Returns SlowK of the Primary series.
protected TimeSeries SlowK(int length)
Parameters
length
int
Returns
Sma(TimeSeries, int)
Returns a simple moving average for the specified series.
protected TimeSeries Sma(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
StandardDeviation(TimeSeries, int)
Returns the standard deviation of the specified series.
protected TimeSeries StandardDeviation(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Stochastic(BarSeries, int)
Returns a raw (unsmoothed) stochastic for the specified series and length.
protected TimeSeries Stochastic(BarSeries series, int length)
Parameters
Returns
Stochastic(TimeSeries, TimeSeries, TimeSeries, int)
Returns a raw (unsmoothed) stochastic using specified series.
protected TimeSeries Stochastic(TimeSeries high, TimeSeries low, TimeSeries close, int length)
Parameters
high
TimeSerieslow
TimeSeriesclose
TimeSerieslength
int
Returns
Stochastic(TimeSeries, int)
Returns a raw (unsmoothed) stochastic for the specified TimeSeries and length.
protected TimeSeries Stochastic(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Exceptions
Stochastic(int)
Returns a raw (unsmoothed) stochastic of the primary series for the specified length.
protected TimeSeries Stochastic(int length)
Parameters
length
int
Returns
Stochastic(int, int)
Returns stochastic of the primary series with the specified lookback and smoothes it using a Sma.
protected TimeSeries Stochastic(int stochLength, int smoothingLength)
Parameters
Returns
Stochastic(int, int, int)
Returns stochastic of the primary series with the specified lookback and smoothes it using a Sma.
protected TimeSeries Stochastic(int stochLength, int smoothingLength1, int smoothingLength2)
Parameters
Returns
Sum(TimeSeries, int)
Returns the sum over a specified length.
protected TimeSeries Sum(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
TrueRange()
Returns the true range of the Primary series.
protected TimeSeries TrueRange()
Returns
TrueRange(BarSeries)
Returns the true range of the specified series.
protected TimeSeries TrueRange(BarSeries series)
Parameters
series
BarSeries
Returns
TypicalPrice()
Returns the typical price (H + L + C) / 3 of the primary series.
protected TimeSeries TypicalPrice()
Returns
TypicalPrice(BarSeries)
Returns the typical price (H+L+C)/3 of the specified series.
protected TimeSeries TypicalPrice(BarSeries series)
Parameters
series
BarSeries
Returns
Wma(TimeSeries, int)
Returns a weighted moving average of the specified series.
protected TimeSeries Wma(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
ZScore(TimeSeries, int)
Returns the z-score of the specified series.
protected TimeSeries ZScore(TimeSeries series, int length)
Parameters
series
TimeSerieslength
int
Returns
Events
Message
Raised when there is a status message available.
public event EventHandler<MessageEventArgs> Message