public List<string> Start(string Sequence, string simcontext, bool single) { // Console.WriteLine("Getting Sequence"); if (!single) { _sequence = Utils.GetRandomSequence(); if (_sequence == "None") { Console.WriteLine("No elements found"); return null; } } else { _sequence = Sequence; } var par = _sequence.Split(','); // _Seq = new Seq(); _Seq = new Seq(_sequence); // Debug.WriteLine("Sequence selected " + _sequence); List<Price> Prices= GlobalObjects.Points; SSPOP = new List<SS_Price>(); SSPOP_Raw_Trades_Only = new List<SS_Price>(); Dictionary<DateTime, SlowStoch> SS_DIC = new Dictionary<DateTime, SlowStoch>(); Dictionary<DateTime, double> PROF_DIC = new Dictionary<DateTime, double>(); Dictionary<DateTime, double> VOL_DIC = new Dictionary<DateTime, double>(); //START LOOOP var SS = AlsiUtils.Factory_Indicator.createSlowStochastic(_Seq.Fast_K, _Seq.Slow_K, _Seq.Slow_D, Prices); //CREATE DICTIONARY SS_DIC = SS.ToDictionary(x => x.TimeStamp, x => x); //POPULATE foreach (var p in Prices) { SS_Price rsp = new SS_Price() { ClosePrice = p.Close, Volume = p.Volume, Stamp = p.TimeStamp, SS = null, LastCross = SS_Price.CrossType.None, TrailingLevel = -1, }; SlowStoch s; SS_DIC.TryGetValue(p.TimeStamp, out s); if (s != null) { rsp.SS = s; SSPOP.Add(rsp); } } //RUN CALCS SetTriggers_Crossed(); SetTriggers_Limits(); SetTriggers_TradeSignals(); SetTriggers_StopLoss_TakeProfit(); GetTrades(); CalcBasicStats(); WriteResults(); if (Profit > 15000 || Profit < -15000 && !single) ; // WriteResultsToDatabase(_sequence); else if (single) { // WriteResults(); } var output = new List<string>() { _sequence, Profit.ToString(), Trades.ToString(), }; return output; //END LOOP //} }
public List <string> Start(string Sequence, string simcontext, bool single) { // Console.WriteLine("Getting Sequence"); if (!single) { _sequence = Utils.GetRandomSequence(); if (_sequence == "None") { Console.WriteLine("No elements found"); return(null); } } else { _sequence = Sequence; } var par = _sequence.Split(','); // _Seq = new Seq(); _Seq = new Seq(_sequence); // Debug.WriteLine("Sequence selected " + _sequence); List <Price> Prices = GlobalObjects.Points; SSPOP = new List <SS_Price>(); SSPOP_Raw_Trades_Only = new List <SS_Price>(); Dictionary <DateTime, SlowStoch> SS_DIC = new Dictionary <DateTime, SlowStoch>(); Dictionary <DateTime, double> PROF_DIC = new Dictionary <DateTime, double>(); Dictionary <DateTime, double> VOL_DIC = new Dictionary <DateTime, double>(); //START LOOOP var SS = AlsiUtils.Factory_Indicator.createSlowStochastic(_Seq.Fast_K, _Seq.Slow_K, _Seq.Slow_D, Prices); //CREATE DICTIONARY SS_DIC = SS.ToDictionary(x => x.TimeStamp, x => x); //POPULATE foreach (var p in Prices) { SS_Price rsp = new SS_Price() { ClosePrice = p.Close, Volume = p.Volume, Stamp = p.TimeStamp, SS = null, LastCross = SS_Price.CrossType.None, TrailingLevel = -1, }; SlowStoch s; SS_DIC.TryGetValue(p.TimeStamp, out s); if (s != null) { rsp.SS = s; SSPOP.Add(rsp); } } //RUN CALCS SetTriggers_Crossed(); SetTriggers_Limits(); SetTriggers_TradeSignals(); SetTriggers_StopLoss_TakeProfit(); GetTrades(); CalcBasicStats(); WriteResults(); if (Profit > 15000 || Profit < -15000 && !single) { ; } // WriteResultsToDatabase(_sequence); else if (single) { // WriteResults(); } var output = new List <string>() { _sequence, Profit.ToString(), Trades.ToString(), }; return(output); //END LOOP //} }