No it should not be UAC or access rights (my system does not have shadow folders).
I just noticed something a little strange in my live (demo) account related to this. Upon stopping/starting the strategy, it complains about the .fac file but then a debug line I have below that shows that it does have the correct OptimalF value in memory. I wonder if the error message could be bogus for some reason?
EDIT: I'm replacing output below with a cleaner example:
Broker: IBFX, Inc. connected at UTC 12.02. 11:36
Loading EURUSD prices.. 4500 min
Trade: dt-e9-htc-30min EURUSD 12.02.2014
[EURUSD::L9488] continuing
Read dt-e9-htc-30min_EURUSD.fac dt-e9-htc-30min_EURUSD.par
Error 062: Can't open dt-e9-htc-30min.fac (rt)
Saved trade stats to disk
Asset=EURUSD; direction=1; OptimalF=0.451000;
Margin=211.950000; Lots=0
[Wed 12.02. 11:36] 977 +0 -23 \.
[EURUSD::L9488] Stop 77@1.3603: -30.26 at 11:36
Btw I am now using the following logic (I keep tweaking it). I will keep poking at this issue and see if I can create any more easily-reproducible sample code. Note: to test this theory about the bogus error message, I also set OptimalF to 0 during the INITRUN and it seems to support the theory:
if(is(INITRUN)) OptimalF = 0;
static int numOpenLastCheck, zorroIteration; //track changes in trade open/closes
if(is(INITRUN)) numOpenLastCheck=0;
if(is(INITRUN)) zorroIteration=1; else zorroIteration++;
if (zorroIteration==2) loadStats("dt-e9-htc-30min.ini"); //load most recent stats that were saved to disk
if (zorroIteration>2 && NumOpenTotal != numOpenLastCheck)
{
saveStats("dt-e9-htc-30min.ini"); //save stats to disk upon trade count changes
numOpenLastCheck = NumOpenTotal;
}