public override void Receive(object msg) { LogUtil.Info(" ServerCheckHandler Receive ~~~~~~~~~~~ "); string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = AppUtil.StringToInt(msgs[2]); if (protocol != Protocol.UNKNOWN && paramAmount > 0) { try { string token = msgs[3]; string strServerTime = msgs[4]; LogUtil.Info(" ServerCheckHandler Receive ~~~~~~~~~~~ strServerTime " + strServerTime); DateTime serverTime; serverTime = DateTime.Parse(strServerTime); AppContext.CURRENT_TIME = serverTime; lock (AppContext.appTokenLock) { AppContext.ServToken[token] = serverTime.ToLongTimeString(); } } catch (Exception e) { Console.WriteLine(" ServerCheckHandler Receive Exception~~~~~~~~~~~ " + e.StackTrace); LogUtil.Info(" ServerCheckHandler Receive Exception~~~~~~~~~~~ " + e.StackTrace); } } }
public override void Receive(object msg) { string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = AppUtil.StringToInt(msgs[2]); if (AppSetting.PAYMENT_TYPE != 0 || AppSetting.PAYMENT_TYPE != 4) { if (paramAmount == 4 && msgs.Length >= 6) { LogUtil.Info(" Payment Info content " + msgs[3] + msgs[4] + msgs[5] + msgs[6]); PaymentType ptype = AppUtil.ParsePaymentType(msgs[3]); string timeStr = msgs[4]; string totalStr = msgs[5]; string restStr = msgs[6]; MethodInvoker mi = null; try { switch (ptype) { case PaymentType.Point: // Count points AppSetting.TotalPoints = int.Parse(totalStr); AppSetting.RestPoints = int.Parse(restStr); mi = new MethodInvoker(PaymentLabelUpdate); AppContext.TradeExpertControl.BeginInvoke(mi); break; case PaymentType.Month: // case PaymentType.Year: // if (timeStr != NULL) { AppSetting.PAYMENT_END_DATE = timeStr; AppSetting.EndDate = DateTime.Parse(timeStr); } mi = new MethodInvoker(PaymentLabelUpdate); AppContext.TradeExpertControl.BeginInvoke(mi); break; } } catch (Exception e) { LogUtil.Error(" Protocol " + protocol.ToString() + e.StackTrace); } } } }
public override void Receive(object msg) { string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = AppUtil.StringToInt(msgs[2]); if (protocol != Protocol.UNKNOWN) { if (msgs.Length >= 4) { LogUtil.Info(" Signal content " + msgs[3]); string[] info = msgs[3].Split(','); if (info.Length >= 2) { Interval interval = AppUtil.StringToInterval(info[0]); Symbol symbol = AppUtil.ParseSymbol(info[1]); try { switch (protocol) { case Protocol.K0004_1: // Arrow Signal if (!AppContext.IsReconnecting && AppContext.IsPriceListInitialized && AppContext.IsSignalListInitialized) { if (!msgs.Contains(NULL)) { Signal signal = new Signal(); signal.Interval = interval; signal.Symbol = symbol; signal.ActPrice = double.Parse(info[2]); signal.Arrow = int.Parse(info[3]); signal.ActTime = DateTime.Parse(info[4]); signal.StopLossPrice = double.Parse(info[5]); Console.WriteLine(Protocol.K0004_1 + " " + signal); LogUtil.Info(Protocol.K0004_1 + " " + signal); if (AppSetting.SYMBOLS.Contains(signal.Symbol) && AppSetting.INTEVALS.Contains(signal.Interval)) { SignalProcess(signal, protocol); } } } break; case Protocol.K0004_2: // Stop Loss Signal if (!AppContext.IsReconnecting && AppContext.IsPriceListInitialized && AppContext.IsSignalListInitialized) { if (!msgs.Contains(NULL)) { Signal signal = new Signal(); signal.Interval = interval; signal.Symbol = symbol; signal.StopLossBidPrice = double.Parse(info[2]); signal.StopLoss = int.Parse(info[3]); signal.Arrow = int.Parse(info[3]); signal.StopLossTime = DateTime.Parse(info[4]); signal.ActTime = DateTime.Parse(info[5]); Console.WriteLine(Protocol.K0004_2 + " " + signal); LogUtil.Info(Protocol.K0004_2 + " " + signal); if (signal.StopLossBidPrice > 0 && signal.StopLoss != 0) { SignalProcess(signal, protocol); } } } break; case Protocol.K0004_3: // Gain Tip Signal if (!AppContext.IsReconnecting && AppContext.IsPriceListInitialized && AppContext.IsSignalListInitialized) { if (!msgs.Contains(NULL)) { Signal signal = new Signal(); signal.Interval = interval; signal.Symbol = symbol; signal.GainTip = int.Parse(info[2]); signal.Arrow = int.Parse(info[2]); signal.GainTipTime = DateTime.Parse(info[3]); signal.ActTime = DateTime.Parse(info[4]); signal.GainTipPrice = double.Parse(info[5]); Console.WriteLine(Protocol.K0004_3 + " " + signal); LogUtil.Info(Protocol.K0004_3 + " " + signal); if (signal.GainTipPrice > 0) { SignalProcess(signal, protocol); } } } break; case Protocol.K0004_4: // Stop Gain Signal if (!AppContext.IsReconnecting && AppContext.IsPriceListInitialized && AppContext.IsSignalListInitialized) { if (!msgs.Contains(NULL)) { Signal signal = new Signal(); signal.Interval = interval; signal.Symbol = symbol; signal.StopGainPrice = double.Parse(info[2]); signal.StopGain = int.Parse(info[3]); signal.Arrow = int.Parse(info[3]); signal.StopGainTime = DateTime.Parse(info[4]); signal.ActTime = DateTime.Parse(info[5]); Console.WriteLine(Protocol.K0004_4 + " " + signal); LogUtil.Info(Protocol.K0004_4 + " " + signal); if (signal.StopGainPrice > 0) { SignalProcess(signal, protocol); } } } break; case Protocol.K0004_5: // Profit Signal if (!AppContext.IsReconnecting && AppContext.IsPriceListInitialized && AppContext.IsSignalListInitialized) { if (!msgs.Contains(NULL)) { Signal signal = new Signal(); signal.Interval = interval; signal.Symbol = symbol; signal.Arrow = int.Parse(info[2]); signal.ActTime = DateTime.Parse(info[3]); signal.Profit = int.Parse(info[4]); signal.ProfitTime = DateTime.Parse(info[5]); signal.ProfitPrice = double.Parse(info[6]); Console.WriteLine(Protocol.K0004_5 + " " + signal); LogUtil.Info(Protocol.K0004_5 + " " + signal); if (signal.ProfitPrice > 0) { SignalProcess(signal, protocol); } } } break; } } catch (Exception e) { LogUtil.Error(" Protocol " + protocol.ToString() + e.StackTrace); } } } } }
public override void Receive(object msg) { Console.WriteLine(" ProviderHandler Receive ~~~~~~~~~~~ " + provider.Symbol + " Start " + System.DateTime.Now.ToLongTimeString()); if (provider != null) { string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = AppUtil.StringToInt(msgs[2]); Console.WriteLine(" ProviderHandler Receive ~~~~~~~~~~~ " + protocol); switch (protocol) { case Protocol.M0003_1: Execute(); if (paramAmount > 0 && !msgs.Contains <string>(NULL)) { List <BarData> rtdDatas = new List <BarData>(); AppUtil.ParseRtd(ref rtdDatas, 3, msgs, protocol); if (rtdDatas.Count > 0) { provider.StartTime = rtdDatas[rtdDatas.Count - 1].DateTime.Add(AppConst.AppTimeSpans[provider.CurrentTInterval]); provider.DataCache.InitDataUnits(rtdDatas); provider.InitCdlStatus = DataInitStatus.Initialized; } LogUtil.Info(" C0003_1 ::::: URL count " + rtdDatas.Count); } else { provider.HisUri = null; provider.StartTime = provider.LocalLastCdlTime; provider.CdlLoadingStatus = DownloadStatus.Finished; provider.InitCdlStatus = DataInitStatus.Initialized; } IsGetHisInfo = true; Execute(); //provider.DataCache.StartTime = provider.StartTime; //provider.DataCache.Init(); Process(null); break; case Protocol.C0003_2: if (paramAmount != AppUtil.PARSE_ERROR && paramAmount > 0) { List <BarData> rtdDatas = new List <BarData>(); AppUtil.ParseRtd(ref rtdDatas, 3, msgs, protocol); provider.LatesRtds = rtdDatas; provider.RtdLoadingStatus = DownloadStatus.Finished; provider.InitRtdStatus = DataInitStatus.Initialized; } else { provider.RtdLoadingStatus = DownloadStatus.Failed; provider.InitRtdStatus = DataInitStatus.Initialized; } IsGetRealTimeInfo = true; break; case Protocol.C0004_2: if (paramAmount > 0) { List <Signal> sigalList = new List <Signal>(); for (int i = 3; i < msgs.Length; i++) { string signalInfo = msgs[i]; if (!string.IsNullOrEmpty(signalInfo)) { string[] info = signalInfo.Split(','); Signal signal = new Signal(); signal.Interval = AppUtil.StringToInterval(info[0]); signal.Symbol = AppUtil.ParseSymbol(info[1]); signal.ActPrice = double.Parse(info[2]); signal.Arrow = AppUtil.StringToInt(info[3]); signal.ActTime = DateTime.Parse(info[4]); signal.StopLossPrice = double.Parse(info[5]); if (NULL != info[6]) { signal.StopLossTime = DateTime.Parse(info[6]); signal.StopLoss = signal.Arrow; signal.StopLossBidPrice = double.Parse(info[13]); } signal.GainTipPrice = double.Parse(info[7]); if (NULL != info[8]) { signal.GainTipTime = DateTime.Parse(info[8]); signal.GainTip = signal.Arrow; } signal.StopGainPrice = double.Parse(info[9]); if (NULL != info[10]) { signal.StopGainTime = DateTime.Parse(info[10]); signal.StopGain = signal.Arrow; } signal.Profit = int.Parse(info[11]); if (signal.Profit != 0 && NULL != info[12]) { signal.ProfitTime = DateTime.Parse(info[12]); } signal.ProfitPrice = double.Parse(info[13]); sigalList.Add(signal); } } //provider.SignalList = sigalList; //AppContext.FirstDataProvider.DataCache.InitSignalUnits(sigalList); provider.DataCache.InitSignalUnits(sigalList); } provider.InitSigStatus = DataInitStatus.Initialized; IsGetSignalInfo = true; break; default: IsGetHisInfo = true; provider.HisUri = null; provider.StartTime = provider.LocalLastCdlTime; provider.CdlLoadingStatus = DownloadStatus.Failed; provider.InitCdlStatus = DataInitStatus.Initialized; IsGetRealTimeInfo = true; provider.RtdLoadingStatus = DownloadStatus.Failed; provider.InitRtdStatus = DataInitStatus.Initialized; IsProcessing = false; break; } Console.WriteLine(" ProviderHandler Receive ~~~~~~~~~~~ " + provider.Symbol + " After operation " + System.DateTime.Now.ToLongTimeString()); } }
public override void Receive(object msg) { Console.WriteLine(" TimeCheckHandler Receive ~~~~~~~~~~~ " + msg); string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = AppUtil.StringToInt(msgs[2]); if (protocol != Protocol.UNKNOWN) { try { switch (protocol) { case Protocol.S0002_1: string strServerTime = msgs[3]; DateTime serverTime; serverTime = DateTime.Parse(strServerTime); if (FXPA != null && !FXPA.IsDisposed) { if (!msgs.Contains(NULL)) { if (serverTime.CompareTo(AppSetting.END_TIME) > 0) { errCode = -1; MethodInvoker mi = new MethodInvoker(ShowErrorMsg); FXPA.BeginInvoke(mi); mi = new MethodInvoker(CloseApp); FXPA.BeginInvoke(mi); } } } int DAY = Convert.ToInt16(serverTime.Day); AppContext.CURRENT_TIME = serverTime; DateTime startTimeOfNormalDay = AppUtil.GetStartTimeOfNormalDay(AppContext.CURRENT_TIME); if (DAY > LogUtil.DAY && serverTime.CompareTo(startTimeOfNormalDay) > 0) { MethodInvoker mi = new MethodInvoker(TimeLabelUpdate); AppContext.TradeExpertControl.BeginInvoke(mi); LogUtil.DAY = DAY; LogUtil.Close(); LogUtil.init(true, true, true, true); } else if (DAY > AppContext.DAY) { AppContext.DAY = DAY; DateTime startTimeOfWeek = AppUtil.GetStartTimeOfWeek(AppContext.CURRENT_TIME); DateTime startTimeOfBizDay = AppUtil.GetStartTimeOfBizToday(AppContext.CURRENT_TIME); List <Signal> obsoletes = new List <Signal>(); if (AppSetting.STATUS == AppSetting.TEST_ACCOUNT && serverTime.CompareTo(startTimeOfWeek) > 0) { if (AppContext.SignalDatas.Count > 0) { lock (AppConst.SignalDatasLocker) { foreach (Signal signal in AppContext.SignalDatas) { if (signal.ProfitPrice != 0 && signal.ProfitTime.CompareTo(startTimeOfWeek) < 0) { obsoletes.Add(signal); } } foreach (Signal signal in obsoletes) { AppContext.SignalDatas.Remove(signal); } } } } else if (serverTime.CompareTo(startTimeOfBizDay) > 0) { if (AppContext.SignalDatas.Count > 0) { lock (AppConst.SignalDatasLocker) { foreach (Signal signal in AppContext.SignalDatas) { if (signal.ProfitPrice != 0 && signal.ProfitTime.CompareTo(startTimeOfBizDay) < 0) { obsoletes.Add(signal); } } foreach (Signal signal in obsoletes) { AppContext.SignalDatas.Remove(signal); } } } } if (obsoletes != null && obsoletes.Count > 0) { MethodInvoker mi = new MethodInvoker(SignalListUpdate); signalListView.BeginInvoke(mi); mi = new MethodInvoker(StatListUpdate); AppContext.StatListView.BeginInvoke(mi); mi = new MethodInvoker(PriceListUpdate); priceListView.BeginInvoke(mi); } obsoletes.Clear(); List <PublishInfo> obsoletes2 = new List <PublishInfo>(); if (AppContext.PublishInfos.Count > 0) { lock (AppContext.PublishInfos) { foreach (PublishInfo info in AppContext.PublishInfos) { if (AppContext.CURRENT_TIME.Subtract(info.DateTime) > AppConst.AppTimeSpans[Interval.DAY1]) { obsoletes2.Add(info); } } foreach (PublishInfo info in obsoletes2) { AppContext.PublishInfos.Remove(info); } if (obsoletes2 != null && obsoletes2.Count > 0) { MethodInvoker mi = new MethodInvoker(InfoListUpdate); infoListView.BeginInvoke(mi); } } } obsoletes2.Clear(); } break; } } catch (Exception e) { LogUtil.Info(" TimeCheckHandler Receive Exception~~~~~~~~~~~ " + e.StackTrace); } } }
public override void Receive(object msg) { Console.WriteLine(" SignalListHandler Receive ~~~~~~~~~~~ " + msg); string[] msgs = (string[])msg; Protocol protocol = AppUtil.ParseProtocol(msgs[1]); int paramAmount = int.Parse(msgs[2]); if (paramAmount > 0) { AppContext.SignalDatas.Clear(); try { for (int i = 3; i < msgs.Length; i++) { string signalInfo = msgs[i]; if (!string.IsNullOrEmpty(signalInfo)) { string[] info = signalInfo.Split(','); Signal signal = new Signal(); signal.Interval = AppUtil.StringToInterval(info[0]); signal.Symbol = AppUtil.ParseSymbol(info[1]); signal.ActPrice = double.Parse(info[2]); signal.Arrow = AppUtil.StringToInt(info[3]); signal.ActTime = DateTime.Parse(info[4]); signal.StopLossPrice = double.Parse(info[5]); if (NULL != info[6]) { signal.StopLossTime = DateTime.Parse(info[6]); signal.StopLoss = signal.Arrow; signal.StopLossBidPrice = double.Parse(info[13]); } signal.GainTipPrice = double.Parse(info[7]); if (NULL != info[8]) { signal.GainTipTime = DateTime.Parse(info[8]); signal.GainTip = signal.Arrow; } signal.StopGainPrice = double.Parse(info[9]); if (NULL != info[10]) { signal.StopGainTime = DateTime.Parse(info[10]); signal.StopGain = signal.Arrow; } signal.Profit = int.Parse(info[11]); signal.ProfitPrice = double.Parse(info[13]); if (signal.ProfitPrice != 0 && NULL != info[12]) { signal.ProfitTime = DateTime.Parse(info[12]); } AppContext.SignalDatas.Add(signal); } } } catch (Exception e) { LogUtil.Error(" M0004 " + e.StackTrace); } } signals = new Signal[AppContext.SignalDatas.Count]; AppContext.SignalDatas.CopyTo(signals); MethodInvoker mi = new MethodInvoker(InitPriceList); priceListView.Invoke(mi); mi = new MethodInvoker(InitSignalList); signalListView.Invoke(mi); mi = new MethodInvoker(InitStatList); statListView.Invoke(mi); mi = new MethodInvoker(RefreshStatBtn); AppContext.TradeExpertControl.Invoke(mi); }