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