public FormTrade(IPlugin_MarketTrader trader, IDataNavigate dataNavigater) { InitializeComponent(); this.trader = trader; this.trader.OnReturnOrder = OnReturnOrder; this.trader.OnReturnTrade = OnReturnTrade; this.trader.OnRspInvestorPosition = OnReturnInvestorPosition; this.trader.OnRspOrder = OnRspOrders; this.trader.OnRspTrade = OnRspTrade; this.dataNavigater = dataNavigater; this.dataNavigater.OnNavigateTo += RealTimeDataReader_OnNavigateTo; this.tbCode.Text = dataNavigater.Code; this.numberPrice.Value = dataNavigater.Price; this.numberPrice.OnStateChange += NumberPrice_OnStateChange; this.numberPrice.MinPeriod = 1; this.numberPrice.NormalText = "当前价"; this.numberMount.IsInputState = true; this.numberMount.MinValue = 0; this.numberMount.MinPeriod = 1; this.trader.QueryPosition(); this.trader.QueryOrders(); this.trader.QueryTrades(); }
/// <summary> /// 连接指定服务器 /// </summary> public void Connect(ConnectionInfo connectionInfo) { LogHelper.Info(GetType(), "开始连接服务器:" + connectionInfo.Name); IPlugin_Market plugin_Market = marketPluginMgr.GetMarketTraderByConnection(connectionInfo); if (plugin_Market == null) { throw new ApplicationException("连接" + connectionInfo.Name + "找不到对应插件"); } this.currentPlugin_MarketTrader = plugin_Market.MarketTrader; if (currentPlugin_MarketTrader == null) { throw new ApplicationException("连接" + connectionInfo.Name + "未实现市场交易插件"); } this.currentConnectionInfo = connectionInfo; this.currentPlugin_MarketTrader.OnConnectionStatus = OnConnectionStatus; this.currentPlugin_MarketTrader.OnReturnInstruments = OnReturnInstrument; this.currentPlugin_MarketTrader.OnReturnAccount = OnReturnAccount; this.currentPlugin_MarketTrader.OnReturnInvestorPosition = OnReturnInvestorPosition; this.currentPlugin_MarketTrader.OnReturnOrder = OnReturnOrder; this.currentPlugin_MarketTrader.OnReturnTrade = OnReturnTrade; this.currentPlugin_MarketTrader.Connect(currentConnectionInfo); }
public DataReceiver(IPlugin_Market plugin_Market, string path) { this.path = path; this.currentMarket = plugin_Market; this.plugin_MarketData = plugin_Market.MarketData; this.plugin_MarketTrader = plugin_Market.MarketTrader; this.plugin_MarketData.OnConnectionStatus = OnConnectionStatus_MarketData; this.plugin_MarketData.OnReturnMarketData = OnReturnMarketData; plugin_MarketTrader.OnConnectionStatus = OnConnectionStatus_MarketTrader; plugin_MarketTrader.OnReturnInstruments = OnReturnInstrument; }
public FormTradeBak(IPlugin_MarketTrader trader, IDataNavigate dataNavigater) { InitializeComponent(); this.trader = trader; this.trader.OnReturnOrder = OnReturnOrder; this.trader.OnReturnTrade = OnReturnTrade; this.trader.OnReturnInvestorPosition = OnReturnInvestorPosition; this.dataNavigater = dataNavigater; this.dataNavigater.OnNavigateTo += RealTimeDataReader_OnNavigateTo; this.tbCode.Text = dataNavigater.Code; this.tbPrice.Text = dataNavigater.Price.ToString(); }
private void btLogout_Click(object sender, EventArgs e) { if (this.marketTrader != null || this.Account != null) { if (this.marketTrader != null) { this.marketTrader.DisConnect(); this.marketTrader = null; } this.Account = null; MessageBox.Show("交易已登出"); } else { MessageBox.Show("没有登陆交易"); } }
private void tb_Trade_Click(object sender, EventArgs e) { if (!chartComponent.ConnectedServer) { if (this.marketTrader == null) { //弹出交易账号选择界面 FormAccount formAccount = new FormAccount(DataCenter.Default.AccountManager, FormAccount.PATH_MOCK); DialogResult result = formAccount.ShowDialog(); if (result == DialogResult.OK) { chartComponent.Account = formAccount.SelectedAccount; IAccount account = chartComponent.Account; if (account.Time > 0) { string code = null; if (account.CurrentTradeInfo.Count > 0) { code = account.CurrentTradeInfo[account.CurrentTradeInfo.Count - 1].InstrumentID; } if (code != null) { chartComponent.Controller.Change(code, account.Time); } else { chartComponent.Controller.Change(account.Time); } } account.BindRealTimeReader(this.chartComponent.Controller.CurrentRealTimeDataReader); this.marketTrader = new Plugin_MarketTrader_Simu(account, this.chartComponent.DataCenter.AccountManager, formAccount.SelectedAccountPath, formAccount.SelectedAccountName); } else { return; } } } FormTrade formTrade = new FormTrade(marketTrader, chartComponent.Controller.CurrentNavigater); formTrade.TopMost = true; formTrade.Show(); }