Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/03/11 17:51:02 (13 years ago)
Author:
gkronber
Message:

#1508 bug fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Views/TradingSolutionLineChartView.cs

    r6138 r6861  
    9494
    9595    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;
    99100        double signal = signalReturn.Signal;
    100101        double actualReturn = signalReturn.Return;
    101102        if (p == 0 && signal.IsAlmost(0)) {
    102103        } else if (p == 0 && signal.IsAlmost(1)) {
     104          iterationReturn = 0;
    103105          p = 1;
    104106        } else if (p == 0 && signal.IsAlmost(-1)) {
     107          iterationReturn = 0;
    105108          p = -1;
    106109        } else if (p == 1 && signal.IsAlmost(1)) {
     
    115118          iterationReturn = -actualReturn;
    116119        } else if (p == -1 && signal.IsAlmost(0)) {
    117           iterationReturn = -actualReturn - transactionCost;
     120          iterationReturn = -(actualReturn - transactionCost);
    118121          p = 0;
    119122        } else if (p == -1 && signal.IsAlmost(1)) {
    120           iterationReturn = -actualReturn - transactionCost;
    121           p = -1;
     123          iterationReturn = -(actualReturn - transactionCost);
     124          p = 1;
    122125        }
    123126        yield return iterationReturn;
Note: See TracChangeset for help on using the changeset viewer.