public BackTestFileWriter(Strategy strategy) throws JArbitragerException { decimalFormat = NumberFormatterFactory.getNumberFormatter(5); dateFormat = new SimpleDateFormat("MMddyy,HHmmss"); dateFormat.setTimeZone(strategy.getTradingSchedule().getTimeZone()); File marketDataDir = new File(MARKET_DATA_DIR); if (!marketDataDir.exists()) { marketDataDir.mkdir(); } String fullFileName = MARKET_DATA_DIR + FILE_SEP + strategy.getName() + ".txt"; try { boolean fileExisted = new File(fullFileName).exists(); writer = new PrintWriter(new BufferedWriter(new FileWriter(fullFileName, true))); if (!fileExisted) { StringBuilder header = getHeader( strategy.getInstrument1().getContract().m_symbol, strategy.getInstrument2().getContract().m_symbol); writer.println(header); } } catch (IOException ioe) { throw new JArbitragerException("Could not write to file " + strategy.getName()); } }
public void start(String[] args) { try { if (args.length == 0) processDirectoryTree(new File("")); else for (String arg : args) { File fileArg = new File(arg); if (fileArg.isDirectory()) processDirectoryTree(fileArg); else { // Allow user to leave off extension: if (!arg.endsWith("" + ext)) arg += "" + ext; strategy.process(new File(arg).getCanonicalFile()); } } } catch (IOException e) { throw new RuntimeException(e); } }
public void processDirectoryTree(File root) throws IOException { for (File file : Directory.walk(root.getAbsolutePath(), ".*\\." + ext)) strategy.process(file.getCanonicalFile()); }