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

Re: [amibroker] Convert script to ALF



PureBytes Links

Trading Reference Links

This might work.  After running the scan, you would have to import the new file.

y = Year(); 
m = Month(); 
d = Day(); 
Hr = Hour();
Mn = Minute();
Sc = Second();

fh = fopen("adj_data.txt","w");
for( i = 0; i < BarCount; i++ ) { 
 
 ds = StrFormat("%4g-%02g-%02g,",y[i], m[i], d[i] ); //date
 ts = StrFormat("%02g:%02g:%02g",Hr[i], Mn[i], Sc[i]); //time
 qs = StrFormat(" %.2f, %.2f, %.2f, %.2f, %g", H[i], L[i], O[i], C[i], V[i] ); //data  
 if (Hr[i] || Mn[i] || Sc[i]) {
  fputs ("\n"+Name()+", ",fh);
  fputs( ds, fh ); 
  fputs( ts, fh );
  fputs( qs, fh); }
}
fclose( fh );
Buy = 0;


-------------------------------------------
On Sun, Sep 21, 2008 at 12:59 PM, Barry Scarborough <razzbarry@xxxxxxxxxxxx> wrote:

I wrote the following script to delete daily data bars in an intraday
database. Scripts really run slow, like many hours, and I was
wondering if this could be coded in AFL and run as a Scan. I run a
scan to export all intraday data and it takes a few minutes while the
script runs for hours and hours.

I just want to know if I can delete daily bars using an AFL formula
in Analysis>Scan using the object model, or some other way.

Thanks,
Barry

/*
** AmiBroker/Win32 Scripting Program
**
** File: DeleteDailyInIntraday.js
** Created: Barry Scarboroughm Feb 23, 2007
** Purpose: Cleanup the database when daily data is in the intraday
database.
** Language: JScript (Windows Scripting Host)
*/

var oAB = new ActiveXObject("Broker.Application");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var Shell = new ActiveXObject("WScript.Shell");
var oStocks = oAB.Stocks;
var numStocks = oStocks.Count;
var oStocksToDelete = new Array;

WScript.Echo("Deleting daily data in intraday database. " );

for( i = 0; i < numStocks; i++ )
{
oStock = oStocks( i );
var qty = oStock.Quotations.Count;
for(j = 0; j < qty; j++)
{
oQuote = oStock.Quotations( j );
var oDate = new Date( oQuote.Date ); // create date object
hour = oDate.getHours();
min = oDate.getMinutes();
sec = oDate.getSeconds();
if (hour == "0" && min == "0" && sec == "0" )
{
oQuote.Remove;
}
}
}

oAB.RefreshAll();

WScript.Echo("Finished deleting daily data in intraday database." );


__._,_.___

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___