// Choose which builder you want public static Tuple <ISde, FdmBase, IRng> ChooseBuilder(int n, Tuple <double, double, double, double, double, double, int> optionData) {// Factory method to choose your builder MCPricerApplication.print(optionData); MCBuilder <ISde, FdmBase, IRng> builder; MCBuilder <ISde, FdmBase, IRng> builder2; int c = 1; Console.Write("1. MCBuilder, 2. Default Builder "); c = Convert.ToInt32(Console.ReadLine()); if (1 == n) { Console.Write("Chosen 1. MCBuilder "); builder = new MCBuilder <ISde, FdmBase, IRng>(optionData); return(builder.Parts()); } else { Console.Write("Chosen 2. MCDefaultBuilder "); builder2 = new MCBuilder <ISde, FdmBase, IRng>(optionData); return(builder2.Parts()); } }
// Choose which builder you want public static Builder <ISde <double>, FdmBase <double>, IRng <double> > ChooseBuilder(int n) { double r = 0.08; double v = 0.3; double div = 0.0; double IC = 60.0; double T = 0.25; double K = 65.0; double beta = 1.0; /* double r = 0.05; * double v = 0.2; * double div = 0.025; * double IC = 100.0; * double T = 1.0; * double K = 100.0; * double beta = 1.0;// 2.0 / 3.0;*/ /* double r = 0.1; * double v = 0.2; * double div = 0.0; * double IC = 100.0; * double T = 1.0; * double K = 100.0; * double beta = 1.0;*/ Tuple <double, double, double, double, double, double> data = new Tuple <double, double, double, double, double, double>(r, v, div, IC, T, beta); MCBuilder <ISde <double>, FdmBase <double>, IRng <double> > builder = new MCBuilder <ISde <double>, FdmBase <double>, IRng <double> >(data); return(builder.Parts); }
public static void Main() { // Get data from Source Tuple <double, double, double, double, double, double, int> data = GetOptionData(); Console.WriteLine("Choose builder"); // Choose which builder to use // int choice = 2; // Tuple<ISde, FdmBase, IRng> parts = BuilderFactory.ChooseBuilder(choice, data); MCBuilder <ISde, FdmBase, IRng> builder = new MCBuilder <ISde, FdmBase, IRng>(data); var parts = builder.Parts(); var path = builder.GetPaths(); var finish = builder.GetEnd(); MCMediator mcp = new MCMediator(parts, path, finish, data.Item7); mcp.start(); // Nestes tuples /* var t = Tuple.Create(1, 1); * var t2 = Tuple.Create(t,t); * Console.WriteLine(t2.Item1.Item1);*/ }