Changeset 10020 for stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4
- Timestamp:
- 10/02/13 17:04:43 (11 years ago)
- Location:
- stable
- Files:
-
- 1 deleted
- 20 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Calculators/OnlineProfitCalculator.cs
r9744 r10020 28 28 public class OnlineProfitCalculator : IOnlineCalculator { 29 29 30 private int p ;30 private int position; // currently held position: -1: short, 0: out of market, 1: long 31 31 private readonly double transactionCost; 32 private int c ;33 private double sum;32 private int count; // only necessary to reset position and total profit on the first data point 33 private double totalProfit; 34 34 public double Profit { 35 get { return sum; }35 get { return totalProfit; } 36 36 } 37 37 … … 49 49 } 50 50 public void Reset() { 51 p = 0;52 c = 0;53 sum= 0.0;51 position = 0; 52 count = 0; 53 totalProfit = 0.0; 54 54 } 55 55 56 56 public void Add(double actualReturn, double signal) { 57 double iterationReturn= 0.0;58 if (c == 0) {59 p = (int)signal;60 iterationReturn= 0;61 c ++;57 double profit = 0.0; 58 if (count == 0) { 59 position = (int)signal; 60 profit = 0; 61 count++; 62 62 } else { 63 if (p == 0 && signal.IsAlmost(0)) {64 } else if (p == 0 && signal.IsAlmost(1)) {65 p = 1;66 iterationReturn= -transactionCost;67 } else if (p == 0 && signal.IsAlmost(-1)) {68 p = -1;69 iterationReturn= -transactionCost;70 } else if (p == 1 && signal.IsAlmost(1)) {71 iterationReturn= actualReturn;72 } else if (p == 1 && signal.IsAlmost(0)) {73 iterationReturn= actualReturn - transactionCost;74 p = 0;75 } else if (p == 1 && signal.IsAlmost(-1)) {76 iterationReturn= actualReturn - transactionCost;77 p = -1;78 } else if (p == -1 && signal.IsAlmost(-1)) {79 iterationReturn= -actualReturn;80 } else if (p == -1 && signal.IsAlmost(0)) {81 iterationReturn= -actualReturn - transactionCost;82 p = 0;83 } else if (p == -1 && signal.IsAlmost(1)) {84 iterationReturn= -actualReturn - transactionCost;85 p = 1;63 if (position == 0 && signal.IsAlmost(0)) { 64 } else if (position == 0 && signal.IsAlmost(1)) { 65 position = 1; 66 profit = -transactionCost; 67 } else if (position == 0 && signal.IsAlmost(-1)) { 68 position = -1; 69 profit = -transactionCost; 70 } else if (position == 1 && signal.IsAlmost(1)) { 71 profit = actualReturn; 72 } else if (position == 1 && signal.IsAlmost(0)) { 73 profit = actualReturn - transactionCost; 74 position = 0; 75 } else if (position == 1 && signal.IsAlmost(-1)) { 76 profit = actualReturn - transactionCost; 77 position = -1; 78 } else if (position == -1 && signal.IsAlmost(-1)) { 79 profit = -actualReturn; 80 } else if (position == -1 && signal.IsAlmost(0)) { 81 profit = -actualReturn - transactionCost; 82 position = 0; 83 } else if (position == -1 && signal.IsAlmost(1)) { 84 profit = -actualReturn - transactionCost; 85 position = 1; 86 86 } 87 c ++;87 count++; 88 88 } 89 sum += iterationReturn;89 totalProfit += profit; 90 90 } 91 91 #endregion -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj
r9799 r10020 41 41 <DebugType>full</DebugType> 42 42 <Optimize>false</Optimize> 43 <OutputPath>..\..\ ..\..\trunk\sources\bin\</OutputPath>43 <OutputPath>..\..\bin\</OutputPath> 44 44 <DefineConstants>DEBUG;TRACE</DefineConstants> 45 45 <ErrorReport>prompt</ErrorReport> … … 50 50 <DebugType>pdbonly</DebugType> 51 51 <Optimize>true</Optimize> 52 <OutputPath> bin\Release\</OutputPath>52 <OutputPath>..\..\bin\</OutputPath> 53 53 <DefineConstants>TRACE</DefineConstants> 54 54 <ErrorReport>prompt</ErrorReport> … … 58 58 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> 59 59 <DebugSymbols>true</DebugSymbols> 60 <OutputPath>..\..\ ..\..\trunk\sources\bin\</OutputPath>60 <OutputPath>..\..\bin\</OutputPath> 61 61 <DefineConstants>DEBUG;TRACE</DefineConstants> 62 62 <DebugType>full</DebugType> … … 66 66 </PropertyGroup> 67 67 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> 68 <OutputPath> bin\x64\Release\</OutputPath>68 <OutputPath>..\..\bin\</OutputPath> 69 69 <DefineConstants>TRACE</DefineConstants> 70 70 <Optimize>true</Optimize> … … 76 76 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 77 77 <DebugSymbols>true</DebugSymbols> 78 <OutputPath>..\..\ ..\..\trunk\sources\bin\</OutputPath>78 <OutputPath>..\..\bin\</OutputPath> 79 79 <DefineConstants>DEBUG;TRACE</DefineConstants> 80 80 <DebugType>full</DebugType> … … 84 84 </PropertyGroup> 85 85 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> 86 <OutputPath> bin\x86\Release\</OutputPath>86 <OutputPath>..\..\bin\</OutputPath> 87 87 <DefineConstants>TRACE</DefineConstants> 88 88 <Optimize>true</Optimize> … … 93 93 </PropertyGroup> 94 94 <ItemGroup> 95 <Reference Include="HeuristicLab.Collections-3.3">96 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Collections-3.3.dll</HintPath>97 </Reference>98 <Reference Include="HeuristicLab.Common-3.3">99 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Common-3.3.dll</HintPath>100 </Reference>101 <Reference Include="HeuristicLab.Core-3.3">102 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll</HintPath>103 </Reference>104 <Reference Include="HeuristicLab.Data-3.3">105 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Data-3.3.dll</HintPath>106 </Reference>107 <Reference Include="HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4">108 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.dll</HintPath>109 </Reference>110 <Reference Include="HeuristicLab.Operators-3.3">111 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Operators-3.3.dll</HintPath>112 </Reference>113 <Reference Include="HeuristicLab.Optimization-3.3">114 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Optimization-3.3.dll</HintPath>115 </Reference>116 <Reference Include="HeuristicLab.Parameters-3.3">117 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Parameters-3.3.dll</HintPath>118 </Reference>119 <Reference Include="HeuristicLab.Persistence-3.3">120 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Persistence-3.3.dll</HintPath>121 </Reference>122 <Reference Include="HeuristicLab.PluginInfrastructure-3.3">123 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>124 </Reference>125 <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4">126 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>127 </Reference>128 <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4">129 <HintPath>c:\Program Files\HeuristicLab 3.3\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.dll</HintPath>130 </Reference>131 <Reference Include="HeuristicLab.Problems.Instances-3.3">132 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Problems.Instances-3.3.dll</HintPath>133 </Reference>134 95 <Reference Include="System" /> 135 96 <Reference Include="System.Core"> … … 137 98 </Reference> 138 99 <Reference Include="System.Drawing" /> 100 <Reference Include="System.Xml" /> 139 101 </ItemGroup> 140 102 <ItemGroup> 141 103 <Compile Include="Calculators\OnlineProfitCalculator.cs" /> 142 104 <Compile Include="Calculators\OnlineSharpeRatioCalculator.cs" /> 105 <Compile Include="InstanceProviders\CsvProblemInstanceProvider.cs" /> 106 <Compile Include="InstanceProviders\EcbProblemInstanceProvider.cs" /> 143 107 <Compile Include="Interfaces\IModel.cs" /> 144 108 <Compile Include="Interfaces\IProblem.cs" /> … … 146 110 <Compile Include="Interfaces\ISolution.cs" /> 147 111 <Compile Include="Plugin.cs" /> 148 <Compile Include="Problem.cs" />149 112 <Compile Include="ProblemData.cs" /> 150 113 <Compile Include="Solution.cs" /> … … 183 146 </BootstrapperPackage> 184 147 </ItemGroup> 185 <ItemGroup /> 148 <ItemGroup> 149 <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj"> 150 <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project> 151 <Name>HeuristicLab.Collections-3.3</Name> 152 <Private>False</Private> 153 </ProjectReference> 154 <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj"> 155 <Project>{a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project> 156 <Name>HeuristicLab.Common-3.3</Name> 157 <Private>False</Private> 158 </ProjectReference> 159 <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj"> 160 <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project> 161 <Name>HeuristicLab.Core-3.3</Name> 162 <Private>False</Private> 163 </ProjectReference> 164 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj"> 165 <Project>{bbab9df5-5ef3-4ba8-ade9-b36e82114937}</Project> 166 <Name>HeuristicLab.Data-3.3</Name> 167 <Private>False</Private> 168 </ProjectReference> 169 <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj"> 170 <Project>{06d4a186-9319-48a0-bade-a2058d462eea}</Project> 171 <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name> 172 <Private>False</Private> 173 </ProjectReference> 174 <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj"> 175 <Project>{23da7ff4-d5b8-41b6-aa96-f0561d24f3ee}</Project> 176 <Name>HeuristicLab.Operators-3.3</Name> 177 <Private>False</Private> 178 </ProjectReference> 179 <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj"> 180 <Project>{14ab8d24-25bc-400c-a846-4627aa945192}</Project> 181 <Name>HeuristicLab.Optimization-3.3</Name> 182 <Private>False</Private> 183 </ProjectReference> 184 <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj"> 185 <Project>{56f9106a-079f-4c61-92f6-86a84c2d84b7}</Project> 186 <Name>HeuristicLab.Parameters-3.3</Name> 187 <Private>False</Private> 188 </ProjectReference> 189 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj"> 190 <Project>{102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b}</Project> 191 <Name>HeuristicLab.Persistence-3.3</Name> 192 <Private>False</Private> 193 </ProjectReference> 194 <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj"> 195 <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project> 196 <Name>HeuristicLab.PluginInfrastructure-3.3</Name> 197 <Private>False</Private> 198 </ProjectReference> 199 <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj"> 200 <Project>{3d28463f-ec96-4d82-afee-38be91a0ca00}</Project> 201 <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name> 202 <Private>False</Private> 203 </ProjectReference> 204 <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj"> 205 <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project> 206 <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name> 207 <Private>False</Private> 208 </ProjectReference> 209 <ProjectReference Include="..\..\HeuristicLab.Problems.Instances.DataAnalysis\3.3\HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj"> 210 <Project>{94C7714E-29D4-4D6D-B213-2C18D627AB75}</Project> 211 <Name>HeuristicLab.Problems.Instances.DataAnalysis-3.3</Name> 212 </ProjectReference> 213 <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj"> 214 <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project> 215 <Name>HeuristicLab.Problems.Instances-3.3</Name> 216 <Private>False</Private> 217 </ProjectReference> 218 </ItemGroup> 186 219 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 187 220 <!-- To modify your build process, add your task inside one of the targets below and uncomment it. … … 193 226 --> 194 227 <PropertyGroup> 195 <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir) 196 set ProjectDir=$(ProjectDir) 197 set SolutionDir=$(SolutionDir) 198 set Outdir=$(Outdir) 228 <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' "> 229 set Path=%25Path%25;$(ProjectDir);$(SolutionDir) 230 set ProjectDir=$(ProjectDir) 231 set SolutionDir=$(SolutionDir) 232 set Outdir=$(Outdir) 199 233 200 call PreBuildEvent.cmd 201 </PreBuildEvent> 234 call PreBuildEvent.cmd 235 </PreBuildEvent> 236 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' "> 237 export ProjectDir=$(ProjectDir) 238 export SolutionDir=$(SolutionDir) 239 240 $SolutionDir/PreBuildEvent.sh 241 </PreBuildEvent> 202 242 </PropertyGroup> 203 243 </Project> -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/InstanceProviders/EcbProblemInstanceProvider.cs
r9997 r10020 110 110 } 111 111 } 112 // keep only the rows with data for this exchange rate 113 if (tList.Count > dList.Count) 114 tList.RemoveRange(dList.Count, tList.Count - dList.Count); 115 else if (dList.Count > tList.Count) 116 dList.RemoveRange(tList.Count, dList.Count - tList.Count); 117 112 118 // entries in ECB XML are ordered most recent first => reverse lists 113 119 tList.Reverse(); 114 120 dList.Reverse(); 121 115 122 // calculate exchange rate deltas 116 123 var changes = new[] { 0.0 } // first element -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Interfaces/IProblemData.cs
r9745 r10020 22 22 namespace HeuristicLab.Problems.DataAnalysis.Trading { 23 23 public interface IProblemData : IDataAnalysisProblemData { 24 string Price Variable { get; }24 string PriceChangeVariable { get; } 25 25 double TransactionCosts { get; } 26 26 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame
r9799 r10020 38 38 [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")] 39 39 [PluginDependency("HeuristicLab.Problems.Instances", "3.3")] 40 [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")] 40 41 public class Plugin : PluginBase { 41 42 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/ProblemData.cs
r9745 r10020 33 33 [Item("TradingProblemData", "Represents an item containing all data defining a trading problem.")] 34 34 public sealed class ProblemData : DataAnalysisProblemData, IProblemData { 35 private const string Price VariableParameterName = "PriceVariable";35 private const string PriceChangeVariableParameterName = "PriceChangeVariable"; 36 36 private const string TransactionCostsParameterName = "TransactionCosts"; 37 37 … … 1589 1589 1590 1590 static ProblemData() { 1591 defaultDataset = new Dataset(new string[] { " AUD" }, audInUsdDiff);1591 defaultDataset = new Dataset(new string[] { "d(AUD/USD)/dt" }, audInUsdDiff); 1592 1592 defaultDataset.Name = "AUD in USD"; 1593 defaultDataset.Description = " Price ofAustralian dollar in US dollar.";1594 defaultAllowedInputVariables = new List<string>() { " AUD" };1595 defaultPriceVariable = " AUD";1593 defaultDataset.Description = "Australian dollar in US dollar."; 1594 defaultAllowedInputVariables = new List<string>() { "d(AUD/USD)/dt" }; 1595 defaultPriceVariable = "d(AUD/USD)/dt"; 1596 1596 } 1597 1597 #endregion 1598 1598 1599 public I ValueParameter<StringValue> PriceVariableParameter {1600 get { return (I ValueParameter<StringValue>)Parameters[PriceVariableParameterName]; }1599 public IConstrainedValueParameter<StringValue> PriceChangeVariableParameter { 1600 get { return (IConstrainedValueParameter<StringValue>)Parameters[PriceChangeVariableParameterName]; } 1601 1601 } 1602 1602 public IValueParameter<DoubleValue> TransactionCostsParameter { 1603 1603 get { return (IValueParameter<DoubleValue>)Parameters[TransactionCostsParameterName]; } 1604 1604 } 1605 public string Price Variable {1606 get { return Price VariableParameter.Value.Value; }1605 public string PriceChangeVariable { 1606 get { return PriceChangeVariableParameter.Value.Value; } 1607 1607 } 1608 1608 public double TransactionCosts { … … 1630 1630 : base(dataset, allowedInputVariables) { 1631 1631 var variables = InputVariables.Select(x => x.AsReadOnly()).ToList(); 1632 Parameters.Add(new ConstrainedValueParameter<StringValue>(Price VariableParameterName, new ItemSet<StringValue>(variables), variables.First(x => x.Value == targetVariable)));1632 Parameters.Add(new ConstrainedValueParameter<StringValue>(PriceChangeVariableParameterName, new ItemSet<StringValue>(variables), variables.First(x => x.Value == targetVariable))); 1633 1633 Parameters.Add(new FixedValueParameter<DoubleValue>(TransactionCostsParameterName, "The absolute cost of on buy/sell transaction (assumed to be constant and independent of transaction volume)", new DoubleValue(0.0002))); 1634 1635 if (dataset.GetReadOnlyDoubleValues(targetVariable).Min() >= 0) throw new ArgumentException("The target variable must contain changes (deltas) of the asset price over time."); 1636 1634 1637 RegisterParameterEvents(); 1635 1638 } 1636 1639 1637 1640 private void RegisterParameterEvents() { 1638 Price VariableParameter.ValueChanged += new EventHandler(PriceVariableParameter_ValueChanged);1641 PriceChangeVariableParameter.ValueChanged += new EventHandler(PriceVariableParameter_ValueChanged); 1639 1642 TransactionCostsParameter.Value.ValueChanged += new EventHandler(TransactionCostsParameter_ValueChanged); 1640 1643 } … … 1644 1647 } 1645 1648 private void PriceVariableParameter_ValueChanged(object sender, EventArgs e) { 1649 if (Dataset.GetReadOnlyDoubleValues(PriceChangeVariable).Min() >= 0) throw new ArgumentException("The target variable must contain changes (deltas) of the asset price over time."); 1646 1650 OnChanged(); 1647 1651 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Solution.cs
r9745 r10020 80 80 } 81 81 82 83 protected override void OnModelChanged() {84 base.OnModelChanged();85 RecalculateResults();86 }87 88 protected override void OnProblemDataChanged() {89 base.OnProblemDataChanged();90 RecalculateResults();91 }92 93 82 protected override void RecalculateResults() { 94 83 CalculateTradingResults(); … … 97 86 protected void CalculateTradingResults() { 98 87 double[] trainingSignals = TrainingSignals.ToArray(); // cache values 99 IEnumerable<double> trainingReturns = ProblemData.Dataset.GetDoubleValues(ProblemData.Price Variable, ProblemData.TrainingIndices);88 IEnumerable<double> trainingReturns = ProblemData.Dataset.GetDoubleValues(ProblemData.PriceChangeVariable, ProblemData.TrainingIndices); 100 89 double[] testSignals = TestSignals.ToArray(); // cache values 101 IEnumerable<double> testReturns = ProblemData.Dataset.GetDoubleValues(ProblemData.Price Variable, ProblemData.TestIndices);90 IEnumerable<double> testReturns = ProblemData.Dataset.GetDoubleValues(ProblemData.PriceChangeVariable, ProblemData.TestIndices); 102 91 103 92 OnlineCalculatorError errorState; … … 115 104 116 105 public virtual IEnumerable<double> Signals { 117 get { 118 return GetSignals(Enumerable.Range(0, ProblemData.Dataset.Rows)); 119 } 106 get { return GetSignals(Enumerable.Range(0, ProblemData.Dataset.Rows)); } 120 107 } 121 122 108 public virtual IEnumerable<double> TrainingSignals { 123 get { 124 return GetSignals(ProblemData.TrainingIndices); 125 } 109 get { return GetSignals(ProblemData.TrainingIndices); } 126 110 } 127 128 111 public virtual IEnumerable<double> TestSignals { 129 get { 130 return GetSignals(ProblemData.TestIndices); 131 } 112 get { return GetSignals(ProblemData.TestIndices); } 132 113 } 133 134 114 public virtual IEnumerable<double> GetSignals(IEnumerable<int> rows) { 135 115 return Model.GetSignals(ProblemData.Dataset, rows); -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/Interfaces/IEvaluator.cs
r9745 r10020 20 20 #endregion 21 21 22 using HeuristicLab.Problems.DataAnalysis. Trading;22 using HeuristicLab.Problems.DataAnalysis.Symbolic; 23 23 24 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{24 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 25 25 public interface IEvaluator : ISymbolicDataAnalysisEvaluator<IProblemData> { 26 26 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/Interfaces/IModel.cs
r9745 r10020 20 20 #endregion 21 21 22 using HeuristicLab.Problems.DataAnalysis. Trading;22 using HeuristicLab.Problems.DataAnalysis.Symbolic; 23 23 24 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{25 public interface IModel : DataAnalysis.Trading.IModel, ISymbolicDataAnalysisModel {24 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 25 public interface IModel : Trading.IModel, ISymbolicDataAnalysisModel { 26 26 } 27 27 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/Interfaces/ISingleObjectiveEvaluator.cs
r9745 r10020 20 20 #endregion 21 21 22 using HeuristicLab.Problems.DataAnalysis. Trading;22 using HeuristicLab.Problems.DataAnalysis.Symbolic; 23 23 24 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{24 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 25 25 public interface ISingleObjectiveEvaluator : IEvaluator, ISymbolicDataAnalysisSingleObjectiveEvaluator<IProblemData> { 26 26 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/Interfaces/ISolution.cs
r9745 r10020 20 20 #endregion 21 21 22 using HeuristicLab.Problems.DataAnalysis.Symbolic; 22 23 23 using HeuristicLab.Problems.DataAnalysis.Trading; 24 25 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Trading { 26 public interface ISolution : DataAnalysis.Trading.ISolution, ISymbolicDataAnalysisSolution { 24 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 25 public interface ISolution : Trading.ISolution, ISymbolicDataAnalysisSolution { 27 26 new IModel Model { get; } 28 27 } -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/Model.cs
r9745 r10020 26 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using HeuristicLab.Problems.DataAnalysis.Symbolic; 28 29 29 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{30 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 30 31 /// <summary> 31 32 /// Represents a symbolic trading model -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/Evaluator.cs
r9745 r10020 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 using HeuristicLab.Problems.DataAnalysis. Trading;25 using HeuristicLab.Problems.DataAnalysis.Symbolic; 26 26 27 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{27 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 28 28 public abstract class SingleObjectiveEvaluator : SymbolicDataAnalysisSingleObjectiveEvaluator<IProblemData>, ISingleObjectiveEvaluator { 29 29 [StorableConstructor] -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/Problem.cs
r9745 r10020 23 23 using HeuristicLab.Core; 24 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 using HeuristicLab.Problems.DataAnalysis. Trading;25 using HeuristicLab.Problems.DataAnalysis.Symbolic; 26 26 27 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{27 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 28 28 [Item("Symbolic Trading Problem (single objective)", "Represents a single objective symbolic trading problem.")] 29 29 [StorableClass] … … 45 45 46 46 InitializeOperators(); 47 ConfigureGrammarSymbols(); 48 } 49 50 private void ConfigureGrammarSymbols() { 51 var grammar = SymbolicExpressionTreeGrammar as TypeCoherentExpressionGrammar; 52 if (grammar != null) grammar.ConfigureAsDefaultTimeSeriesPrognosisGrammar(); 47 53 } 48 54 -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/ProfitEvaluator.cs
r9745 r10020 21 21 22 22 using System.Collections.Generic; 23 using System.Linq;24 23 using HeuristicLab.Common; 25 24 using HeuristicLab.Core; … … 27 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 using HeuristicLab.Problems.DataAnalysis. Trading;28 using HeuristicLab.Problems.DataAnalysis.Symbolic; 30 29 31 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{30 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 32 31 [Item("Profit Evaluator", "")] 33 32 [StorableClass] … … 60 59 public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, IProblemData problemData, IEnumerable<int> rows) { 61 60 IEnumerable<double> signals = GetSignals(interpreter, solution, problemData.Dataset, rows); 62 IEnumerable<double> returns = problemData.Dataset.GetDoubleValues(problemData.Price Variable, rows);61 IEnumerable<double> returns = problemData.Dataset.GetDoubleValues(problemData.PriceChangeVariable, rows); 63 62 OnlineCalculatorError errorState; 64 63 double profit = OnlineProfitCalculator.Calculate(returns, signals, problemData.TransactionCosts, out errorState); -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/SharpeRatioEvaluator.cs
r9745 r10020 21 21 22 22 using System.Collections.Generic; 23 using System.Linq;24 23 using HeuristicLab.Common; 25 24 using HeuristicLab.Core; … … 27 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 using HeuristicLab.Problems.DataAnalysis. Trading;28 using HeuristicLab.Problems.DataAnalysis.Symbolic; 30 29 31 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{30 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 32 31 [Item("Sharpe Ratio Evaluator", "")] 33 32 [StorableClass] … … 60 59 public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, IProblemData problemData, IEnumerable<int> rows) { 61 60 IEnumerable<double> signals = GetSignals(interpreter, solution, problemData.Dataset, rows); 62 IEnumerable<double> returns = problemData.Dataset.GetDoubleValues(problemData.Price Variable, rows);61 IEnumerable<double> returns = problemData.Dataset.GetDoubleValues(problemData.PriceChangeVariable, rows); 63 62 OnlineCalculatorError errorState; 64 63 double sharpRatio = OnlineSharpeRatioCalculator.Calculate(returns, signals, problemData.TransactionCosts, out errorState); -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/TrainingBestSolutionAnalyzer.cs
r9745 r10020 25 25 using HeuristicLab.Parameters; 26 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 27 using HeuristicLab.Problems.DataAnalysis. Trading;27 using HeuristicLab.Problems.DataAnalysis.Symbolic; 28 28 29 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{29 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 30 30 /// <summary> 31 31 /// An operator that analyzes the training best symbolic trading solution for single objective symbolic trading problems. -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/SingleObjective/ValidationBestSolutionAnalyzer.cs
r9745 r10020 24 24 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 25 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 using HeuristicLab.Problems.DataAnalysis. Trading;26 using HeuristicLab.Problems.DataAnalysis.Symbolic; 27 27 28 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{28 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 29 29 /// <summary> 30 30 /// An operator that analyzes the validation best symbolic trading solution for single objective symbolic trading problems. -
stable/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Symbolic/Solution.cs
r9745 r10020 25 25 using HeuristicLab.Optimization; 26 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 27 using HeuristicLab.Problems.DataAnalysis. Trading;27 using HeuristicLab.Problems.DataAnalysis.Symbolic; 28 28 29 namespace HeuristicLab.Problems.DataAnalysis. Symbolic.Trading{29 namespace HeuristicLab.Problems.DataAnalysis.Trading.Symbolic { 30 30 /// <summary> 31 31 /// Represents a symbolic trading solution (model + data) and attributes of the solution like accuracy and complexity
Note: See TracChangeset
for help on using the changeset viewer.