Beispiel #1
0
        private void idLoginMenuItem_Click(object sender, EventArgs e)
        {
            LoginForm login = new LoginForm();

            login.TradeServerLogged += new EventHandler(
                (object s, EventArgs args) =>
            {
                //可增加其他监听处理
                //比如多账户:traderList.Add(s as CTPTrader);


                //处理登录成功事件
                ShowMessage("交易账户登录成功,开始初始化信息...");

                CTPTrader trader = s as CTPTrader;

                RegisterTraderResponseHandler(trader);

                trader.QueryInstrument();
                trader.QueryOrder();
                trader.QueryTrade();
                trader.QueryInvestorPositionDetail();
                trader.QueryTradingAccount();
                //确认结算单
                trader.SettlementInfoConfirm();
            });

            if (login.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                this.trader = login.Trader;
                this.quote  = login.Quote;

                RegisterQuoteResponseHandler(this.quote);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 行情数据回调
        /// </summary>
        /// <param name="pDepthMarketData">深度行情</param>
        private void OnRtnDepthMarketData(ref CThostFtdcDepthMarketDataField pDepthMarketData)
        {
            CTPMarketData marketData = new CTPMarketData()
            {
                InstrmentID        = pDepthMarketData.InstrumentID,
                ExchangeID         = pDepthMarketData.ExchangeInstID,
                LastPrice          = ConvertToDecimal(pDepthMarketData.LastPrice),
                PreSettlementPrice = ConvertToDecimal(pDepthMarketData.PreSettlementPrice),
                PreClosePrice      = ConvertToDecimal(pDepthMarketData.PreClosePrice),
                PreOpenInterest    = ConvertToDecimal(pDepthMarketData.PreOpenInterest),
                OpenPrice          = ConvertToDecimal(pDepthMarketData.OpenPrice),
                HighestPrice       = ConvertToDecimal(pDepthMarketData.HighestPrice),
                LowestPrice        = ConvertToDecimal(pDepthMarketData.LowestPrice),
                Volume             = pDepthMarketData.Volume,
                Turnover           = ConvertToDecimal(pDepthMarketData.Turnover),
                OpenInterest       = ConvertToDecimal(pDepthMarketData.OpenInterest),
                ClosePrice         = ConvertToDecimal(pDepthMarketData.ClosePrice),
                SettlementPrice    = ConvertToDecimal(pDepthMarketData.SettlementPrice),
                UpperLimitPrice    = ConvertToDecimal(pDepthMarketData.UpperLimitPrice),
                LowerLimitPrice    = ConvertToDecimal(pDepthMarketData.LowerLimitPrice),
                BidPrice1          = ConvertToDecimal(pDepthMarketData.BidPrice1),
                BidPrice2          = ConvertToDecimal(pDepthMarketData.BidPrice2),
                BidPrice3          = ConvertToDecimal(pDepthMarketData.BidPrice3),
                BidPrice4          = ConvertToDecimal(pDepthMarketData.BidPrice4),
                BidPrice5          = ConvertToDecimal(pDepthMarketData.BidPrice5),
                BidVolume1         = pDepthMarketData.BidVolume1,
                BidVolume2         = pDepthMarketData.BidVolume2,
                BidVolume3         = pDepthMarketData.BidVolume3,
                BidVolume4         = pDepthMarketData.BidVolume4,
                BidVolume5         = pDepthMarketData.BidVolume5,
                AskPrice1          = ConvertToDecimal(pDepthMarketData.AskPrice1),
                AskPrice2          = ConvertToDecimal(pDepthMarketData.AskPrice2),
                AskPrice3          = ConvertToDecimal(pDepthMarketData.AskPrice3),
                AskPrice4          = ConvertToDecimal(pDepthMarketData.AskPrice4),
                AskPrice5          = ConvertToDecimal(pDepthMarketData.AskPrice5),
                AskVolume1         = pDepthMarketData.AskVolume1,
                AskVolume2         = pDepthMarketData.AskVolume2,
                AskVolume3         = pDepthMarketData.AskVolume3,
                AskVolume4         = pDepthMarketData.AskVolume4,
                AskVolume5         = pDepthMarketData.AskVolume5,
            };

            if (marketData.LastPrice > 0 && marketData.PreClosePrice > 0)
            {
                marketData.AdvanceDeclineAmount = marketData.LastPrice - marketData.PreClosePrice;
                marketData.AdvanceDecline       = Math.Round(marketData.AdvanceDeclineAmount / marketData.PreClosePrice, 4,
                                                             MidpointRounding.AwayFromZero);
            }
            if (OnMarketDataChanged != null)
            {
                OnMarketDataChanged.Invoke(marketData);
            }
        }
Beispiel #3
0
 void RegisterQuoteResponseHandler(CTPMarketData quote)
 {
     quote.DepthMarketDataResponse += new EventHandler <CTPEventArgs <CThostFtdcDepthMarketDataField> >(quote_DepthMarketDataResponse);
 }
Beispiel #4
0
 private void OnData(CTPMarketData market)
 {
     Global.AddInfo("Ticker: {0}, Price: {1}, Volume: {2}",
                    market.InstrmentID, market.LastPrice, market.Volume);
 }