public List <StratergyParameterRange> GetRanges(List <string> extractedString) { lock (syn) { List <StratergyParameterRange> result = new List <StratergyParameterRange>(); using (FileStream fs = new FileStream(GetConfigName(), FileMode.Open)) using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas())) { DataContractSerializer ser2 = new DataContractSerializer(typeof(StratergyParameterRange)); StratergyParameterRange deserializedStratergyParameterRange = (StratergyParameterRange)ser2.ReadObject(reader, true); foreach (KeyValuePair <string, AForge.IntStepRange> currKeyValuePair in deserializedStratergyParameterRange.ranges) { if (result.Count == 0) { result.Add(new StratergyParameterRange()); } if (currKeyValuePair.Value.IsExtract == 0) { foreach (StratergyParameterRange currStratergyParameterRange in result) { currStratergyParameterRange.ranges.Add(currKeyValuePair.Key, currKeyValuePair.Value); } } else { if (extractedString != null) { extractedString.Add(currKeyValuePair.Key); } List <StratergyParameterRange> newResults = new List <StratergyParameterRange>(); foreach (StratergyParameterRange currStratergyParameterRange in result) { for (int i = currKeyValuePair.Value.Min; i <= currKeyValuePair.Value.Max; i += currKeyValuePair.Value.Step) { StratergyParameterRange newPR = new StratergyParameterRange(); foreach (KeyValuePair <string, AForge.IntStepRange> temp in currStratergyParameterRange.ranges) { newPR.ranges.Add(temp.Key, temp.Value); } newPR.ranges.Add(currKeyValuePair.Key, new AForge.IntStepRange(i, i, 1)); newResults.Add(newPR); } } result = newResults; } } return(result); } } }
private OptimizationFunctionIntNDFactory GetStrategyFactory(StratergyParameterRange spr, ConfigReader cr) { if (cr is BuyLimitAndWait.BuyLimitAndWaitConfigReader) { return(new BuyLimitAndWait.BuyLimitAndWaitFunctionFactory(spr)); } if (cr is MartinGale.MartinGaleConfigReader) { return(new MartinGale.MartinGaleFunctionFactory(spr)); } if (cr is Pipsovik.PipsovikConfigReader) { return(new Pipsovik.PipsovikFunctionFactory(spr)); } if (cr is SuperAdaptStrategy.SuperAdaptConfigReader) { return(new SuperAdaptStrategy.SuperAdaptFunctionFactory(spr)); } throw new ApplicationException("Can`t find factory for this type of configs"); }
//public StrategyParameter GetMainParameters //{ // get // { // StrategyParameter param = new StrategyParameter(); // foreach (KeyValuePair<string, AForge.IntStepRange> range in GetRanges(null)[0].ranges) // { // param.Add(range.Key, range.Value.Current); // } // return param; // } //} public void SaveCurrentParameters(string strategyName, StrategyParameter sParam, string directory) { if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } else { Array.ForEach(Directory.GetFiles(directory), delegate(string path) { File.Delete(path); }); } List <string> arrExportParameters = new List <string>(); using (FileStream fs = new FileStream(GetConfigName(), FileMode.Open, FileAccess.Read, FileShare.Read)) using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas())) { DataContractSerializer ser2 = new DataContractSerializer(typeof(StratergyParameterRange)); StratergyParameterRange deserializedStratergyParameterRange = (StratergyParameterRange)ser2.ReadObject(reader, true); foreach (KeyValuePair <string, AForge.IntStepRange> currKeyValuePair in deserializedStratergyParameterRange.ranges) { if (currKeyValuePair.Value.IsNonExport == 0) { arrExportParameters.Add(currKeyValuePair.Key); } } } arrExportParameters.Add("GMT"); sParam["GMT"] = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["GMT"]); sParam["MagicNumber"] = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["MagicNumber"]); sParam.NewsFilePath = System.Configuration.ConfigurationManager.AppSettings["NewsFilePath"]; using (StreamWriter streamWriter = new StreamWriter(Path.Combine(directory, "external" + strategyName + sParam["MagicNumber"].ToString() + ".mq4"))) { streamWriter.Write(StrategyMqlTemplate.BuildMQLStrategy(strategyName, sParam, arrExportParameters)); } }
internal BuyLimitAndWaitFunction(InputData inSampleData, DateTime startTime, EstimationFunctionType estFunctionType, Account acc, StratergyParameterRange range) : base(inSampleData, startTime, estFunctionType, acc, range) { }
public BuyAndWaitFunctionFactory(StratergyParameterRange spRange) { base.StratergyParameterRange = spRange; }
public TheoristFunctionFactory(StratergyParameterRange spRange) { base.StratergyParameterRange = spRange; }
internal PipsovikWeekendFunction(InputData inSampleData, DateTime startTime, EstimationFunctionType estFunctionType, Account acc, StratergyParameterRange range) : base(inSampleData, startTime, estFunctionType, acc, range) { }
public PipsovikWeekendFunctionFactory(StratergyParameterRange spRange) { base.StratergyParameterRange = spRange; }
public InverseMartinGaleFunctionFactory(StratergyParameterRange spRange) { base.StratergyParameterRange = spRange; }
public AverageFunctionFactory(StratergyParameterRange spRange) { base.StratergyParameterRange = spRange; }
public SuperAdaptFunctionFactory(StratergyParameterRange spRange) { base.StratergyParameterRange = spRange; }
internal InverseMartinGaleFunction(InputData inSampleData, DateTime startTime, EstimationFunctionType estFunctionType, Account acc, StratergyParameterRange range) : base(inSampleData, startTime, estFunctionType, acc, range) { }
/// <summary> /// OptimizationFunctionIntND /// </summary> /// <param name="sparamRange"></param> public OptimizationFunctionIntND(StratergyParameterRange sparamRange) { this.sparamRange = sparamRange; }
protected CommonStrategyFunction(InputData inSampleData, DateTime startTime, EstimationFunctionType estFunctionType, Account acc, StratergyParameterRange range) : base(range) { this.SampleData = inSampleData; this.StartTime = startTime; this.EstimationFunctionType = estFunctionType; this.DefaultAccount = acc; }