public double EstimateFunction(StrategyParameter sParam, string directory) { if (previosResult.ContainsKey(sParam.ToString())) { return(previosResult[sParam.ToString()]); } using (Log4Smart.Logger logger = new Log4Smart.Logger(false)) { Engine engine = new Engine(logger, logger); SuperAdaptStrategy strategy = new SuperAdaptStrategy(sParam, logger); int initialMoney = 10000000; Account acc = new Account(initialMoney); engine.StartTest(SampleData, strategy, acc); if (!engine.IsTestSuccessfull) { logger.SaveLogToFile("errors", SampleData.Symbol + "_" + StartTime.ToString("yyyyMMdd")); previosResult[sParam.ToString()] = 0; return(0); } if (directory != string.Empty) { logger.SaveLogToFile(directory + "/" + this.StartTime.ToString("yyyyMMdd") + "_" + (acc.Balance.ToString()) + "$", "allData"); } previosResult[sParam.ToString()] = acc.Balance; return(acc.Balance); } }
protected void InitComment() { if (TestingMode) { return; } TickComment.Clear(); previousID = -1; previousIDstring = string.Empty; TickComment.Append(param.ToString()); IsWasChanged = false; }
public override double OptimizationFunction(StrategyParameter sParam, string directory) { if (!IsValid(sParam)) { return(0); } if (previosResult.ContainsKey(sParam.ToString())) { return(previosResult[sParam.ToString()]); } using (Log4Smart.Logger logger = new Log4Smart.Logger(false)) { Engine engine = new Engine(logger, logger); MartinGaleStrategy strategy = new MartinGaleStrategy(sParam, logger); int initialMoney = 10000000; Account acc = new Account(initialMoney); engine.StartTest(SampleData, strategy, acc); if (!engine.IsTestSuccessfull) { logger.SaveLogToFile(directory + "/errors", SampleData.Symbol + "_" + StartTime.ToString("yyyyMMdd")); previosResult[sParam.ToString()] = 0; return(0); } if (directory != string.Empty) { logger.SaveLogToFile(directory + "/" + this.StartTime.ToString("yyyyMMdd") + "_" + (acc.Balance.ToString()) + "$", "allData"); } if (acc.Balance > initialMoney && this.EstimationFunctionType == EstimationFunctionType.MostMoney8Deviation) { previosResult[sParam.ToString()] = initialMoney + (acc.Balance - initialMoney) * (1 - acc.Statistics.GetDeviation); } else { previosResult[sParam.ToString()] = acc.Balance; } return(previosResult[sParam.ToString()]); } }
public SuperAdaptStrategy(StrategyParameter param, IStrategyLogger logger) { this.logger = logger; this.param = param; this.logger.AddMessage("Start strategy with parameter {0}", param.ToString()); }
static string CreateKey(string symbol, StrategyParameter sParam, DateTime start, DateTime end) { return(symbol + sParam.ToString() + start.Ticks.ToString() + end.Ticks.ToString()); }