Beispiel #1
0
 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();
     }
 }
Beispiel #2
0
 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();
             }
         }
     }
 }
Beispiel #4
0
        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();
            }
        }
Beispiel #5
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }