예제 #1
0
        private void chartToolStrip1_TimeFrameChanged(ChartTimeFrame timeFrame)
        {
            BarSeries barSeries = new BarSeries();

            ((TimeSeries)barSeries).DataSeries = ((TimeSeries)this.instrument.GetDailySeries()).DataSeries;
            BarSeries series = null;

            switch (timeFrame)
            {
            case ChartTimeFrame.Day:
                series      = barSeries;
                series.Name = ((FIXInstrument)this.instrument).Symbol + " - Daily";
                break;

            case ChartTimeFrame.Week:
                series      = barSeries.Compress(604800L);
                series.Name = ((FIXInstrument)this.instrument).Symbol + " - Weely";
                break;

            case ChartTimeFrame.Month:
                series      = barSeries.Compress(2419200L);
                series.Name = ((FIXInstrument)this.instrument).Symbol + " - Monthly";
                break;

            case ChartTimeFrame.Year:
                series      = barSeries.Compress(29030400L);
                series.Name = ((FIXInstrument)this.instrument).Symbol + " - Annual";
                break;
            }
            this.UpdateMe(series);
        }
예제 #2
0
        /// <summary>
        /// 按指定的 BarSize 生成新的 Bar,新的 BarSize 应该是原始 BarSize 的整数倍,这个函数可以正确的处理夜盘数据。
        /// </summary>
        /// <param name="series"></param>
        /// <param name="inst"></param>
        /// <param name="barSize"></param>
        /// <returns></returns>
        public static BarSeries TimeCompress(this BarSeries series, Instrument inst, long barSize)
        {
            if (series.Count == 0)
            {
                return(new BarSeries());
            }
            var bar = series[0];

            if (barSize > bar.Size && barSize % bar.Size == 0)
            {
                return(Data.Compression.BarCompressor.GetCompressor(inst, bar.Size, barSize).Compress(new Data.Compression.BarDataEnumerator(series)));
            }
            return(series.Compress(barSize));
        }