Beispiel #1
0
        private static IList <TradeShard> ConvertTradeTokenList(string response)
        {
            JArray             parsedTrades = JArray.Parse(response);
            IList <JToken>     tradeTokens  = parsedTrades.Children().ToList();
            IList <TradeShard> tradeList    = new List <TradeShard>();

            foreach (JToken tradeToken in tradeTokens)
            {
                TradeShard tradeShard = tradeToken.ToObject <TradeShard>();
                tradeList.Add(tradeShard);
            }
            return(tradeList);
        }
Beispiel #2
0
        private IList <HoldingsShard> AddBoughtAssetToPortfolio(CheetahConfig cheetahConfig, string bearerToken, IList <HoldingsShard> revisedPortfolio, TradeShard trade)
        {
            IList <HoldingsShard> copiedPortfolio = revisedPortfolio.ToList();

            foreach (HoldingsShard holding in copiedPortfolio)
            {
                if (holding.AssetId == trade.AssetId)
                {
                    holding.TotalAmount += trade.UnitShares;
                    holding.TotalValue  += (holding.PricePerShare * trade.UnitShares);
                    return(copiedPortfolio);
                }
            }

            HoldingsShard newHolding = CreateNewHoldingFromTrade(cheetahConfig, bearerToken, trade);

            copiedPortfolio.Add(newHolding);

            return(copiedPortfolio);
        }
Beispiel #3
0
        private IList <HoldingsShard> RemoveSoldAssetFromPortfolio(IList <HoldingsShard> revisedPortfolio, TradeShard trade)
        {
            IList <HoldingsShard> copiedPortfolio = revisedPortfolio.ToList();

            foreach (HoldingsShard holding in copiedPortfolio)
            {
                if (holding.AssetId == trade.AssetId)
                {
                    holding.TotalAmount -= trade.UnitShares;
                    holding.TotalValue  -= (holding.PricePerShare * trade.UnitShares);

                    /*if (Math.Abs(holding.TotalAmount) <= 0)
                     * {
                     *  copiedPortfolio.Remove(holding);
                     * }*/
                    return(copiedPortfolio);
                }
            }

            return(null);
        }
Beispiel #4
0
        private HoldingsShard CreateNewHoldingFromTrade(CheetahConfig cheetahConfig, string bearerToken, TradeShard trade)
        {
            AssetShard newAsset = GetAssetFromId(cheetahConfig, trade.AssetId, bearerToken).Result;

            HoldingsShard newHolding =
                new HoldingsShard {
                AssetId = trade.AssetId, TotalAmount = trade.UnitShares, PricePerShare = newAsset.Price, AssetName = newAsset.Issuer, AssetCategoryName = newAsset.AssetCategoryDisplayName
            };

            return(newHolding);
        }