public void TestCreateSmall() { //Prices 1.0 0.9, 1.1, 1.2 List <Price> prices = new List <Price>(); prices.Add(new Price(new DateTimeUTC(2000, 1, 1, 0, 0, 0), 1.0, 1.1)); prices.Add(new Price(new DateTimeUTC(2000, 1, 1, 0, 0, 1), 0.9, 1.0)); prices.Add(new Price(new DateTimeUTC(2000, 1, 1, 0, 0, 2), 1.1, 1.2)); prices.Add(new Price(new DateTimeUTC(2000, 1, 1, 0, 0, 3), 1.2, 1.3)); PriceSet price_set = new PriceSet(ToolsPrice.DefaultSymbolGBPUSD, prices.AsReadOnly()); List <IIndicator> indicators_features = new List <IIndicator>(); indicators_features.Add(new IndicatorRunningAverage(0)); indicators_features.Add(new IndicatorRunningAverage(1)); List <IIndicator> indicators_labels = new List <IIndicator>(); indicators_labels.Add(new IndicatorMagicProfit(0)); indicators_labels.Add(new IndicatorMagicProfit(1)); MarketModelSimulation market = new MarketModelSimulation(1000, price_set); IDataSet <double, double> dataset = ToolsTradingDataSet.CreateDataSet(market, new IndicatorFusion(indicators_features), new IndicatorFusion(indicators_labels)); Assert.AreEqual(0.90, dataset.FeatureData[0][0], 0.0000001); Assert.AreEqual(0.95, dataset.FeatureData[0][1], 0.0000001); Assert.AreEqual(1.10, dataset.FeatureData[1][0], 0.0000001); Assert.AreEqual(1.00, dataset.FeatureData[1][1], 0.0000001); Assert.AreEqual(-0.1, dataset.LabelData[0][0], 0.0000001); Assert.AreEqual(-0.1, dataset.LabelData[0][1], 0.0000001); Assert.AreEqual(0.10, dataset.LabelData[0][2], 0.0000001); Assert.AreEqual(-0.1, dataset.LabelData[0][3], 0.0000001); Assert.AreEqual(-0.1, dataset.LabelData[1][0], 0.0000001); Assert.AreEqual(-0.1, dataset.LabelData[1][1], 0.0000001); Assert.AreEqual(0.0, dataset.LabelData[1][2], 0.0000001); Assert.AreEqual(0.0, dataset.LabelData[1][3], 0.0000001); }
public void TestCreateMedium() { PriceSet price_set = new PriceSet(ToolsPrice.DefaultSymbolGBPUSD, ToolsCollection.Select(ToolsPrice.GetPriceList(ToolsPrice.DefaultSymbolGBPUSD), 0, 40)); List <IIndicator> indicators_features = new List <IIndicator>(); indicators_features.Add(new IndicatorRunningAverage(0)); indicators_features.Add(new IndicatorRunningAverage(1)); List <IIndicator> indicators_labels = new List <IIndicator>(); indicators_labels.Add(new IndicatorMagicProfit(0)); indicators_labels.Add(new IndicatorMagicProfit(1)); MarketModelSimulation market = new MarketModelSimulation(1000, price_set); IDataSet <double, double> dataset = ToolsTradingDataSet.CreateDataSet(market, new IndicatorFusion(indicators_features), new IndicatorFusion(indicators_labels)); Assert.AreEqual(39, dataset.InstanceCount); Assert.AreEqual(2, dataset.FeatureCount); Assert.AreEqual(4, dataset.LabelCount); }
public void DoExperiment() { PriceSet price_set = ToolsPrice.GetPriceSet(ToolsPrice.DefaultSymbolGBPUSD); List <IIndicator> indicators = new List <IIndicator>(); indicators.Add(new IndicatorRunningAverage(4)); indicators.Add(new IndicatorRunningAverage(6)); indicators.Add(new IndicatorRunningAverage(8)); indicators.Add(new IndicatorRunningAverage(10)); indicators.Add(new IndicatorRunningAverage(12)); IIndicator feature_indicator = new IndicatorFusion(indicators); IIndicator label_indicator = new IndicatorMagicProfit(60); MarketModelSimulation market = new MarketModelSimulation(1000, price_set); DataSet <double, double> dataset = ToolsTradingDataSet.CreateDataSet(market, feature_indicator, label_indicator); ITemplateModelLabel <double, double> template = null;//new TemplateModelLibSVMCSVC(); IModelLabel <double, double> model = template.GenerateModel(dataset); //TODO change everyting into templates List <IIndicator> indicators_2 = new List <IIndicator>(); indicators_2.Add(new IndicatorRunningAverage(4)); indicators_2.Add(new IndicatorRunningAverage(6)); indicators_2.Add(new IndicatorRunningAverage(8)); indicators_2.Add(new IndicatorRunningAverage(10)); indicators_2.Add(new IndicatorRunningAverage(12)); IIndicator feature_indicator_2 = new IndicatorFusion(indicators_2); //Build actual incator IIndicator indicator_0 = new IndicatorMagicProfit(60); IIndicator indicator_1 = new IndicatorMachineLearning(feature_indicator_2, model, "Profit_long_ml"); IList <Color> color_list = new Color[] { Color.Black }; IList <int> index_list = new int[] { 0 }; ToolsTradingPlotting.PlotIndicatorResult(ToolsTradingDataSet.GetPath() + "indicator_0.png", price_set, indicator_0, color_list, index_list, false); ToolsTradingPlotting.PlotIndicatorResult(ToolsTradingDataSet.GetPath() + "indicator_1.png", price_set, indicator_1, color_list, index_list, false); }