Exemplo n.º 1
0
        private static void Test_QueryTickData(RushQuantTradeClient client)
        {
            Console.WriteLine("******* QueryTickData BEGIN *********\n");

            QueryTickDataInput input = new QueryTickDataInput
            {
                ExchangeId     = ExchangeId.SSE,
                InstrumentCode = "601288"
            };
            QueryTickDataOutput output = client.QueryTickData(input);
            QueryTickDataOutput item   = output;

            Console.WriteLine(
                $@"交易所名称:{item.ExchangeId}, 合约代码:{item.InstrumentCode}, 合约名称:{item.InstrumentName}
卖五: {item.AskPrice5.ToString("f2")}   {item.AskVolume5}
卖四: {item.AskPrice4.ToString("f2")}   {item.AskVolume4}
卖三: {item.AskPrice3.ToString("f2")}   {item.AskVolume3}
卖二: {item.AskPrice2.ToString("f2")}   {item.AskVolume2}
卖一: {item.AskPrice1.ToString("f2")}   {item.AskVolume1}
买一: {item.BidPrice1.ToString("f2")}   {item.BidVolume1}
买二: {item.BidPrice2.ToString("f2")}   {item.BidVolume2}
买三: {item.BidPrice3.ToString("f2")}   {item.BidVolume3}
买四: {item.BidPrice4.ToString("f2")}   {item.BidVolume4}
买五: {item.BidPrice5.ToString("f2")}   {item.BidVolume5}
");

            Console.WriteLine("******* QueryTickData END *********");
            Console.WriteLine();
        }
        public unsafe QueryTickDataOutput QueryTickData(QueryTickDataInput input)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            byte *pInput  = stackalloc byte[QueryTickDataInput.GetSize()];
            byte *pOutput = null;

            input.WriteTo(pInput);
            int result = UnsafeNativeMethods.rushquant_trade_QueryTickData(this._accountId, pInput, ref pOutput);
            QueryTickDataOutput output = new QueryTickDataOutput();

            output.ReadFrom(pOutput);
            UnsafeNativeMethods.rushquant_free(pOutput);
            if (result != ErrorCode.Success)
            {
                throw new RushQuantClientException(result, output.ErrorMessage);
            }

            return(output);
        }