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