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); }