Пример #1
0
        private static void Test_QuerySecurityCapitalInfo(RushQuantTradeClient client)
        {
            Console.WriteLine("******* QuerySecurityCapitalInfo BEGIN *********\n");

            QuerySecurityCapitalInfoInput input = new QuerySecurityCapitalInfoInput()
            {
            };
            QuerySecurityCapitalInfoOutput output = client.QuerySecurityCapitalInfo(input);

            Console.WriteLine($"{"币种",-20}\t{"资金余额",-20}\t{"可用资金",-20}\t{"可取资金",-20}\t{"总资产",-20}");

            for (int i = 0; i < output.Count; i++)
            {
                QuerySecurityCapitalInfoOutputItem item = output.Items[i];
                Console.WriteLine($"{GetCurrencyText(item.Currency),-22}\t{item.RemainingCapitalAmount,-26}\t{item.AvailableCapitalAmount,-26}\t{item.WithdrawableCapitalAmount,-26}\t{item.TotalAssetAmount,-26}");
            }
            Console.WriteLine("******* QuerySecurityCapitalInfo END *********\n");
            Console.WriteLine();
        }
        public unsafe QuerySecurityCapitalInfoOutput QuerySecurityCapitalInfo(QuerySecurityCapitalInfoInput input)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

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

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

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

            return(output);
        }