Ejemplo n.º 1
0
        public QueryCapitalResult QueryCapital(out string error)
        {
            TabulateData data;

            if (!QueryData(DataCategory.Capital, out data, out error))
            {
                return(null);
            }

            var results = QueryCapitalResult.ExtractFrom(data);

            if (results == null || results.Count() == 0)
            {
                error = "QueryCapital succeeded, but no result";
                return(null);
            }

            return(results.First());
        }
Ejemplo n.º 2
0
        public static IEnumerable <QueryCapitalResult> ExtractFrom(TabulateData data)
        {
            if (columnIndices == null)
            {
                columnIndices = columns.Select(c => data.GetColumnIndex(c)).ToArray();
            }

            var subData = data.GetSubColumns(columnIndices);

            foreach (var row in subData.Rows)
            {
                QueryCapitalResult result = new QueryCapitalResult();

                int index = 0;
                result.RemainingCapital  = TradingHelper.SafeParseFloat(row[index++]);
                result.UsableCapital     = TradingHelper.SafeParseFloat(row[index++]);
                result.FrozenCapital     = TradingHelper.SafeParseFloat(row[index++]);
                result.CashableCapital   = TradingHelper.SafeParseFloat(row[index++]);
                result.TotalEquity       = TradingHelper.SafeParseFloat(row[index++]);
                result.LatestMarketValue = TradingHelper.SafeParseFloat(row[index++]);

                yield return(result);
            }
        }