Esempio n. 1
0
        private static void ConvertAndResampleSymbol(string sourceDir, string destDir, string symbol, TimeSpan frequency)
        {
            string sourcePath = Path.Combine(sourceDir, $"{symbol}.txt");

            var resampler = new BarDataResampler(frequency);

            resampler.AddRange(Kibot.EnumerateBars(sourcePath));
            resampler.Finish();

            var barData = new List <BarData>();

            foreach (var bar in resampler.Data)
            {
                if (barData.Count > 0 && bar.Timestamp.Year != barData[0].Timestamp.Year)
                {
                    string destPath = Path.Combine(destDir, $"{symbol}_{barData[0].Timestamp.Year}.bar");
                    Zorro.Save(destPath, barData, Zorro.DataFormat.Bar);
                    barData.Clear();
                }

                barData.Add(bar);
            }

            if (barData.Count > 0)
            {
                var destPath = Path.Combine(destDir, $"{symbol}_{barData[0].Timestamp.Year}.bar");
                Zorro.Save(destPath, barData, Zorro.DataFormat.Bar);
            }
        }
Esempio n. 2
0
        private static void ConvertSymbolDaily(string sourceDir, string destDir, string symbol)
        {
            string sourcePath = Path.Combine(sourceDir, $"{symbol}.txt");
            string destPath   = Path.Combine(destDir, $"{symbol}.t6");
            var    barData    = Kibot.Load(sourcePath);

            Zorro.Save(destPath, barData, Zorro.DataFormat.T6);
        }
Esempio n. 3
0
        private static void ConvertForexTesterToZorro()
        {
            var symbols = new string[]
            {
                "AUDJPY",
                "AUDUSD",
                "CHFJPY",
                "EURCAD",
                "EURCHF",
                "EURGBP",
                "EURJPY",
                "EURUSD",
                "GBPCHF",
                "GBPJPY",
                "GBPUSD",
                "NZDJPY",
                "NZDUSD",
                "USDCAD",
                "USDCHF",
                "USDJPY"
            };

            var majors = new string[] { "EURUSD", "AUDUSD", "GBPUSD", "NZDUSD", "USDCAD", "USDCHF", "USDJPY" };

            Directory.CreateDirectory("Zorro");

            foreach (var symbol in symbols)
            {
                Console.WriteLine($"Loading {symbol} data");

                var bars = ForexTester.Load($"ForexTester/{symbol}.txt");

                DateTime minDate = bars[0].Timestamp;
                DateTime maxDate = bars[0].Timestamp;

                foreach (var bar in bars)
                {
                    if (bar.Timestamp < minDate)
                    {
                        minDate = bar.Timestamp;
                    }
                    if (bar.Timestamp > maxDate)
                    {
                        maxDate = bar.Timestamp;
                    }
                }

                Console.WriteLine($"Saving Zorro {symbol} data ({minDate} - {maxDate})");
                for (int year = minDate.Year; year <= maxDate.Year; year++)
                {
                    Zorro.Save($"Zorro/{symbol}_{year}.bar", bars.Where(x => x.Timestamp.Year == year), Zorro.DataFormat.Bar);
                }
            }
        }
Esempio n. 4
0
        public static void SaveZorroBarData(string dirPath, string symbol, List <BarData> bars, Zorro.DataFormat format)
        {
            DateTime minDate = bars.First().Timestamp;
            DateTime maxDate = bars.Last().Timestamp;

            Console.WriteLine($"Saving Zorro {symbol} data ({minDate} - {maxDate})");
            for (int year = minDate.Year; year <= maxDate.Year; year++)
            {
                var path = Path.Combine(dirPath, $"{symbol}_{year}.bar");
                Zorro.Save(path, bars.Where(x => x.Timestamp.Year == year), format);
            }
        }
Esempio n. 5
0
        private static void ConvertSymbol(string sourceDir, string destDir, string symbol)
        {
            string sourcePath = Path.Combine(sourceDir, $"{symbol}.txt");

            var barData = new List <BarData>();

            foreach (var bar in Kibot.EnumerateBars(sourcePath))
            {
                if (barData.Count > 0 && bar.Timestamp.Year != barData[0].Timestamp.Year)
                {
                    string destPath = Path.Combine(destDir, $"{symbol}_{barData[0].Timestamp.Year}.bar");
                    Zorro.Save(destPath, barData, Zorro.DataFormat.Bar);
                    barData.Clear();
                }

                barData.Add(bar);
            }

            if (barData.Count > 0)
            {
                var destPath = Path.Combine(destDir, $"{symbol}_{barData[0].Timestamp.Year}.bar");
                Zorro.Save(destPath, barData, Zorro.DataFormat.Bar);
            }
        }