예제 #1
0
        public override void UpdatePriceModel(Market bazaar, String act, String good, bool success, double unitPrice = 0)
        {
            List <double> observed_trades;

            if (success)
            {
                //Add this to my list of observed trades
                observed_trades = ObservedTradingRange[good];
                observed_trades.Add(unitPrice);
            }

            var publicMeanPrice = bazaar.GetAverageHistoricalPrice(good, 1);
        }
예제 #2
0
        /********PROTECTED************/

        protected double DeterminePurchaseQuantity(Market bazaar, string commodity)
        {
            var mean         = bazaar.GetAverageHistoricalPrice(commodity, lookback); //double
            var tradingRange = observeTradingRange(commodity, 10);                    //Point

            if (tradingRange != null)
            {
                var favorability = Quick.PositionInRange(mean, tradingRange.x, tradingRange.y);            //double
                favorability = 1 - favorability;
                //do 1 - favorability to see how close we are to the low end

                double amountToBuy = Math.Round(favorability * Inventory.Shortage(commodity));            //double
                if (amountToBuy < 1)
                {
                    amountToBuy = 1;
                }
                return(amountToBuy);
            }
            return(0);
        }