public void ExecuteTest()
        {
            string fxCode = @"
global variables{
	define reEntryExRatePercent as 0.05;
	define noOfLongPosition as 3;
	define noOfShortPosition as 3;

}

define Portfolio{
	set BaseCurrency to 'EUR';
	LongPositions: Position<Long>[3];
	ShortPositions: Position<Short>[3];
}

rule reallocation executes on every Friday{
    for all position in Portfolio.LongPositions{
	    if position.Currency is not in Top3Currencies:
		    Close position;
    }

    for all currency in Top3Currencies{
	    if currency is not in Currency of Portfolio.LongPositions:
		    Open Portfolio.LongPositions with currency;
    }

    for all position in Portfolio.ShortPositions{
	    if position.Currency is not in Bottom3Currencies:
		    Close position;
    }

    for all currency in Bottom3Currencies{
	    if currency is not in Currency of Portfolio.ShortPositions:
            Open Portfolio.ShortPositions with currency; 
    }
}

";

            StrategyAnalyzer target = new StrategyAnalyzer(); 
             DateTime startExecutionTime;
            DateTime endExecutionTime;
            DateTime startDate = new DateTime(2000, 1, 1);
            List<List<double>> results = new List<List<double>>();

            StringBuilder output = new StringBuilder();
            for (int j = 0; j < 10; j++)
            {
                results.Add(new List<double>());
                output.AppendLine("Year no.: " + (j + 1));
                for (int i = 0; i < 11; i++)
                {
                    startExecutionTime = DateTime.Now;
                    ExecuteAnalyzer(startDate, i+1, target, fxCode);
                    endExecutionTime = DateTime.Now;
                    results[j].Add((endExecutionTime - startExecutionTime).TotalMilliseconds);
                    output.AppendLine(String.Format("Execution time: {0} ",
                        (endExecutionTime - startExecutionTime).TotalMilliseconds                    
                        )
                        );

                    //results.Add(endExecutionTime - startExecutionTime);
                }
                
            }

            output.AppendLine("Average: ");
            for (int i = 0; i < 11; i++)
            {
                output.AppendLine(" Year " + (i + 1) + ": \t" + results.Select(r => r.ElementAt(i)).Average() );
            }


            using (StreamWriter writer = new StreamWriter(@"D:\Documents\Study Materials\Master Thesis\Main Thesis\executionTimeAnalyzer.txt"))
            {
                
                //for (int i = 1; i <= 10; i++)
                //{
                //    output += String.Format(results[i - 1].Milliseconds + " ms \n");
                //}

                writer.WriteLine(output);
            }

        }
 public void ExecuteAnalyzer(DateTime startDate, int numOfYear, StrategyAnalyzer analyzer, string fxCode)
 {
     DateTime endYear = startDate.AddYears(numOfYear);
     analyzer.Execute(startDate, endYear, 3, fxCode);
 }