void menuPlugin_ChangePosition_Click(object sender, EventArgs e) { // 要用到PortfolioNode这个类,但这个类是内部类 if (tvView.SelectedNode == null) { return; } var PortfolioName = tvView.SelectedNode.Text; var form = new ChangePositionForm(); form.Text = string.Format("[{0}]ChangePosition", PortfolioName); if (DialogResult.OK == form.ShowDialog()) { var instrument = form.Instrument; var amount = form.Amount; var portfolio = Global.Framework.PortfolioManager.Portfolios.GetByName(PortfolioName); if (amount > 0) { portfolio.Add(new Fill(DateTime.Now, new Order(), instrument, portfolio.Account.CurrencyId, OrderSide.Buy, (double)amount, 0, "XXX")); } else if (amount < 0) { portfolio.Add(new Fill(DateTime.Now, new Order(), instrument, portfolio.Account.CurrencyId, OrderSide.Sell, (double)-amount, 0, "XXX")); } } }