I've come across a very perplexing problem and am hoping to get some advice.

I've been building a system that trades one asset, but takes its signals from other assets. Backtest results were OK and I've started a live forward test. Also going OK.

Today, I updated the price history I use in my simulations. I do this by taking the data from www.histdata.com and processing it with the script on the Data Import/Export page in the manual. Code reproduced below.

I've been doing this process regularly (about every other month) and consistently (ie, following the same process every time). The process involves updating the current year's price history by adding the new source data from histdata.com and then creating a new .bar file for the current year to replace the existing one. I archive the existing one so that I can refer to it later if any issues arise. Good thing I did.

Where the old and new 2015 .bar file overlapped, my strategy gives COMPLETELY different results if I run it on the new .bar file or the old .bar file. I then went back to my 2014 source data and created new .bar files and tested these. Same deal - completely different performance.

Visual inspection of the two price histories doesn't reveal any obvious differences. But I will test this in more detail.

The only difference that I can think of is that the new .bar file was created with the latest version of Zorro (v1.32) whilst the old files were created with earlier versions.

The only line of thinking that seems plausible is that this has something to do with the way in which Zorro now handles ticks in version 1.32. However, the strategy has a Bar Period of 60 minutes, so I don't think these changes should affect things.

The strategy doesn't use any TMF or tick() function. It simply buys and sells one asset based on the price change in a number of other assets.

Any help greatly appreciated, as this has really got me stumped! What could be causing such drastic differences when the only thing that has changed is the Zorro version that created the .bar files?

Code:
// import a historic data file from .csv

string InName = "Data\\DAT_ASCII_EURUSD_M1_2013.csv";  // name of the CSV file
string OutName = "History\\EURUSD_2010x.bar";

string readTick(string content,TICK* tick)
{
// tokenize a single line  
  char* line = strtok(content,"\n");
  if(!line) return 0;
  
// read "20100103 170000;1.430100;1.430400;1.430100;1.430400;0"
  int Year, Month, Day, Hour, Minute, Second; 
  if(10 != sscanf(line,"%4d%2d%2d %2d%2d%2d;%f;%f;%f;%f;",
    &Year, &Month, &Day, &Hour, &Minute, &Second,
    &tick->fOpen, &tick->fHigh, &tick->fLow, &tick->fClose)) 
    return 0;
    
// store the time in DATE format (ConvertTime is defined in Convert.c)
// make sure that the time is UTC time!!
  tick->time = ConvertTime(Year,Month,Day,Hour,Minute,Second);

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

function main()
{
  if(!file_length(InName))
    quit("Data file not found!");
    
// allocate TICK array    
  int maxticks = 60*24*365; // 1 year
  TICK* ticks = malloc(maxticks*sizeof(TICK)),
    tick = ticks+maxticks; 

// read ticks in reverse order  
  string content = file_content(InName);
  while(content) 
    content = readTick(content,--tick);

// store the ticks
  int size = (int)(ticks+maxticks)-(int)(tick+1);
  file_write(OutName,tick+1,size);
  free(ticks);

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