public override int GetHashCode() { int hash = 1; if (WinName.Length != 0) { hash ^= WinName.GetHashCode(); } if (PrefabName.Length != 0) { hash ^= PrefabName.GetHashCode(); } if (CameraName.Length != 0) { hash ^= CameraName.GetHashCode(); } if (IsRecord != false) { hash ^= IsRecord.GetHashCode(); } if (IsHover != false) { hash ^= IsHover.GetHashCode(); } if (CloseDelete != false) { hash ^= CloseDelete.GetHashCode(); } if (OpenEffect != false) { hash ^= OpenEffect.GetHashCode(); } return(hash); }
protected override void dataReceiver_Data_Arrival(object sender, StockData.TickData tickdata) { //Console.WriteLine("openSide:{0},signInHighPrice:{1},signInLowPrice:{2},tickdata.Last:{3},dealState:{4},openComplete:{5},closeComplete:{6}", openSide, signInHighPrice, signInLowPrice, tickdata.Last, dealState, openComplete, closeComplete); //Console.WriteLine("Ratio:{0}", Ratio); if (tickdata.Code == string.Empty) { IsSimulateFinished = true; HistoryFinished(); LiveDataUpdate(tickdata); } else { if (currentDay != tickdata.Time.Date) { currentDay = tickdata.Time.Date; this.Reset(); } if (tickdata.Last == 0) { return; } liveDataProcessor.ReceiveTick(tickdata); currentTick = tickdata; if (parameter.StartTime <= tickdata.Time.TimeOfDay && parameter.EndTime >= tickdata.Time.TimeOfDay && init) { if (IsSimulateFinished || (!IsSimulateFinished && !tickdata.IsReal)) { if (dealState == true && openComplete && closeComplete) { dealState = false; } if (dealState == false) { if (openHands > 0) { } if (tickdata.Last > signInHighPrice && openSide != 1) { if (openSide == 2) { foreach (TradePoints tp in tps) { if (!tp.Finished) { if (!tickdata.IsReal) { tp.Finished = true; Leave(tp.EnterPoint.OpenQty, tickdata.Last, tp.TradeGuid); } else { //平空 closeComplete = false; dealState = true; CloseDelete od = new CloseDelete(CloseThread); od.BeginInvoke(parameter.qty, tickdata.Last, tp.TradeGuid, null, null); } } } } if (Ratio <= parameter.Ratio) { if (!tickdata.IsReal) { openSide = 1; openComplete = false; dealState = true; openHands = parameter.qty; OpenArgs oa = new OpenArgs( tickdata.Last, parameter.qty, OpenType.KaiDuo, SecInfo, tickdata, -1, ""); OpenDelete od = new OpenDelete(OpenThread); od.BeginInvoke(oa, null, null); } else { openSide = 1; holdHands += (decimal)parameter.Qty; Open(tickdata.Last, parameter.qty, OpenType.KaiDuo, SecInfo, tickdata, -1, ""); } } } else if (tickdata.Last < signInLowPrice && openSide != 2) { if (openSide == 1) { foreach (TradePoints tp in tps) { if (!tp.Finished) { if (!tickdata.IsReal) { tp.Finished = true; Leave(tp.EnterPoint.OpenQty, tickdata.Last, tp.TradeGuid); } else { //平多 closeComplete = false; dealState = true; CloseDelete od = new CloseDelete(CloseThread); od.BeginInvoke(parameter.qty, tickdata.Last, tp.TradeGuid, null, null); } } } } if (Ratio <= parameter.Ratio) { if (!tickdata.IsReal) { openSide = 2; openComplete = false; dealState = true; openHands = parameter.qty; OpenArgs oa = new OpenArgs( tickdata.Last, parameter.qty, OpenType.KaiKong, SecInfo, tickdata, -1, ""); OpenDelete od = new OpenDelete(OpenThread); od.BeginInvoke(oa, null, null); } else { openSide = 2; Open(tickdata.Last, parameter.qty, OpenType.KaiKong, SecInfo, tickdata, -1, ""); } } } } } } LiveDataUpdate(tickdata); if (parameter.IsReal) { try { UpdateChart(); } catch { } } } }