//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); }
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; }