// Downloaded From https://www.WiseStockTrader.com
// Originally By Barry Scarborough 7/14/2008, updated to handle large files 8/30/08
// Modified by 8/1/2012 Maheshwar Kanitkar & Santosh Gadre for exporting data in metastock format. 
// Output symbols will be less than 14 character to work with MS. Also we added Period as 1 min, which is hardcoded.


// #### 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 = "ER2U8GLOBEXFUT";

lname1 = StrReplace(lname , "12", "" ); 
lname = lname1;
lname1 = StrReplace(lname , "00", "" ); 
lname = lname1;

fh = fopen( "c:\\AmiBackup\\" + lname + ".csv", "w"); 
//PER = GetOption("Periodicity");
PER=1;
PERs= StrFormat( "%g", PER ); 

if( fh ) 
{ 
    if(Interval() == inDaily OR Interval() == inMonthly OR Interval() ==
inWeekly)
    {
        fputs( "Ticker,PER, Date,Open,High,Low,Close,Volume \n", fh ); 
           for( i = 0; i < BarCount; i++ ) 
        { 
               y = Year(); 
               m = Month(); 
               d = Day(); 
            fputs( lname  + "," , fh );
            fputs( PERs  + "," , fh );

                  ds = StrFormat("%02.0f%02.0f%02.0f,", y[ i ], m[ i ], d[ 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,PER,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( lname  + "," , fh );
                fputs( PERs  + "," , fh );
                  ds = StrFormat("%02.0f%02.0f%02.0f,", y[ i ], m[ i ], d[ 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( lname  + "," , fh );
                
                fputs( PERs  + "," , fh );

                  ds = StrFormat("%02.0f%02.0f%02.0f,", y[ i ], m[ i ], d[ 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 ); 

} 

// ShellExecute("C:\\MoveDataFromAMI2MS.bat","",""); // calling asc2ms for file conversion in metastock format.

//ShellExecute ("asc2ms.exe", "-f C:\\AmiBackup\\GOLDM12AUGFUT.csv -r r -O C:\\AmiBackup\\RT --forceWrite=yes", "showcmd=1");

Buy = 1;