Пример #1
0
        }                                        // 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);
        }
Пример #3
0
        /// <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;
        }