Пример #1
0
    public static void Go()
    {
      var con = DataRetriever.GetData();

      var dailyPrice = con.GetSubsetOnTimespan(con.Dates[0], new TimeSpan(1, 0, 0, 0), false).GetColumnValuesAsDDC(3);
      var dailyMA = HelperMethods.GetMA(dailyPrice, 50);

      var startDate = new DateTime(2014, 2, 1);
      var endDate = new DateTime(2014, 3, 30);
      var doSubset = false;

      if (doSubset)
      {
        con = con.GetSubValues(startDate, endDate);
        dailyMA = dailyMA.GetSubValues(startDate, endDate);
      }

      var frequency = 1;
      con = (frequency == 1) ? con : con.SampleAtFrequency(frequency);

      var closes = con.GetColumnValuesAsDDC(3);


      var m1 = 15;
      var m2 = 30;
      var m3 = 45;

      //chart.AddSeries(HelperMethods.GetMA(closes, m1), "MA"+m1, 40, "###0.0##");
      //chart.AddSeries(HelperMethods.GetMA(closes, m2), "MA"+m2, 40, "###0.0##");
      //chart.AddSeries(HelperMethods.GetMA(closes, m3), "MA"+m3, 40, "###0.0##");
      //chart.AddSeries(HelperMethods.CalculateAO(candlePrices_: con), "OA", 80, "##0.0##");

      if (false) 
      {
        var chart = closes.DisplayLineChart(frequency.ToString());
        chart.SetXAxisFormat("dd-MMM-yyyy HH:mm");
        var pSar = HelperMethods.CalculateParabolicSAR(con);
        var app = chart.AddScatterSeries(pSar.Dates, pSar.Data, "PSar", System.Drawing.Color.Red, 40, "###0.0##");
        ScatterChartAppearance sApp = (ScatterChartAppearance)app.ChartTypeAppearance;
        sApp.IconSize = SymbolIconSize.Small;
        sApp.Icon = SymbolIcon.Triangle;
      }

      //{
      //  var macdLines = HelperMethods.CalcualateMACD(closes);

      //  chart.AddSeries(macdLines.GetColumnValuesAsDDC((int) MACDLines.SignalLine), "Sig", 80, "###0.0###");
      //  chart.AddSeries(macdLines.GetColumnValuesAsDDC((int)MACDLines.MACD1), "MACD1", 80, "###0.0###");
      //}

      // generate a signal
      {
        var ma3args = new SI.Research.Technicals.MA3ComplexArgs
        {
          MA1Win = m1,
          MA2Win = m2,
          MA3Win = m3
        };

        var ma3Indicator = new SI.Research.Technicals.MA3OrderEnforced(ma3args);
        var signals = ma3Indicator.GenerateWeightSeries(closes, null);
        signals = condenseSignals(signals);
        var grid = signals.DisplayInGrid("signals");
        grid.Grid.DisplayLayout.Bands[0].Columns[0].Format = "dd-MMM-yyyy HH:mm";

        var pnl = getPnl(closes, signals);

        pnl.ToCumulative().DisplayLineChart("pnl");
      }
    }
Пример #2
0
    public static void Go_conventionalMA3_OrderEnforced(int contractIndex_)
    {
      var data = DataRetriever.GetData("ES", "Index", contractIndex_);

      //data = Singleton<SI.Data.FXSpots>.Instance.GetData(new DateTime(2003, 1, 1), DateTime.Today).GetColumnValuesAsDDC(SI.Data.Currency.TWD.ArrayIndex);
      //data = BbgTalk.HistoryRequester.GetHistory(new DateTime(2009, 1, 1), "ES1 Index", "PX_LAST", true);

      var listOfEvals = new List<ReturnsEval.DataSeriesEvaluator>();

      foreach (var firstWindow in new[] { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 })
      {
        var args = new SI.Research.Technicals.MA3ComplexArgs()
        {
          MA1Win = firstWindow,
          MA2Win = firstWindow * 2,
          MA3Win = firstWindow * 4,
          Long = 1d,
          Long_1MA = 0.5d,
          Long_2MA = -0.5d,
          Short = -1d,
          Short_1MA = -0.5d,
          Short_2MA = 0.5d
        };

        var indic = new SI.Research.Technicals.MA3OrderEnforced(args);

        var signals = indic.GenerateWeightSeries(data, null);

        signals = CollapseToChanges(signals);

        if (false)
        {
          var con = new ConstructGen<double>(new[] { "Signal", "CleanPrice" });
          con.SetColumnValues(0, signals);

          foreach (var date in con.Dates)
            con.SetValue(date, 1, data.ValueOnExactDate(date));

          con.DisplayInGrid("changes with price levels");
        }

        //signals.DisplayInGrid("changes");


        var pnl = GeneratePnl(data, signals);

        var eval = new ReturnsEval.DataSeriesEvaluator(pnl.Dates, pnl.Data, string.Format("ES_{0}_{1}", contractIndex_, args.ToString()), ReturnsEval.DataSeriesType.Returns);
        listOfEvals.Add(eval);
        //eval.Display(eval.Name);

        //pnl.ToCumulative().DisplayLineChart("ES");
      }
      listOfEvals.Display("blah");

    }