//public SecurityInfo()
 //{
 //    name = string.Empty;
 //    code = string.Empty;
 //    Market = 0;
 //}
 public SecurityInfo(string _code, string _name, string _market, double _minQty, int _jingdu, double _priceJingDu, string _type, string _contractVal)
 {
     this.name        = _name;
     this.code        = _code;
     this.market      = _market;
     this.minQty      = _minQty;
     this.jingDu      = _jingdu;
     this.priceJingDu = _priceJingDu;
     this.type        = _type;
     this.contractVal = _contractVal;
     timeRange        = MarketTimeRange.getTimeRange(_market);
 }
        public static MarketTimeRange getTimeRange(string market)
        {
            MarketTimeRange mtr = new MarketTimeRange();

            if (market == "future")
            {
                mtr._market    = market;
                mtr._hourShift = 0;
                List <TimeRange> _t = new List <TimeRange>();
                _t.Add(new TimeRange(new TimeSpan(09, 30, 0), new TimeSpan(15, 00, 00), 0));
                mtr._startTime           = new TimeSpan(09, 30, 0);
                mtr._endTime             = new TimeSpan(15, 00, 00);
                mtr._tradeEndTime        = new TimeSpan(14, 57, 0);
                mtr._policyOpenStartTime = new TimeSpan(9, 31, 0);
                mtr._policyOpenEndTime   = new TimeSpan(15, 0, 0);
                mtr._forceCloseTime      = new TimeSpan(14, 56, 0);
                mtr._mintickTime         = 1;
                mtr._tickInteval         = 1;
                mtr._timeRanges          = _t;
            }
            else
            {
                mtr._market    = market;
                mtr._hourShift = 0;
                List <TimeRange> _t = new List <TimeRange>();
                _t.Add(new TimeRange(new TimeSpan(0, 0, 0), new TimeSpan(23, 59, 59), 0));
                mtr._startTime           = new TimeSpan(0, 0, 0);
                mtr._endTime             = new TimeSpan(23, 59, 59);
                mtr._tradeEndTime        = new TimeSpan(14, 57, 0);
                mtr._policyOpenStartTime = new TimeSpan(9, 31, 0);
                mtr._policyOpenEndTime   = new TimeSpan(15, 0, 0);
                mtr._forceCloseTime      = new TimeSpan(14, 56, 0);
                mtr._mintickTime         = 1;
                mtr._tickInteval         = 1;
                mtr._timeRanges          = _t;
            }
            return(mtr);
        }
Пример #3
0
        public LiveBars(int inteval, MarketTimeRange timeRange, DateTime?firstBarTime = null)
        {
            _dayOpenTime = timeRange.StartTime;
            _bars        = new Dictionary <TimeSpan, LiveBar>();

            _lastBar             = new LiveBar();
            _lastBar.BarOpenTime = _dayOpenTime;
            TimeSpan open = _dayOpenTime;

            _tickInteval = timeRange.TickInteval;
            foreach (var range in timeRange.TimeRanges)
            {
                TimeSpan close = range.End;
                while (open < close)
                {
                    LiveBar bar = new LiveBar();
                    bar.BarOpenTime = open;
                    _bars.Add(bar.BarOpenTime, bar);
                    bar.PreBar = _lastBar;
                    _lastBar   = bar;
                    open       = open.Add(TimeSpan.FromSeconds(inteval));
                    if (open < close)
                    {
                        bar.BarCloseTime = open.Add(TimeSpan.FromMilliseconds(-timeRange.MinTickTime));
                        bar.LastTickTime = bar.BarCloseTime.Add(TimeSpan.FromMilliseconds(-timeRange.TickInteval));
                        bar.NextOpenTime = open;
                    }
                    else if (open == close)
                    {
                        bar.BarCloseTime = close.Add(TimeSpan.FromMilliseconds(-timeRange.MinTickTime));
                        bar.LastTickTime = bar.BarCloseTime.Add(TimeSpan.FromMilliseconds(-timeRange.TickInteval));
                        open             = open.Add(TimeSpan.FromHours(range.ToNextOpenHour));
                        bar.NextOpenTime = open;
                    }
                    else
                    {
                        open             = open.Add(TimeSpan.FromHours(range.ToNextOpenHour));
                        bar.BarCloseTime = open.Add(TimeSpan.FromSeconds(-timeRange.MinTickTime));
                        if (bar.BarCloseTime < close)
                        {
                            bar.BarCloseTime = bar.BarCloseTime.Add(TimeSpan.FromHours(-range.ToNextOpenHour));
                            bar.LastTickTime = bar.BarCloseTime.Add(TimeSpan.FromSeconds(-timeRange.TickInteval));
                        }
                        bar.LastTickTime = bar.BarCloseTime.Add(TimeSpan.FromSeconds(-timeRange.TickInteval));
                        if (bar.LastTickTime < close)
                        {
                            bar.LastTickTime = bar.LastTickTime.Add(TimeSpan.FromHours(-range.ToNextOpenHour));
                        }
                        bar.NextOpenTime = open;
                    }
                }
            }
            //while (open < close)
            //{
            //    LiveBar bar = new LiveBar();

            //    if (open >= new TimeSpan(11, 30, 0))
            //    {
            //        bar.BarTime = open.Add(TimeSpan.FromHours(1.5));
            //    }
            //    else
            //    {
            //        bar.BarTime = open;
            //    }
            //    _bars.Add(bar.BarTime, bar);
            //    bar.PreBar = _lastBar;
            //    _lastBar = bar;
            //    open = open.Add(TimeSpan.FromSeconds(inteval));
            //}

            _currentOpenTimeSpan = _dayOpenTime;
            _currentBar          = _bars[_currentOpenTimeSpan];
            _inteval             = inteval;
            _closePriceQueue     = new List <double>();
            _tickAverageQueue    = new List <double>();
            _barTickPriceQueue   = new List <double>();
            _lastVolumn          = 0;
        }