Exemplo n.º 1
0
        public DiscretePayoffs Inverse()
        {
            var outcomes = new DiscretePayoffs();

            foreach (var pnl in this)
            {
                outcomes.Add(new DiscretePayoff(pnl.Outcome, -pnl.Reward));
            }
            return(outcomes);
        }
Exemplo n.º 2
0
        public static DiscretePayoffs CreateFromContractInfo(ContractInfo[] contractInfos, Money collateral)
        {
            var payoffs = new DiscretePayoffs();

            foreach (var i in contractInfos)
            {
                if (i.Outcome is DiscreteOutcome && i.Payout is Money)
                {
                    payoffs.Add(i.Outcome, i.Payout - collateral);
                }
            }
            return(payoffs);
        }
Exemplo n.º 3
0
        public static DiscretePayoffs CreateFromContractInfo(ContractInfo[] contractInfos, Money collateral, DiscreteOutcome[]?preimages = null)
        {
            var hashsetPreimages = (preimages ?? Array.Empty <DiscreteOutcome>()).ToHashSet();
            var payoffs          = new DiscretePayoffs();

            foreach (var i in contractInfos)
            {
                if (i.Outcome is DiscreteOutcome && i.Payout is Money)
                {
                    hashsetPreimages.TryGetValue(i.Outcome, out var preimage);
                    payoffs.Add(preimage ?? i.Outcome, i.Payout - collateral);
                }
            }
            return(payoffs);
        }