public void write(long time, Instrument instrument1, Instrument instrument2) {
    double bid1 = instrument1.getBid();
    double ask1 = instrument1.getAsk();
    double bid2 = instrument2.getBid();
    double ask2 = instrument2.getAsk();

    if (bid1 > 0 && ask1 > 0 && bid2 > 0 && ask2 > 0) {
      StringBuilder sb = new StringBuilder();
      sb.append(dateFormat.format(new Date(time))).append(",");
      sb.append(decimalFormat.format(bid1)).append(",");
      sb.append(decimalFormat.format(ask1)).append(",");
      sb.append(decimalFormat.format(bid2)).append(",");
      sb.append(decimalFormat.format(ask2));

      writer.println(sb);
      writer.flush();
    }
  }
 private StringBuilder getHeader(String symbol1, String symbol2) {
   StringBuilder header = new StringBuilder();
   String appInfo = JArbitrager.APP_NAME + ", version " + JArbitrager.VERSION;
   header.append("# This historical data file was created by ").append(appInfo).append(LINE_SEP);
   header
       .append("# Each line represents a 1-second snapshot of the market and contains ")
       .append(BackTestFileReader.COLUMNS)
       .append(" columns:")
       .append(LINE_SEP);
   header.append("# 1. date in the MMddyy format").append(LINE_SEP);
   header.append("# 2. time in the HHmmss format").append(LINE_SEP);
   header.append("# 3. best bid for the first instrument").append(LINE_SEP);
   header.append("# 4. best ask for the first instrument").append(LINE_SEP);
   header.append("# 5. best bid for the second instrument").append(LINE_SEP);
   header.append("# 6. best ask for the second instrument").append(LINE_SEP);
   header.append(LINE_SEP);
   header.append("instruments=").append(symbol1).append(",").append(symbol2).append(LINE_SEP);
   header.append("timeZone=").append(dateFormat.getTimeZone().getID()).append(LINE_SEP);
   return header;
 }