csv_to_hst





//+------------------------------------------------------------------+
//|                                                   csv_to_hst.mq4 |
//|                                                       KLeTcHATyI |
//|                                                  nowindows@nm.ru |
//+------------------------------------------------------------------+
#property copyright "KLeTcHATyI"
#property link      "nowindows@nm.ru"
#property show_inputs

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//---- TODO: Add your code.
   // input
   // files must be in expert/files directory,
   string csv_filename = "USDCHF1440.csv";
   string hst_filename = "TEST.hst";
   int i_period = 1440;
   int i_digits = 4;
   string c_symbol = "USDCHF";
   
   //open csv
   int csv_file = FileOpen(csv_filename, FILE_CSV|FILE_READ, ',');
   if(csv_file < 0) return(-1);
   
   //save hst
   int hst_file = FileOpen(hst_filename, FILE_BIN|FILE_WRITE);
   if(hst_file < 0) return(-1);
   //header
   string c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   int    version=400;
   int    i_unused[13];
   FileWriteInteger(hst_file, version, LONG_VALUE);
   FileWriteString(hst_file, c_copyright, 64);
   FileWriteString(hst_file, c_symbol, 12);
   FileWriteInteger(hst_file, i_period, LONG_VALUE);
   FileWriteInteger(hst_file, i_digits, LONG_VALUE);
   FileWriteInteger(hst_file, 0, LONG_VALUE);       //timesign
   FileWriteInteger(hst_file, 0, LONG_VALUE);       //last_sync
   FileWriteArray(hst_file, i_unused, 0, 13);
  
   
   string yyyymmdd, hhmm;
   double d_open, d_high, d_low, d_close, d_volume;
   int t_time;
   //1971.01.04,00:00,4.3180,4.3180,4.3180,4.3180,0
   while (FileIsEnding(csv_file) == false)
   {
     yyyymmdd = FileReadString(csv_file);
     if (yyyymmdd != "") // as a rule, metatrader .csv has empty line
     {
       hhmm = FileReadString(csv_file);
       d_open = FileReadNumber(csv_file);
       d_high = FileReadNumber(csv_file);
       d_low = FileReadNumber(csv_file);
       d_close = FileReadNumber(csv_file);
       d_volume = FileReadNumber(csv_file);
       
       t_time = StrToTime(yyyymmdd+' '+hhmm);
       FileWriteInteger(hst_file, t_time, LONG_VALUE);
       FileWriteDouble(hst_file, d_open, DOUBLE_VALUE);
       FileWriteDouble(hst_file, d_low, DOUBLE_VALUE);
       FileWriteDouble(hst_file, d_high, DOUBLE_VALUE);
       FileWriteDouble(hst_file, d_close, DOUBLE_VALUE);
       FileWriteDouble(hst_file, d_volume, DOUBLE_VALUE);
     }
   }  
   
   Print("csv_to_hst OK");
   
   // close
   FileClose(hst_file);
   FileClose(csv_file);
   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

Uses files from the file system
It writes information to file

It reads information from a file