예제 #1
0
        private void OnAddPortfolio(AccountVM acct)
        {
            PortfolioVM portf = new PortfolioVM(this);

            portf.Id = NextPortfId();

            EditPortfolioDlg dlg = new EditPortfolioDlg();

            dlg.Owner     = System.Windows.Application.Current.MainWindow;
            dlg.Portfolio = portf;
            bool?res = dlg.ShowDialog();

            if (res ?? false)
            {
                portf.SetHedgeFlag(HedgeFlag);
                PTEntity.PortfolioItem portfolioItem = dlg.Portfolio.GetEntity();
                AddPorfolio(portf);
                if (_client.IsConnected)
                {
                    _client.AddPortfolio(portfolioItem);
                }

                PublishChanged();
            }
        }
예제 #2
0
        private void SyncToHost()
        {
            List <PTEntity.PortfolioItem> portfItems = new List <PTEntity.PortfolioItem>();

            foreach (var portf in _acctPortfolios)
            {
                PTEntity.PortfolioItem portfolioItem = portf.GetEntity();
                portfItems.Add(portfolioItem);
            }
            _client.AddPortfCollection(portfItems.ToArray());
        }
예제 #3
0
        private void btnAddPortf_Click(object sender, RoutedEventArgs e)
        {
            portfolioItem    = new PTEntity.PortfolioItem();
            portfolioItem.ID = Guid.NewGuid().ToString();
            //portfolioItem.Diff = 2;
            portfolioItem.Quantity = 1;

            PTEntity.LegItem leg1 = new PTEntity.LegItem();
            leg1.Symbol = "cu1212";
            leg1.Side   = PTEntity.PosiDirectionType.LONG;
            leg1.Ratio  = 1;
            portfolioItem.Legs.Add(leg1);

            PTEntity.LegItem leg2 = new PTEntity.LegItem();
            leg2.Symbol = "cu1301";
            leg2.Side   = PTEntity.PosiDirectionType.SHORT;
            leg2.Ratio  = 1;
            portfolioItem.Legs.Add(leg2);

            _client.AddPortfolio(portfolioItem);
        }
예제 #4
0
        public PTEntity.PortfolioItem GetEntity()
        {
            PTEntity.PortfolioItem portfolioItem = new PTEntity.PortfolioItem();
            portfolioItem.ID              = Id;
            portfolioItem.Quantity        = Quantity;
            portfolioItem.MaxOpenPerStart = MaxOpenPerStart;
            portfolioItem.MaxCancel       = MaxCancel;
            portfolioItem.TotalOpenLimit  = TotalOpenLimit;
            portfolioItem.HedgeFlag       = HedgeFlag;

            foreach (var legVm in _legs)
            {
                PTEntity.LegItem leg = new PTEntity.LegItem();
                leg.Symbol         = legVm.Symbol;
                leg.Side           = (PTEntity.PosiDirectionType)legVm.Side;
                leg.Ratio          = legVm.Ratio;
                leg.IsPreferred    = legVm.IsPreferred;
                leg.MinPriceChange = legVm.MinPriceChange;
                portfolioItem.Legs.Add(leg);
            }

            if (!string.IsNullOrEmpty(_endTimePointsExpr))
            {
                string[] tps = _endTimePointsExpr.Split(',');
                foreach (string s in tps)
                {
                    if (!string.IsNullOrWhiteSpace(s))
                    {
                        portfolioItem.EndTimePoints.Add(s.Trim());
                    }
                }
            }

            portfolioItem.Strategy = StrategySetting.GetEntity();

            return(portfolioItem);
        }