public double Evaluate(ParameterSpaceGrid search_grid, ParameterSet parameter_set) { if (results.ContainsKey(parameter_set)) { return(results[parameter_set]); } else { MarketManagerSimulation exchange = new MarketManagerSimulation(initial_cash, price_set); MarketResult result = exchange.Run(PolicyTemplate.Instance(parameter_set)); return(result.EndCash); } }
public void DoExperiment() { MarketResult[] results = new MarketResult[policies.Count]; Parallel.For(0, policies.Count, index => { MarketManagerSimulation exchange = new MarketManagerSimulation(10000, price_set); results[index] = exchange.Run(policies[index]); }); for (int index = 0; index < policies.Count; index++) { Console.WriteLine(policies[index].Title); Console.WriteLine(results[index].EndCash); Console.WriteLine("In: " + results[index].Market.ClosedOrders.Count); } }
public static void TestSpeed(double initial_cash, PriceSet price_set, int count) { List <PolicyJaapBands> policies = new List <PolicyJaapBands>(); for (int i = 0; i < count; i++) { policies.Add(new PolicyJaapBands(300, 0.85, 50, 0.015, 150, 130)); } MarketResult[] market_results = new MarketResult[policies.Count]; Parallel.For(0, policies.Count, index => { MarketManagerSimulation exchange = new MarketManagerSimulation(10000, price_set); market_results[index] = exchange.Run(policies[index]); }); Assert.AreEqual(10230.0, market_results[0].EndCash, 0.0000001); }
public void DoExperiment() { PriceSet price_set = ToolsPrice.GetPriceSet(ToolsPrice.DefaultSymbolGBPUSD); List <IPolicy> policies = new List <IPolicy>(); double long_threshold = 10 * Math.Pow(10, -6); double short_threshold = -10 * Math.Pow(10, -6); for (int index = 0; index < 1; index++) { policies.Add(new PolicyTemplateJaapBands().Instance()); } MarketResult[] market_results = new MarketResult[policies.Count]; Parallel.For(0, policies.Count, index => { MarketManagerSimulation exchange = new MarketManagerSimulation(10000, price_set); market_results[index] = exchange.Run(policies[index]); }); List <Tuple <MarketResult, IPolicy> > accepted_policy = new List <Tuple <MarketResult, IPolicy> >(); for (int index = 0; index < market_results.Length; index++) { // if(market_results[index].Market.ClosedOrders.Count > 9 && market_results[index].EndCash > 10000) // { accepted_policy.Add(new Tuple <MarketResult, IPolicy>(market_results[index], policies[index])); // } } for (int index = 0; index < accepted_policy.Count; index++) { var xx = accepted_policy[index]; Console.WriteLine(xx.Item1.EndCash + " in: " + xx.Item1.Market.ClosedOrders.Count); ToolsTradingPlotting.PlotMarketResult(ToolsTradingDataSet.GetPath() + "Trades" + index + ".png", xx.Item1); } }