package com.activequant.backtesting.reporting;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.List;
import com.activequant.domainmodel.trade.event.OrderFillEvent;
public class CSVFileFillExporter {
private DecimalFormat dcf = new DecimalFormat("#.######");
public void export(String targetFolder, List<OrderFillEvent> fills) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(targetFolder + File.separator + "report.csv"));
bw.write("'InstId';'RefOrderID';'Side';'creationTimeInMilliseconds';'HUMAN readable';'FillAmount';'FillPrice';'LeftQuantity';");
bw.newLine();
for (OrderFillEvent ofe : fills) {
bw.write(ofe.getOptionalInstId());
bw.write(";");
bw.write(ofe.getRefOrderId());
bw.write(";");
bw.write(ofe.getSide().name());
bw.write(";");
bw.write(dcf.format(ofe.getTimeStamp().getMilliseconds()));
bw.write(";");
bw.write(""+ofe.getTimeStamp().getCalendar().getTime());
bw.write(";");
bw.write(dcf.format(ofe.getFillAmount()));
bw.write(";");
bw.write(dcf.format(ofe.getFillPrice()));
bw.write(";");
bw.write(dcf.format(ofe.getLeftQuantity()));
bw.write(";");
bw.newLine();
}
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}