Beispiel #1
0
        private async Task _runTicks(List <Tick> ticks, AlgoService algo, TickProcessor tickPro,
                                     CancellationToken ct)
        {
            await Task.Factory.StartNew(() =>
            {
                var lastOptimizeDate = StartDate;

                for (int i = 0; i < ticks.Count; i++)
                {
                    if (ct.IsCancellationRequested == true)
                    {
                        ct.ThrowIfCancellationRequested();
                    }

                    Tick tick = ticks[i];

                    //if (RunTestWithOptimizer &&
                    //    tick.Time.Date.AddDays(0 - OptimizeInterval) > lastOptimizeDate &&
                    //    tick.Time.Date.AddDays(0 - OptimizeLookback) > StartDate)
                    //{
                    //  //TODO new algo instance need to be created here
                    //  //algo.Optimize(tick.Time.Date, AlgoType,
                    //  //  CompleteHour, EntryLev, ExitLev,
                    //  //  CompleteHour2, EntryLev2, ExitLev2, OptimizeLookback).Wait(ct);

                    //  algo.ResetAlgoParams();
                    //  lastOptimizeDate = tick.Time.Date;
                    //}

                    bool isClosePos = false;
                    double riskLev  = -1;
                    var signal      = algo.OnTick(tick, out isClosePos, out riskLev, SL);
                    tickPro.OnTick(tick, signal, isClosePos, riskLev);

                    if (i % 100 == 0)
                    {
                        _setProgress(i * 100 / ticks.Count);
                    }
                }

                _setProgress(100);
            }, ct);
        }
    private async Task _runTicks(List<Tick> ticks, AlgoService algo, TickProcessor tickPro, 
      CancellationToken ct)
    {
      await Task.Factory.StartNew(() =>
                                  {
                                    var lastOptimizeDate = StartDate;

                                    for (int i = 0; i < ticks.Count; i++)
                                    {
                                      if (ct.IsCancellationRequested == true)
                                      {
                                        ct.ThrowIfCancellationRequested();
                                      }

                                      Tick tick = ticks[i];

                                      //if (RunTestWithOptimizer &&
                                      //    tick.Time.Date.AddDays(0 - OptimizeInterval) > lastOptimizeDate &&
                                      //    tick.Time.Date.AddDays(0 - OptimizeLookback) > StartDate)
                                      //{
                                      //  //TODO new algo instance need to be created here
                                      //  //algo.Optimize(tick.Time.Date, AlgoType,
                                      //  //  CompleteHour, EntryLev, ExitLev,
                                      //  //  CompleteHour2, EntryLev2, ExitLev2, OptimizeLookback).Wait(ct);

                                      //  algo.ResetAlgoParams();
                                      //  lastOptimizeDate = tick.Time.Date;
                                      //}

                                      bool isClosePos = false;
                                      double riskLev = -1;
                                      var signal = algo.OnTick(tick, out isClosePos, out riskLev, SL);
                                      tickPro.OnTick(tick, signal, isClosePos, riskLev);

                                      if(i % 100 == 0)
                                        _setProgress(i*100/ticks.Count);
                                    }

                                    _setProgress(100);
                                  }, ct);
    }