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

[amibroker] Re: How To Overwrite Exported CSV Data File



PureBytes Links

Trading Reference Links

Below is the copy of e-mail from Dingo with his idea (his post for some reason has never made it to this board). I'm still not sure how to implement it in my code. Thanks, Dingo.

From: dingo <dingo@xxx>

What you need is a "one time switch" so you can open the file in overwrite mode once and then do an append the rest of the time. This can be accomplished by:

if ( Status("stocknum") == 0 )
{
       Your "one time stuff" here before your other code }


--- In amibroker@xxxxxxxxxxxxxxx, "Lester Vanhoff" <ebsn247lsm@xxx> wrote:
>
> 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
>