Example #1
0
        public void TestComputeMinVarianceHedgingFuturesCount()
        {
            var orangeFutures = new Security {
                Id = 1, MarketPrice = 118.65, Symbol = "ORANGE_FUTURES", Volatility = 0.2
            };
            var grapefruitCommodity = new Security {
                Id = 1, MarketPrice = double.NaN, Symbol = "GRAPEFRUIT_COMMODITY", Volatility = 0.25
            };
            var secCov = new SecuritiesCovariance(orangeFutures, grapefruitCommodity, 0.7);

            secCov.Compute();
            var contractCount = Hedges.ComputeMinVarianceHedgingFuturesCount(Math.Pow(orangeFutures.Volatility, 2), secCov, 150000, 15000);

            Console.WriteLine(contractCount);
        }
Example #2
0
        public static List <SecuritiesCovariance> ReadCorrelations(string csvFileName, List <Security> securities)
        {
            var results = new List <SecuritiesCovariance>();

            using (var reader = new CsvReader(new StreamReader(csvFileName), false, ','))
            {
                while (reader.ReadNextRecord())
                {
                    var cov       = new SecuritiesCovariance();
                    var symbolOne = reader[0];
                    var symbolTwo = reader[1];
                    cov.Correlation = double.Parse(reader[2]);
                    cov.SecurityOne = securities.FirstOrDefault(s => s.Symbol == symbolOne);
                    cov.SecurityTwo = securities.FirstOrDefault(s => s.Symbol == symbolTwo);
                    results.Add(cov);
                }
            }
            return(results);
        }