Different Results Each Time - Individual Optimization

I'm hoping that someone can show me where I might be in error. I'm suspect it is something simple.

Using the following code, I am getting different results each time I perform a Individual Optimization. If I perform a Single Thread Optimization, the results are consistent each time.

Short = Cover = 0;

PRM_P01 = Optimize ("P01", 10, 1, 30, 1);
PRM_P02 = Optimize ("P02", 10, 1, 30, 1);

MA1 = MA (C, PRM_P01);
MA2 = MA (C, PRM_P02);

Buy = Cross (MA1, MA2);
Sell = Cross (MA2, MA1);

Optimization heatmap showing changes with each Individual Optimization:

2019-07-15_08-19-24

  • using Amibroker 6.30.5.
  • The database is set to local and "wait for back fill" is un-selected.
  • there are no static variables or anything other code
  • Only one symbol being tested

This "heat map" does not come from AmiBroker. Chances are that you have problem with the 3rd party "heat map" itself. Also check input data as described here.

http://www.amibroker.com/kb/2014/11/27/how-to-synchronize-backtesting-setup-on-different-computers/

thanks @Tomasz

The heatmap is indeed from a 3rd party, and when I noticed the issue, one of the first things that I looked at was that perhaps it was reading the data incorrectly.

I have checked however, and I can confirm that I am getting different CSV's directly from AmiBroker each time I run an Individual Optimization. I get identical CSV's when I run a regular Optimization.

I tried running the checksum code, as received the same result each time I ran the expiration. I also tried on a brand new installation of Ami with a new database, and still received the same results.

Is there anything else that I can look at or would anyone be willing to run the above code in an Individual Optimization and report back if different CSV's are generated with each run?

Here is a screenshot of a comparison between two of the files:

2019-07-16_07-31-36

Short = Cover = 0;

PRM_P01 = Optimize ("P01", 10, 1, 30, 1);
PRM_P02 = Optimize ("P02", 10, 1, 30, 1);

MA1 = MA (C, PRM_P01);
MA2 = MA (C, PRM_P02);

Buy = Cross (MA1, MA2);
Sell = Cross (MA2, MA1);

Really struggling with this. Would anyone mind running an Individual Optimization (multi-threaded) on the above code and confirming/denying that the system is outputting results that are different each time?
Basic settings are:

1 sec database
database in (local data) mode
1 min bars
2 weeks of data
@ES#C is the symbol

How did you solve this later? I found the results from individual optimization are indeed different from the direct optimization without multi-threading

I strongly suggest using data NOT coming from real-time data stream when doing optimization. If you feed analysis from constantly changing data set (as it is the case for real-time data stream) you are going to get different results.
Since @ES#C was mentioned I guess that the data source was IQFEED (real-time data stream).