[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] How To Overwrite Exported CSV Data File



PureBytes Links

Trading Reference Links

The following AFL will export eod data to C:\Test\Mseod.csv (set the filter, eg. a watch list and hit Scan button). However, to use it in real life you would need to delete that csv file before every export, otherwise the new data will be appended to the old file. The question is how to overwrite this file from AFL.

1) This line must be set to a=append in order to export all tickers in a watch list. If set to w=overwrite only one ticker will be exported:

fh = fopen( output_folder + "\\" + output_file, "a");

2) I tried to include fdelete(), 2nd line below, but then only data for one ticker is exported:

fmkdir( output_folder );
fdelete( output_folder + "\\" + output_file );

Here is the full code:

// Export data to C:\Test\Mseod.csv in old MetaStock format: Tkr,D,yymmdd,O,H,L,C,V,oi

output_folder = "C:\\Test";
output_file   = "Mseod.csv";
fmkdir( output_folder ); // if the directory doesn't exists it will be automatically created

fh = fopen( output_folder + "\\" + output_file, "a"); // a=append needed to get all tickers from watch list

if (fh)
{
  t = Name();
  p = "D";
  y = Year()%100;
  m = Month();
  d = Day();
for( i = 0; i < BarCount; i++ ) // loop
  {
  fputs( t + "," , fh );
  fputs( p + "," , fh );
  ds = StrFormat( "%02.f%02.f%02.f,", y[i], m[i], d[i] ); // date string
  fputs( ds, fh );
  qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f,%.0f\n", O[i], H[i], L[i], C[i], V[i], OI[i] ); // quote string
  fputs( qs, fh );
  }
fclose( fh );
}
Buy = 0; // link to "scan" button