Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            //BarDay.LoadYear(2016);
            BarDay.LoadDay(2015, 11, 13);
            float[][] arrs = new float[4][];
            arrs[0]      = BarDay.arr;
            arrs[1]      = BarDay.arr5;
            arrs[2]      = BarDay.arr15;
            arrs[3]      = BarDay.arr390;
            BarDay.dates = new string[] { "11/13/2015" };
            List <IBarDay> bdlist = new List <IBarDay>();

            for (int i = 0; i < BarDay.symbols.Count(); i++)
            {
                for (int j = 0; j < BarDay.dates.Count(); j++)
                {
                    bdlist.Add(new BarDay(j, i));
                }
            }
            Test t = new MyTest.MyTest();

            //ILookup<DateTime, IBarDay> bdl = bdlist.ToLookup(k => DateTime.Parse("01/02/1998"));
            //t.Container = new TestContainer();
            Test.type = typeof(MyTest.MyTest);
            System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
            t.run(bdlist.ToArray(), BarDay.symbols, BarDay.dates, arrs, null, null);
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            List <string> testr = new List <string>();

            foreach (TestResult tr in Test.testResults)
            {
                testr.Add(tr.ToString());
            }
            File.WriteAllLines(@"c:\src\r.txt", testr);
            File.WriteAllLines(@"c:\src\m.txt", Test.results);

            //tc.type = typeof(MyTest);
            //TestResult tr = tc.TestDay(bdl, DateTime.Parse("01/02/1998"));
            PostToGoogle(new string[] { "a b c d e f g h i j" });
        }
Ejemplo n.º 2
0
        static void setup(int year, int month)
        {
            string filter = $@"{year.ToString("0000")}{month.ToString("00")}*.bin";

            string[] files = Directory.GetFiles($@"{minuteData}", filter);
            files = (from f in files where f.EndsWith(".bin") select f).ToArray();
            foreach (string file in files)
            {
                var ymd = getymd(file);
                BarDay.LoadDay(ymd.Item1, ymd.Item2, ymd.Item3);
                float[] tarr = BarDay.arr;
                BarDay.LoadDay(ymd.Item1, ymd.Item2, ymd.Item3, true);
                string date = $"{ymd.Item2.ToString("00")}/{ymd.Item3.ToString("00")}/{ymd.Item1.ToString("0000")}";

                List <IBarDay> bdlist = new List <IBarDay>();
                for (int i = 0; i < BarDay.symbols.Count(); i++)
                {
                    BarDay.dates = new string[] { date };
                    for (int j = 0; j < BarDay.dates.Count(); j++)
                    {
                        bdlist.Add(new BarDay(j, i));
                    }
                }
                string prev = Utility.GetTradingDay(date, -1);
                string nxt  = Utility.GetTradingDay(date, 1);
                Dictionary <string, IDayCandle> prevDay = Utility.LoadDayCandles(prev, BarDay.symbols);
                Dictionary <string, IDayCandle> nxtDay  = Utility.LoadDayCandles(nxt, BarDay.symbols);
                Dictionary <string, IDayCandle> today   = Utility.LoadDayCandles(date, BarDay.symbols);
                dictionary[date] = new TestDay()
                {
                    arr = tarr, symbols = BarDay.symbols, bdlist = bdlist, ndArr = BarDay.arr, nextDay = nxtDay, prevDay = prevDay, toDay = today
                };
            }

            //arrs[0] = BarDay.arr;
            //arrs[1] = BarDay.arr5;
            //arrs[2] = BarDay.arr15;
            //arrs[3] = BarDay.arr390;
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            string btd = Environment.GetEnvironmentVariable("BackTestDir");

            btd = @"e:\";
            int buildArgs = 1;

            if (buildArgs == 1)
            {
                string[]      strings    = File.ReadAllLines(@"c:\users\scott\Downloads\er_nyse.csv");
                string[]      strings1   = File.ReadAllLines(@"c:\users\scott\Downloads\er_nsdq.csv");
                List <string> allStrings = new List <string>(strings);
                allStrings.AddRange(strings1);
                strings = allStrings.ToArray();

                //strings = (from st in strings where st.Split(',').Count() > 1 select $"{st.Split(',')[0]},{st.Split(',')[1].Split(' ')[0]}").ToArray();
                string[][] tokArray = (from st in strings select st.Split(',')).ToArray();
                tokArray = (from t in tokArray where t.Length == 8 select t).ToArray();
                tokArray = tokArray.Skip(1).ToArray();
                tokArray = (from t in tokArray where t[3] == "B" select t).ToArray();
                var groups = tokArray.GroupBy(k => k[2].Split(' ')[0]);
                //string[] allDays = Directory.GetFiles($@"{btd}daysbydate");
                //allDays = (from d in allDays select d.Split('.')[0].Split('\\').Last()).ToArray();
                //allDays = (from d in allDays select $"{d.Substring(4, 2)}/{d.Substring(6, 2)}/{d.Substring(0, 4)}").ToArray();
                //Array.Sort(allDays);
                foreach (var g in groups)
                {
                    string date = g.Key;
                    date = date.Split(' ')[0];
                    string[] dateToks = date.Split('/');
                    date = $@"{ Int32.Parse(dateToks[0]).ToString("00")}/{Int32.Parse(dateToks[1]).ToString("00")}/{Int32.Parse(dateToks[2]).ToString("0000")}";
                    string[][] toka    = g.ToArray();
                    string[]   symbols = (from tok in toka select tok[1]).ToArray();
                    Array.Sort(symbols);
                    BarDay.BuildEarningsBin(date, symbols);
                    //string tdate = $"{date.Split('/')[2]}{date.Split('/')[0]}{date.Split('/')[1]}";
                    //int index = Array.BinarySearch(allDays, tdate);
                    string prevDate = Utility.GetTradingDay(date, 1);
                    if (prevDate != null)
                    {
                        //string d = allDays[index + 1];
                        BarDay.BuildEarningsBin(prevDate, symbols, "nd", date);
                    }
                    else
                    {
                        Console.WriteLine("next day not found");
                    }
                }
                //BarDay.BuildEarningsBin("01/26/2016", new string[] { "AAPL", "SCHW" });
                return;
            }
            //byte[] b = File.ReadAllBytes(@"c:\src\data\1.bin");
            //DLChecker(@"f:\dl2");
            //return;
            //foreach (string symfn in Directory.GetFiles(@"f:\dl2\"))
            //{
            //    string sym = symfn.Split('\\').Last();
            //    sym = sym.Substring(0, sym.Length - 4);
            //    BarDay.BreakFileIntoMonths(sym);
            //}
            //return;
            //BarDay.BreakFileIntoMonths("IMNP");
            BarDay.BuildMonthBin2(args[0]);
            return;

            foreach (string dir in Directory.GetDirectories($@"{btd}rawdata\2016"))
            {
                BarDay.BuildMonthBin(dir);
            }
            ushort s = dtoi(658.99);

            //BarDay.BuildAllBins();
            for (int i = 2016; i < 2017; i++)
            {
                BarDay.BuildConsolidatedBarsyy($@"c:\src\data\{i}.bin", $@"c:\src\data\{i}.sym", $@"c:\src\data\{i}.dates", 5);
                BarDay.BuildConsolidatedBarsyy($@"c:\src\data\{i}.bin", $@"c:\src\data\{i}.sym", $@"c:\src\data\{i}.dates", 15);
                BarDay.BuildConsolidatedBarsyy($@"c:\src\data\{i}.bin", $@"c:\src\data\{i}.sym", $@"c:\src\data\{i}.dates", 390);
                BarDay.validateBinConsolidatedFile($@"c:\src\data\{i}.bin5", $@"c:\src\data\{i}.sym", $@"c:\src\data\{i}.dates", 5);
                BarDay.validateBinConsolidatedFile($@"c:\src\data\{i}.bin15", $@"c:\src\data\{i}.sym", $@"c:\src\data\{i}.dates", 15);
                BarDay.validateBinConsolidatedFile($@"c:\src\data\{i}.bin390", $@"c:\src\data\{i}.sym", $@"c:\src\data\{i}.dates", 390);
            }
            return;

            //BarDay.validateBinFile(@"c:\src\data\1998.bin", @"c:\src\data\1998.sym",@"c:\src\data\1998.dates");
            BarDay.BuildConsolidatedBars(@"c:\src\data\1998.bin", @"c:\src\data\1998.sym", @"c:\src\data\1998.dates", 5);
            BarDay.validateBinConsolidatedFile(@"c:\src\data\1998.bin5", @"c:\src\data\1998.sym", @"c:\src\data\1998.dates", 5);
            BarDay.BuildConsolidatedBars(@"c:\src\data\1998.bin", @"c:\src\data\1998.sym", @"c:\src\data\1998.dates", 15);
            BarDay.validateBinConsolidatedFile(@"c:\src\data\1998.bin15", @"c:\src\data\1998.sym", @"c:\src\data\1998.dates", 15);
            BarDay.BuildConsolidatedBars(@"c:\src\data\1998.bin", @"c:\src\data\1998.sym", @"c:\src\data\1998.dates", 390);
            BarDay.validateBinConsolidatedFile(@"c:\src\data\1998.bin390", @"c:\src\data\1998.sym", @"c:\src\data\1998.dates", 390);
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            HttpListener list = new HttpListener();
            string       url  = $"http://*****:*****@"c:\src\MyTest\Mytest\bin\debug\mytest.dll");
                Type ty = null;
                try
                {
                    a  = GetAssembly();
                    ty = a.GetType("MyTest.MyTest");
                } catch (Exception e)
                {
                    continue;
                }
                StreamWriter sw = new StreamWriter(ctx.Response.OutputStream);
                Test.messages.Clear();
                Test.testResults.Clear();
                Test.results.Clear();
                foreach (string date in dictionary.Keys)
                {
                    TestDay td = dictionary[date];
                    BarDay.symbols = td.symbols;
                    arrs[0]        = td.arr;
                    string testdate = date;
                    Test   t        = (Test)Activator.CreateInstance(ty);// null;  //new MyTest();
                    BarDay.arr = td.arr;
                    if (t.testNextDay)
                    {
                        testdate   = Utility.GetTradingDay(date, 1);
                        BarDay.arr = td.ndArr;
                    }
                    BarDay.dates = new string[] { testdate };
                    //ILookup<DateTime, IBarDay> bdl = bdlist.ToLookup(k => DateTime.Parse("01/02/1998"));
                    //t.Container = new TestContainer();
                    //Test.type = typeof(MyTest);
                    //Test.type = typeof(Test);
                    Test.type = ty;
                    //System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
                    Console.WriteLine($"running {date} {i}");
                    sw.WriteLine($"Testing version {t.GetVerion()}");
                    BarDay.bdinit();
                    Dictionary <string, Dictionary <string, IDayCandle> > prev = new Dictionary <string, Dictionary <string, IDayCandle> >();
                    prev[testdate] = td.prevDay;
                    Dictionary <string, Dictionary <string, IDayCandle> > today = new Dictionary <string, Dictionary <string, IDayCandle> >();
                    today[testdate] = td.toDay;
                    t.run(td.bdlist.ToArray(), BarDay.symbols, BarDay.dates, arrs, prev, today);
                    //Test.results.Clear();
                }
                string d = "nodate";
                foreach (string s in Test.messages)
                {
                    //Console.WriteLine(s);
                    sw.WriteLine($"Message^{d}^{s}");
                }
                foreach (string s in Test.results)
                {
                    //Console.WriteLine(s);
                    sw.WriteLine($"results^{d}^{s}");
                }
                foreach (TestResult s in Test.testResults)
                {
                    //Console.WriteLine(s.ToString());
                    sw.WriteLine($"testResults^{d}^{s}");
                }
                string dir = ctx.Request.Url.AbsolutePath;

                //StreamWriter sw = new StreamWriter(ctx.Response.OutputStream);
                sw.Write(dir);
                sw.Flush();
                ctx.Response.Close();
            }
        }