Changeset 6861 for branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Views/TradingSolutionLineChartView.cs
- Timestamp:
- 10/03/11 17:51:02 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Views/TradingSolutionLineChartView.cs
r6138 r6861 94 94 95 95 private IEnumerable<double> GetProfits(IEnumerable<double> returns, IEnumerable<double> signals, double transactionCost) { 96 double p = 0; 97 foreach (var signalReturn in returns.Zip(signals, (r, s) => new { Return = r, Signal = s })) { 98 double iterationReturn = 0.0; 96 double p = signals.First(); 97 yield return 0.0; 98 foreach (var signalReturn in returns.Skip(1).Zip(signals.Skip(1), (r, s) => new { Return = r, Signal = s })) { 99 double iterationReturn = 0; 99 100 double signal = signalReturn.Signal; 100 101 double actualReturn = signalReturn.Return; 101 102 if (p == 0 && signal.IsAlmost(0)) { 102 103 } else if (p == 0 && signal.IsAlmost(1)) { 104 iterationReturn = 0; 103 105 p = 1; 104 106 } else if (p == 0 && signal.IsAlmost(-1)) { 107 iterationReturn = 0; 105 108 p = -1; 106 109 } else if (p == 1 && signal.IsAlmost(1)) { … … 115 118 iterationReturn = -actualReturn; 116 119 } else if (p == -1 && signal.IsAlmost(0)) { 117 iterationReturn = - actualReturn - transactionCost;120 iterationReturn = -(actualReturn - transactionCost); 118 121 p = 0; 119 122 } else if (p == -1 && signal.IsAlmost(1)) { 120 iterationReturn = - actualReturn - transactionCost;121 p = -1;123 iterationReturn = -(actualReturn - transactionCost); 124 p = 1; 122 125 } 123 126 yield return iterationReturn;
Note: See TracChangeset
for help on using the changeset viewer.