Example #1
0
        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);
                    }
            }
        }
Example #2
0
 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");
 }
Example #3
0
        //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;
 }
Example #7
0
 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;
 }
Example #9
0
 public InverseMartinGaleFunctionFactory(StratergyParameterRange spRange)
 {
     base.StratergyParameterRange = spRange;
 }
 public AverageFunctionFactory(StratergyParameterRange spRange)
 {
     base.StratergyParameterRange = spRange;
 }
 public SuperAdaptFunctionFactory(StratergyParameterRange spRange)
 {
     base.StratergyParameterRange = spRange;
 }
Example #12
0
 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;
 }