static void Main() { // can use interface but in that case only methods declared in interface can be used //IPredictingStrategy strategy1 = new KNNPredictingStrategy(); //strategy1.Work(); KNNPredictingStrategy strategy1 = new KNNPredictingStrategy(); strategy1.Work(); // method not declared in interface StockPricePredictor stockPricePredictor1 = new StockPricePredictor(strategy1); // passing a strategy to context double result1 = stockPricePredictor1.CalculatePrediction(); Console.WriteLine("KNN: " + result1); LinearRegressionStrategy strategy2 = new LinearRegressionStrategy(); StockPricePredictor stockPricePredictor2 = new StockPricePredictor(strategy2); // passing a strategy to context double result2 = stockPricePredictor2.CalculatePrediction(); Console.WriteLine("Linear regression: " + result2); KMeansStrategy strategy3 = new KMeansStrategy(); StockPricePredictor stockPricePredictor3 = new StockPricePredictor(strategy3); // passing a strategy to context double result3 = stockPricePredictor3.CalculatePrediction(); Console.WriteLine("K-means: " + result3); }
public static List <LinearRegressionStrategy> GetLrosSampleData() { List <LinearRegressionStrategy> nLROSList = new List <LinearRegressionStrategy>(); Stock nRsxStock = new Stock("RSX", "VanEck Vectors Russia ETF", "NYSE"); Option nRsxOption1 = new Option(nRsxStock, Option.ContractType.PUT, Option.ActionType.SELL, new DateTime(2016, 11, 18), 1, 19.00, 0.80, new DateTime(2016, 10, 21)); Option nRsxOption2 = new Option(nRsxStock, Option.ContractType.PUT, Option.ActionType.SELL, new DateTime(2016, 12, 17), 1, 19.00, 0.74, new DateTime(2016, 11, 18)); Option nRsxOption3 = new Option(nRsxStock, Option.ContractType.PUT, Option.ActionType.BUY, new DateTime(2016, 12, 17), 1, 19.00, 0.54, new DateTime(2016, 12, 15)); LinearRegressionStrategy nLROS_RSX = new LinearRegressionStrategy(nRsxStock); nLROS_RSX.Add(nRsxOption1); nLROS_RSX.Add(nRsxOption2); nLROS_RSX.Add(nRsxOption3); nLROSList.Add(nLROS_RSX); return(nLROSList); }