示例#1
0
        static void IllionWeightedAverage()
        {
            #region WeightedAverage
            int[] values  = null;
            int[] weights = null;

            try
            {
                Console.WriteLine(WeightedAverage.Mean(values, weights));
            } catch (ArgumentException ae)
            {
                Console.WriteLine("Throw ArgumentException");
            }

            int[] IntValues  = new int[] { 3, 6 };
            int[] IntWeights = new int[] { 4, 2 };

            Console.WriteLine(WeightedAverage.Mean(IntValues, IntWeights));

            Single[] SingleValues  = new Single[] { 3, 6 };
            Single[] SingleWeights = new Single[] { 4, 2 };

            Console.WriteLine(WeightedAverage.Mean(SingleValues, SingleWeights));
            #endregion
        }
示例#2
0
    public static void Main(string[] args)
    {
        int[] values  = new int[] { 3, 6 };
        int[] weights = new int[] { 4, 2 };

        Console.WriteLine(WeightedAverage.Mean(values, weights));
    }
        public void WeightedAveragetTest120SharesSoldSpecifyingDateInMiddleOfTransactions()
        {
            var transaction = new Transaction {
                SharesSold = 120, PricePerShare = 10.5m, Selldate = new DateTime(2005, 2, 3)
            };
            var weightedAverage = new WeightedAverage();
            var assets          = Assets;
            var costPrice       = weightedAverage.CostPriceOfSharesSoldAndSharesRemaining(transaction, assets);

            Assert.AreEqual(1480.0m / 140, costPrice.CostPriceSold);
        }
        public void WeightedAveragetTest120SharesSold()
        {
            var transaction = new Transaction {
                SharesSold = 120, PricePerShare = 10.5m, Selldate = new DateTime(2005, 4, 3)
            };
            var weightedAverage = new WeightedAverage();
            var assets          = Assets;
            var costPrice       = weightedAverage.CostPriceOfSharesSoldAndSharesRemaining(transaction, assets);

            Assert.AreEqual(2030.0m / 190.0m, costPrice.CostPriceSold);
        }
        public void Calculate()
        {
            WeightedAverage weighted = new WeightedAverage();
            var             zero     = CurrentShares == 0;

            //NewShares =Math.Round(BuyingPower / NewSharesPrice);
            BuyingPower       = zero ? 0 : Math.Round(NewShares * NewSharesPrice);
            TotalShares       = zero ? 0 : Math.Round(weighted.TotalShares(CurrentShares, NewShares));
            TotalAveragePrice = zero ? 0 : Math.Round(weighted.AverageWeightedPrice(
                                                          CurrentShares, AveragePrice, NewShares, NewSharesPrice), 2);
            Capital = zero ? 0 : Math.Round(TotalShares * TotalAveragePrice, 2);
        }
示例#6
0
        public UnitTest1()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddSingleton <WeightedAverage>();
            services.AddSingleton <FIFO>();
            services.AddSingleton <LIFO>();
            var serviceProvider = services.BuildServiceProvider();

            weightedAverage = serviceProvider.GetRequiredService <WeightedAverage>();
            fifo            = serviceProvider.GetRequiredService <FIFO>();
            lifo            = serviceProvider.GetRequiredService <LIFO>();
        }
        async Task AddPosition_Clicked()
        {
            var vm     = BindingContext as PortfolioAddEditViewModel;
            var edit   = Title == "Edit Portfolio" ? true : false;
            var avg    = Convert.ToDouble(EntryAvgPrice.Text);
            var shares = Convert.ToDouble(SharesEntry.Text);

            if (avg == 0 || shares == 0)
            {
                await DisplayAlert("investing.ph", "Total Shares or Average Price" +
                                   " cannot be blank.", "OK");

                return;
            }

            Portfolio p = await App._PortfolioData._Portfolio(lblSymbol.Text);

            var exists = p == null ? false : true;

            if (exists || edit)
            {
                var newAVG = new WeightedAverage().AverageWeightedPrice(
                    p.TotalShares, p.AveragePrice, shares, avg);
                var newShares = shares + p.TotalShares;
                var port      = new Portfolio()
                {
                    Symbol       = lblSymbol.Text,
                    Company      = lblCompany.Text,
                    TotalShares  = edit ? shares : newShares,
                    AveragePrice = edit ? avg : newAVG,
                    PortfolioID  = p.PortfolioID
                };

                await vm.UpdatePortfolio(port);
            }
            else
            {
                var port = new Portfolio()
                {
                    Symbol       = lblSymbol.Text,
                    Company      = lblCompany.Text,
                    AveragePrice = avg,
                    TotalShares  = shares
                };
                await vm.AddToPortfolio(port);
            }

            await DisplayAlert(vm.Title, vm.StatusMessage, "Ok");

            await App.Locator.NavigationService.GoHome();
        }