} // OHLC has traded print /// <summary> /// OHLC data class constructor, require corresponding time interval TimeSeries TSControl /// </summary> /// <param name="ts">TimeSeries control</param> public DataTSOHLC(DataTimeSeries ts) : base(ts, 4) { RowIdx = ts.RowIdx; // match TimeSeries RowIdx price_last = 0; row_hastraded = false; }
} // last key updated /// <summary> /// Data class maintains time intervals so it can efficiently update the summation column on TimeSeries controller changes. /// The summation column is the first column in List<double array> /// </summary> /// <param name="ts">TimeSeries control</param> /// <param name="timeframe">total time frame in object</param> /// <param name="mininterval">minimum value between keys</param> /// <param name="allocn">pre-allocate list size</param> public DataTMListSum(DataTimeSeries ts, int timeframe, double mininterval, int allocn = 64) { int coladd = 1; // column additional to the number required to maintain frames TSControl = ts; UpdateInterval = ts.TimeInterval; TimeFrame = timeframe; ColCount = coladd + (int)Math.Ceiling((double)TimeFrame / UpdateInterval); ColIdx = coladd; MinValueInterval = mininterval; DataKey = new List <double>(allocn); DataList = new List <double[]>(allocn); }
/// <summary> /// TimeFrame VWAP contructor, DataKey, DataList fixed size of 2. /// </summary> /// <param name="ts">TimeSeries control</param> /// <param name="timeframe">VWAP timeframes</param> public DataTMVWAP(DataTimeSeries ts, int[] timeframe) : base(ts, timeframe.Max(), 1, 2) { NewKeyValue(0.0); // volume NewKeyValue(1.0); // volume x price DataList[0][0] = 1; DataList[1][0] = 1; VWAPArray = new double[timeframe.GetLength(0), 5]; for (int i0 = 0; i0 < timeframe.GetLength(0); ++i0) { VWAPArray[i0, 0] = timeframe[i0]; VWAPArray[i0, 1] = timeframe[i0] / UpdateInterval; } }
public readonly DataTimeSeries TSControl; // TimeSeries control for data class /// <summary> /// Create looped array, same number of rows as TSControl, and given columns /// </summary> /// <param name="ts">TimeSeries control</param> /// <param name="coln">number of columns</param> public DataTSData(DataTimeSeries ts, int coln) : base(ts.RowCount, coln) { TSControl = ts; }