private static void Test_QuerySecurityPositionInfo(RushQuantTradeClient client) { Console.WriteLine("******* QuerySecurityPositionInfo BEGIN *********\n"); QuerySecurityPositionInfoInput input = new QuerySecurityPositionInfoInput() { }; QuerySecurityPositionInfoOutput output = client.QuerySecurityPositionInfo(input); Console.WriteLine($"{"交易所名称",-20}\t{"合约代码",-20}\t{"合约名称",-20}\t{"数量",-20}\t{"可卖数量",-20}\t{"股东代码",-20}"); for (int i = 0; i < output.Count; i++) { QuerySecurityPositionInfoOutputItem item = output.Items[i]; Console.WriteLine($"{item.ExchangeId,-22}\t{item.InstrumentCode,-26}\t{item.InstrumentName,-26}\t{item.Volume,-26}\t{item.AvailableVolume,-26}\t{item.StockholderCode,-26}"); } Console.WriteLine("******* QuerySecurityPositionInfo END *********\n"); Console.WriteLine(); }
public unsafe QuerySecurityPositionInfoOutput QuerySecurityPositionInfo(QuerySecurityPositionInfoInput input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } byte *pInput = stackalloc byte[QuerySecurityPositionInfoInput.GetSize()]; byte *pOutput = null; input.WriteTo(pInput); int result = UnsafeNativeMethods.rushquant_trade_QuerySecurityPositionInfo(this._accountId, pInput, ref pOutput); QuerySecurityPositionInfoOutput output = new QuerySecurityPositionInfoOutput(); output.ReadFrom(pOutput); UnsafeNativeMethods.rushquant_free(pOutput); if (result != ErrorCode.Success) { throw new RushQuantClientException(result, output.ErrorMessage); } return(output); }