public override void Receive(object msg) { Console.WriteLine(" LoadingHandler Receive ~~~~~~~~~~~ " + msg); /// C0001_3 string strIntervals = " MIN1";//, MIN3, MIN5, MIN15, MIN30, MIN60,";// msgs[3]; string[] intervals = strIntervals.Split(','); AppSetting.INTEVALS = new Interval[intervals.Length]; int n = 0; foreach (string s in intervals) { if (!string.IsNullOrEmpty(s)) { AppSetting.INTEVALS[n] = AppUtil.StringToInterval(s.Trim()); n++; } } string strSymbol = " GBPUSD, NZDUSD, USDCAD, USDCHF, USDJPY, GBPJPY, AUDJPY, EURJPY, GOLD, SILVER,";// msgs[4]; LogUtil.Info(" C0004 ::::: symbols " + strSymbol); string[] symbols = strSymbol.Split(','); foreach (string s in symbols) { Symbol symbol = Symbol.UNKNOWN; if ((symbol = AppUtil.ParseSymbol(s.Trim())) != Symbol.UNKNOWN) { FxpaSource.AddAvailableSession(s.Trim()); } } int k = 0; AppSetting.SYMBOLS = new Symbol[FxpaSource.AvailableSessionList.Count]; foreach (SessionInfo sin in FxpaSource.AvailableSessionList) { AppSetting.SYMBOLS[k] = AppUtil.ParseSymbol(sin.Symbol); k++; } if (AppSetting.INTEVALS != null && AppSetting.INTEVALS.Length > 0 && AppSetting.SYMBOLS != null && AppSetting.SYMBOLS.Length > 0) { { DataProvider provider = new DataProvider(AppSetting.SYMBOLS[0].ToString()); provider.Init4Loading(); AppContext.FirstDataProvider = provider; } AppContext.IsGetSymbols = true; } AppSetting.LOGIN_TOKEN = "LOGIN_TOKEN"; AppSetting.DS_SERVER_IP = "DS_SERVER_IP"; // msgs[4].Trim(); AppSetting.DS_SERVER_PORT = 1234; // "DS_SERVER_PORT"; //int.Parse(msgs[5].Trim()); AppContext.IsGetDSInfo = true; LogUtil.Info(" C0005 ::::: server "); AppContext.FirstDataProvider.InitCdlStatus = DataInitStatus.Initialized; AppContext.FirstDataProvider.CdlLoadingStatus = DownloadStatus.Finished; AppContext.IsGetInitProviderFile = true; AppContext.FirstDataProvider.RtdLoadingStatus = DownloadStatus.Finished; AppContext.FirstDataProvider.InitRtdStatus = DataInitStatus.Initialized; AppContext.IsGetSignalList = true; AppContext.FirstDataProvider.InitSigStatus = DataInitStatus.Initialized; AppContext.IsGetInitProviderSignals = true; AppContext.IsGetSymbolPrices = true; AppContext.IsGetPaymentInfo = true; }
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) { 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(" 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); }