Here's a script for converting Yahoo data:

Code:
// generate data files from .csv

#define YAHOO

#ifdef YAHOO
string InName = "History\\table.csv";  // name of the CSV file
string OutName = "History\\Stock.bar";
#endif

typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} SYSTEMTIME;

API(SystemTimeToVariantTime,oleaut32)
int _stdcall SystemTimeToVariantTime(SYSTEMTIME* lpSystemTime, double* pvtime);

DATE ConvertTime(int Year,int Month,int Day,int Hour,int Minute,int Second)
{
	SYSTEMTIME Time;
	memset(&Time,0,sizeof(SYSTEMTIME));
	if(Year < 50) Year += 2000;
	else if(Year < 100) year += 1900;
	Time.wYear = Year;
	Time.wMonth = Month;
	Time.wDay = Day;
	Time.wHour = Hour;
	Time.wMinute = Minute;
	Time.wSecond = Second;
	
	DATE vTime;
	SystemTimeToVariantTime(&Time,&vTime);	
	return vTime;
}

string readTick(string content,TICK* tick)
{
// tokenize a single line	
	char* line = strtok(content,"\n");
	if(!line) return 0;

	int Year, Month, Day, Hour, Minute, Second; 
#ifdef YAHOO // line format "2015-05-29,43.45,43.59,42.81,42.94,10901500,42.94"

	if(7 != sscanf(line,"%4d-%2d-%2d,%f,%f,%f,%f",
		&Year, &Month, &Day,
		&tick->fOpen, &tick->fHigh, &tick->fLow, &tick->fClose)) 
		return 0;
#endif


// store the time in DATE format
	tick->time = ConvertTime(Year,Month,Day,0,0,0);

// return pointer to next line
	return line+strlen(line)+1;
}

function main()
{
	if(!file_length(InName))
		quit("Data file not found!");
	string content = file_content(InName);
		
// allocate TICK array		
	int maxticks = 60*24*365; 
	TICK* ticks = malloc(maxticks*sizeof(TICK));

#ifdef YAHOO
// skip the header
	content = strstr(content,"\n")+1;
// already contains ticks in reverse order	
	TICK* tick = ticks; 
	while(content) {
		content = readTick(content,tick++);
	}
// store the ticks
	int size = (int)(tick-1)-(int)(ticks);
	file_write(OutName,ticks,size);
#endif	

	free(ticks);
	printf("\nRead %d ticks",size/sizeof(TICK));
}