Пример #1
0
        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();
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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;
        }
Пример #4
0
        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();
        }
Пример #5
0
 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("没有登陆交易");
     }
 }
Пример #6
0
        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();
        }