Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs	(revision 9991)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs	(revision 9992)
@@ -251,5 +251,5 @@
       Symbols.First(s => s.Name == SpecialFunctionsName).Enabled = false;
 
-
+      Symbols.Single(s => s.Name == "Variable").Enabled = false;
       Symbols.First(s => s.Name == TimeSeriesSymbolsName).Enabled = true;
       Symbols.First(s => s is Derivative).Enabled = false;
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionLineChartView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionLineChartView.cs	(revision 9991)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionLineChartView.cs	(revision 9992)
@@ -53,4 +53,5 @@
       this.chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
       this.chart.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
+      this.chart.ChartAreas[0].AxisY2.ScaleView.Zoomable = false;
       this.chart.ChartAreas[0].CursorY.Interval = 0;
     }
@@ -59,11 +60,14 @@
       this.chart.Series.Clear();
       if (Content != null) {
+        var trainingRows = Content.ProblemData.TrainingIndices;
+        var testRows = Content.ProblemData.TestIndices;
         this.chart.Series.Add(SIGNALS_SERIES_NAME);
         this.chart.Series[SIGNALS_SERIES_NAME].LegendText = SIGNALS_SERIES_NAME;
         this.chart.Series[SIGNALS_SERIES_NAME].ChartType = SeriesChartType.FastLine;
-        this.chart.Series[SIGNALS_SERIES_NAME].Points.DataBindY(Content.Signals.ToArray());
+        this.chart.Series[SIGNALS_SERIES_NAME].Points.DataBindY(Content.TrainingSignals.Concat(Content.TestSignals).ToArray());
         this.chart.Series[SIGNALS_SERIES_NAME].Tag = Content;
+        this.chart.Series[SIGNALS_SERIES_NAME].YAxisType = AxisType.Secondary;
 
-        IEnumerable<double> accumulatedPrice = GetAccumulatedPrices(Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.PriceChangeVariable));
+        IEnumerable<double> accumulatedPrice = GetAccumulatedProfits(Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.PriceChangeVariable));
         this.chart.Series.Add(PRICEVARIABLE_SERIES_NAME);
         this.chart.Series[PRICEVARIABLE_SERIES_NAME].LegendText = PRICEVARIABLE_SERIES_NAME;
@@ -71,12 +75,17 @@
         this.chart.Series[PRICEVARIABLE_SERIES_NAME].Points.DataBindY(accumulatedPrice.ToArray());
         this.chart.Series[PRICEVARIABLE_SERIES_NAME].Tag = Content;
+        this.chart.Series[SIGNALS_SERIES_NAME].YAxisType = AxisType.Primary;
 
-        IEnumerable<double> profit = OnlineProfitCalculator.GetProfits(Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.PriceChangeVariable), Content.Signals, Content.ProblemData.TransactionCosts);
-        IEnumerable<double> accumulatedProfits = GetAccumulatedPrices(profit);
+
+        IEnumerable<double> trainingProfit = OnlineProfitCalculator.GetProfits(Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.PriceChangeVariable, trainingRows), Content.TrainingSignals, Content.ProblemData.TransactionCosts);
+        IEnumerable<double> testProfit = OnlineProfitCalculator.GetProfits(Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.PriceChangeVariable, testRows), Content.TestSignals, Content.ProblemData.TransactionCosts);
+        IEnumerable<double> accTrainingProfit = GetAccumulatedProfits(trainingProfit);
+        IEnumerable<double> accTestProfit = GetAccumulatedProfits(testProfit);
         this.chart.Series.Add(ASSET_SERIES_NAME);
         this.chart.Series[ASSET_SERIES_NAME].LegendText = ASSET_SERIES_NAME;
         this.chart.Series[ASSET_SERIES_NAME].ChartType = SeriesChartType.FastLine;
-        this.chart.Series[ASSET_SERIES_NAME].Points.DataBindY(accumulatedProfits.ToArray());
+        this.chart.Series[ASSET_SERIES_NAME].Points.DataBindY(accTrainingProfit.Concat(accTestProfit).ToArray());
         this.chart.Series[ASSET_SERIES_NAME].Tag = Content;
+        this.chart.Series[SIGNALS_SERIES_NAME].YAxisType = AxisType.Primary;
 
         this.UpdateStripLines();
@@ -84,5 +93,5 @@
     }
 
-    private IEnumerable<double> GetAccumulatedPrices(IEnumerable<double> xs) {
+    private IEnumerable<double> GetAccumulatedProfits(IEnumerable<double> xs) {
       double sum = 0;
       foreach (var x in xs) {
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.Designer.cs	(revision 9991)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.Designer.cs	(revision 9992)
@@ -58,5 +58,5 @@
       // itemsGroupBox
       // 
-      this.itemsGroupBox.Text = "Regression Solution";
+      this.itemsGroupBox.Text = "Trading Solution";
       // 
       // addButton
@@ -72,5 +72,5 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Name = "RegressionSolutionView";
+      this.Name = "TradingSolutionView";
       this.splitContainer.Panel1.ResumeLayout(false);
       this.splitContainer.Panel2.ResumeLayout(false);
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.cs	(revision 9991)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.cs	(revision 9992)
@@ -26,5 +26,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Trading.Views {
-  [View("TradingSolution View")]
+  [View("Trading Solution View")]
   [Content(typeof(Solution), true)]
   public partial class SolutionView : DataAnalysisSolutionView {
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame	(revision 9991)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame	(revision 9992)
@@ -38,4 +38,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")]
   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")]
   public class Plugin : PluginBase {
   }
