Exemple #1
0
        public void TestRandomTradingZeroOutput()
        {
            symbol = Factory.Symbol.LookupSymbol("EUR/USD");
            Random random         = new Random(12349871);
            var    monteCarloPass = new MonteCarloPass(symbol, priceChanges);

            monteCarloPass.RandomPass(343031777, false);
        }
Exemple #2
0
        public void TestRandomTrading()
        {
            symbol = Factory.Symbol.LookupSymbol("EUR/USD");
            Random random         = new Random(818519479);
            var    monteCarloPass = new MonteCarloPass(symbol, priceChanges);

            monteCarloPass.RandomPass(603378611, true);
        }
Exemple #3
0
        public void TestOnlyIncrease()
        {
            symbol = Factory.Symbol.LookupSymbol("EUR/USD");
            Random random         = new Random(818519479);
            var    monteCarloPass = new MonteCarloPass(symbol, priceChanges);

            monteCarloPass.IsRandom = false;
            monteCarloPass.RandomPass(2122675590, true);
        }
Exemple #4
0
        public void MonteCarloTesting()
        {
            Assert.Ignore();
            symbol = Factory.Symbol.LookupSymbol("EUR/USD");
            Random random = new Random(12349871);
            var    list   = new List <MonteCarloPass>();

            for (var i = 1; i < 100; i++)
            {
                var monteCarloPass = new MonteCarloPass(symbol, priceChanges);
                //monteCarloPass.iterations = 25000;
                monteCarloPass.RandomPass(random.Next(), false, true);
                //Console.WriteLine(monteCarloPass);
                list.Add(monteCarloPass);
            }
            var maxRunUp        = 0D;
            var maxDrawDown     = 0D;
            var maxInventory    = 0D;
            var maxProfit       = 0D;
            var profitableCount = 0;
            var profitSum       = 0D;

            foreach (var pass in list)
            {
                if (pass.MaxRunUp > maxRunUp)
                {
                    maxRunUp = pass.MaxRunUp;
                }
                if (pass.MaxDrawDown < maxDrawDown)
                {
                    maxDrawDown = pass.MaxDrawDown;
                }
                if (pass.MaxInventorySize > maxInventory)
                {
                    maxInventory = pass.MaxInventorySize;
                }
                if (pass.ProfitLoss > maxProfit)
                {
                    maxProfit = pass.ProfitLoss;
                }
                if (pass.ProfitLoss > 0)
                {
                    profitableCount++;
                }
                profitSum += pass.ProfitLoss;
            }
            //Console.WriteLine("Max Run Up " + Round(maxRunUp));
            //Console.WriteLine("Max DrawDown " + Round(maxDrawDown));
            //Console.WriteLine("Max Inventory " + Round(maxInventory));
            //Console.WriteLine("Max Profit " + Round(maxProfit));
            //Console.WriteLine("Profitable % " + Round(profitableCount*100/list.Count));
            //Console.WriteLine("Total Profit " + Round(profitSum));
        }