Last active
January 11, 2023 01:42
-
-
Save smnuman/247aca074eac81f39b40 to your computer and use it in GitHub Desktop.
The following formula is an AFL collection in AmiBroker library. The Formula is created by `*Barry Scarborough - razzbarry [at] imageview.us*` and detailed as "An indicator that allows dumping large files to C:AmiBackup. It can export EOD or intraday data up to 375,000 Excel lines. Large files, over 65500 lines will be broken into multiple files…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// From: http://www.amibroker.com/library/detail.php?id=1129 | |
// By Barry Scarborough 7/14/2008, updated to handle large files 8/30/08 | |
// #### READ THIS FIRST #### READ THIS FIRST #### READ THIS FIRST #### READ THIS FIRST #### READ THIS FIRST #### | |
// Export intraday and EOD data to .csv files | |
// One file for each stock but the symbol name must be a valid Microsoft file name or you will have to modify it, see code below to change name | |
// if the data exceeds 65500 lines it will be broken into separate files up to 327,500 lines or about 227 days of 24 hour, one minute data | |
// This will create a directory C:\AmiBackup | |
// Select your symbols to export with the "Apply to" filter in AA window, to save data base use all symbols and all quotes | |
// Make sure the chart is on the period you want to save | |
// Select the same timeframe period you want to save as using the AA "Settings" | |
// Press Scan button | |
// | |
// created a directory on your C drive named AmiBroker data backup | |
dayhours = paramtoggle("Day hours only", "No|Yes"); | |
fmkdir("c:\\AmiBackup\\"); | |
setbarsrequired(100000,100000); | |
lname = Name(); // gets the name of the symbol | |
// note: if you have names with invalid characters like / you must rename the file before you try to create a name | |
// add an IF line for each symbol you need to rename | |
if (lname == "ER2U8-GLOBEX-FUT") lname = "ER2U8"; | |
fh = fopen( "c:\\AmiBackup\\" + lname + ".csv", "w"); | |
if( fh ) | |
{ | |
if(interval() == inDaily OR interval() == inMonthly OR interval() == inweekly) | |
{ | |
fputs( "Ticker,Date,Open,High,Low,Close,Volume \n", fh ); | |
for( i = 0; i < BarCount; i++ ) | |
{ | |
y = Year(); | |
m = Month(); | |
d = Day(); | |
fputs( Name() + "," , fh ); | |
ds = StrFormat("%02.0f-%02.0f-%02.0f,", m[ i ], d[ i ], y[ i ] ); | |
fputs( ds, fh ); | |
qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i ],V[ i ] ); | |
fputs( qs, fh ); | |
if(i == 65500 or i == 130000 or i == 196500 or i == 262000) | |
{ | |
fclose( fh ); | |
if(i == 65500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " A.csv", "w"); | |
if(i == 130000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " B.csv", "w"); | |
if(i == 196500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " C.csv", "w"); | |
if(i == 262000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " D.csv", "w"); | |
} | |
} | |
} | |
else // intraday so add time field | |
{ | |
fputs( "Ticker,Date,Time,Open,High,Low,Close,Volume \n", fh ); | |
y = Year(); | |
m = Month(); | |
d = Day(); | |
r = Hour(); | |
e = Minute(); | |
n = Second(); | |
for( i = 1; i < BarCount; i++ ) | |
{ | |
if (dayhours and lastvalue(timenum()) >= 92900 and lastvalue(timenum()) <= 161500) | |
{ | |
fputs( Name() + "," , fh ); | |
ds = StrFormat("%02.0f-%02.0f-%02.0f,", m[ i ], d[ i ], y[ i ] ); | |
fputs( ds, fh ); | |
ts = StrFormat("%02.0f:%02.0f:%02.0f,", r[ i ],e[ i ],n[ i ] ); | |
fputs( ts, fh ); | |
qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i ],V[ i ] ); | |
fputs( qs, fh ); | |
} | |
else | |
{ | |
fputs( Name() + "," , fh ); | |
ds = StrFormat("%02.0f-%02.0f-%02.0f,", m[ i ], d[ i ], y[ i ] ); | |
fputs( ds, fh ); | |
ts = StrFormat("%02.0f:%02.0f:%02.0f,", r[ i ],e[ i ],n[ i ] ); | |
fputs( ts, fh ); | |
qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i ],V[ i ] ); | |
fputs( qs, fh ); | |
} | |
if(i == 65500 or i == 130000 or i == 196500 or i == 262000) | |
{ | |
fclose( fh ); | |
if(i == 65500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " A.csv", "w"); | |
if(i == 130000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " B.csv", "w"); | |
if(i == 196500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " C.csv", "w"); | |
if(i == 262000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " D.csv", "w"); | |
} | |
} | |
} | |
fclose( fh ); | |
} | |
Buy = 1; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment