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
            //}
        }
示例#2
0
        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
            //}
        }