private void SignalListUpdate() { if (AppContext.SignalDatas.Count > 0) { Signal[] signals = new Signal[AppContext.SignalDatas.Count]; AppContext.SignalDatas.CopyTo(signals); Array.Sort(signals); lock (AppConst.SignalListLocker) { AppContext.SignalListView.Items.Clear(); foreach (Signal signal in signals) { if (AppSetting.SYMBOLS.Contains(signal.Symbol)) { string strSignal = AppUtil.GetSignalChinese(signal.Arrow); ListViewItem item = new ListViewItem( new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.StopLossPrice.ToString() }, 0); AppContext.SignalListView.Items.Add(item); } } } } else { AppContext.SignalListView.Items.Clear(); } }
private void InitStatList() { if (signals != null && signals.Length > 0) { lock (AppConst.StatListLocker) { statListView.Items.Clear(); foreach (Signal signal in signals) { if (AppSetting.SYMBOLS.Contains(signal.Symbol)) { string strSignal = AppUtil.GetSignalChinese(signal.Arrow); ListViewItem item = null; int arrow = signal.Arrow == -1 ? 0 : 1; if (signal.ProfitPrice == 0) { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), "", "", "" }, arrow); } else { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.ProfitTime.ToString(), signal.ProfitPrice.ToString(), signal.Profit.ToString() }, arrow); } statListView.Items.Add(item); } } } } else if (signals == null || signals.Length == 0) { statListView.Items.Clear(); } AppContext.IsStatListInitialized = true; }
private void mainTabControl_DoubleClick(object sender, EventArgs e) { if (AppContext.SignalDatas.Count > 0) { Signal[] signals = null; lock (AppConst.SignalDatasLocker) { signals = new Signal[AppContext.SignalDatas.Count]; AppContext.SignalDatas.CopyTo(signals, 0); } Array.Sort(signals); if (mainTabControl.SelectedTab == signalTabPage) { lock (signalListView) // AppContext.SignalListView) { signalListView.Items.Clear(); foreach (Signal signal in signals) { string strSignal = AppUtil.GetSignalChinese(signal.Arrow); int arrow = signal.Arrow == -1 ? 0 : 1; ListViewItem item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.StopLossPrice.ToString(), signal.StopGainPrice.ToString() }, arrow); signalListView.Items.Add(item); } signalListView.Invalidate(); } } else if (mainTabControl.SelectedTab == statTabPage && AppContext.SignalDatas.Count > 0) { lock (statListView) // AppContext.SignalListView) { statListView.Items.Clear(); foreach (Signal signal in signals) { string strSignal = AppUtil.GetSignalChinese(signal.Arrow); ListViewItem item = null; int arrow = signal.Arrow == -1 ? 0 : 1; if (signal.ProfitPrice > 0) { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.ProfitTime.ToString(), signal.Profit.ToString() }, arrow); } else { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), "", "" }, arrow); } statListView.Items.Add(item); } statListView.Invalidate(); } } } }
private void UpdateSignalListView(object obj) { List <Signal> datas = ((List <Signal>)obj); if (datas.Count > 0) { Signal[] signals = null; lock (AppConst.SignalDatasLocker) { signals = new Signal[datas.Count]; datas.CopyTo(signals, 0); Array.Sort(signals); } lock (AppConst.SignalListLocker) { AppContext.SignalListView.Items.Clear(); foreach (Signal signal in signals) { string strSignal = AppUtil.GetSignalChinese(signal.Arrow); ListViewItem item = null; int arrow = signal.Arrow == -1 ? 0 : 1; if (signal.StopGainPrice > 0) { item = new ListViewItem( new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.StopLossPrice.ToString(), signal.StopGainPrice.ToString() }, arrow); } else { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.StopLossPrice.ToString(), "" }, arrow); } if (signal.ProfitPrice == 0) { item.BackColor = Color.MediumPurple; int count = item.SubItems.Count - 1; while (count >= 1) { item.SubItems[count].BackColor = Color.MediumPurple; count--; } } AppContext.SignalListView.Items.Add(item); } } } else { AppContext.SignalListView.Items.Clear(); } }
private void StatListUpdate() { if (AppContext.SignalDatas.Count > 0) { Signal[] signals = new Signal[AppContext.SignalDatas.Count]; AppContext.SignalDatas.CopyTo(signals); if (signals.Length > 0) { lock (AppConst.StatListLocker) { AppContext.StatListView.Items.Clear(); foreach (Signal signal in signals) { if (AppSetting.SYMBOLS.Contains(signal.Symbol)) { string strSignal = AppUtil.GetSignalChinese(signal.Arrow); ListViewItem item = null; int arrow = signal.Arrow == -1 ? 0 : 1; if (signal.ProfitPrice <= 0) { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), "", "" }, arrow); } else { item = new ListViewItem(new string[] { signal.Symbol.ToString(), signal.ActPrice.ToString(), strSignal, signal.ActTime.ToString(), signal.ProfitTime.ToString(), signal.Profit.ToString() }, arrow); } AppContext.StatListView.Items.Add(item); } } } } } else { AppContext.StatListView.Items.Clear(); } }
private void StatlListUpdate(object obj) { Dictionary <Protocol, Signal> protocolSignal = (Dictionary <Protocol, Signal>)obj; Protocol protocol = (Protocol)protocolSignal.Keys.First(); Signal signal = (Signal)protocolSignal.Values.First(); if (AppSetting.SYMBOLS.Contains(signal.Symbol)) { if (signal.Arrow != 0 && protocol == Protocol.K0004_1) { LogUtil.Info("StatlListUpdate signal.Arrow != 0 && protocol ==" + Protocol.K0004_1); Signal[] signals = null; lock (AppConst.SignalDatasLocker) { signals = new Signal[AppContext.SignalDatas.Count]; AppContext.SignalDatas.CopyTo(signals, 0); Array.Sort(signals); } if (signals != null) { lock (AppConst.StatListLocker) { statListView.Items.Clear(); foreach (Signal sig in signals) { if (AppSetting.SYMBOLS.Contains(sig.Symbol)) { string strSignal = AppUtil.GetSignalChinese(sig.Arrow); ListViewItem item = new ListViewItem( new string[] { sig.Symbol.ToString(), sig.ActPrice.ToString(), strSignal, sig.ActTime.ToString(), "", "", "" }, 25 + sig.Arrow); statListView.Items.Add(item); } } } } } else if (signal.ProfitPrice != 0 && protocol == Protocol.K0004_5) { LogUtil.Info(" signal.Profit != 0 && protocol ==" + Protocol.K0004_5); ListView.ListViewItemCollection items = statListView.Items; for (int i = 0; i < items.Count; i++) { ListViewItem item = items[i]; if (item.SubItems.Count >= 5) { string strDate = item.SubItems[3].Text ?? ""; DateTime actTime; DateTime.TryParse(strDate, out actTime); if (actTime.CompareTo(signal.ActTime) == 0) { lock (AppConst.StatListLocker) { item.SubItems[4].Text = signal.ProfitTime.ToString(); item.SubItems[5].Text = signal.ProfitPrice.ToString(); item.SubItems[6].Text = signal.Profit.ToString(); int count = item.SubItems.Count - 1; while (count >= 0) { item.SubItems[count].BackColor = Color.Azure; count--; } items[i] = item; break; } } } } } } }