コード例 #1
0
ファイル: Form1.cs プロジェクト: gkahansky/CryptoRobby
        private void LogConfiguration(PatternConfig settings)
        {
            var symbol    = "All Pairs";
            var interval  = "All Intervals";
            var retention = settings.Retention;
            var threshold = settings.Threshold;
            var file      = Path;
            var defaultSl = settings.DefaultStopLoss;
            var DynamicSl = settings.DynamicStopLoss;

            if (!string.IsNullOrWhiteSpace(settings.Symbol))
            {
                symbol = settings.Symbol;
            }

            if (!string.IsNullOrWhiteSpace(settings.Interval))
            {
                interval = settings.Interval;
            }



            var msg = String.Format("Running analysis for {0}_{1} for {2}, MA Aggregation: {3}, Accuracy: {4}, Default Stop Loss Threshold: {5}, Dynamic Stop Loss Threshold: {6}", symbol, interval, file, retention, threshold, defaultSl, DynamicSl);

            _logger.Info(msg);
        }
コード例 #2
0
        public Dictionary <string, IPattern> GenerateSettings(TesterOutput output)
        {
            var patternsRepository = new Dictionary <string, IPattern>();
            var patterns           = GetRelevantPatterns(output.Patterns);

            foreach (var p in patterns)
            {
                foreach (var symbol in output.Symbols)
                {
                    foreach (var interval in output.Intervals)
                    {
                        for (var r = output.retention.Min; r <= output.retention.Max; r += output.retention.Increment)
                        {
                            for (var t = output.threshold.Min; t <= output.threshold.Max; t += output.threshold.Increment)
                            {
                                for (var def = output.defaultSLThreshold.Min; def <= output.defaultSLThreshold.Max; def += output.defaultSLThreshold.Increment)
                                {
                                    for (var dyn = output.dynamicSLThreshold.Min; dyn <= output.dynamicSLThreshold.Max; dyn += output.dynamicSLThreshold.Increment)
                                    {
                                        var patternConfig = new PatternConfig(p, symbol, interval, true, t, (int)r, def, dyn);
                                        var hash          = p + "_" + symbol + "_" + interval + "_" + r + "_" + t + "_" + def + "_" + dyn;
                                        var pattern       = NewPattern(p, patternConfig, hash);
                                        patternsRepository.Add(hash, pattern);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(patternsRepository);
        }
コード例 #3
0
    public void SetWaveConfig(PatternConfig patternConfig) //(this waveConfig here is a local variable.)

    /* This method allows you to know which path is using from another script(in this case is the wave(one of WaveConfig) chosen in EnemySpawner.cs)
     * automatically instead of putting script manually via serializeField.
     */
    {
        this.patternConfig = patternConfig;//1st waveConfig is from this script, 2nd waveConfig is from this method.
    }
コード例 #4
0
ファイル: Pattern.cs プロジェクト: gkahansky/CryptoRobby
 public Pattern(PatternConfig settings, ILogger _logger, string engineName = "Generic")
 {
     logger   = _logger;
     Symbol   = settings.Symbol;
     Interval = settings.Interval;
     Name     = settings.Name;
     Engine   = new TradeEngine(logger, engineName);
 }
コード例 #5
0
ファイル: Pattern.cs プロジェクト: gkahansky/CryptoRobby
 public void UpdateSettings(PatternConfig config)
 {
     this.Name     = config.Name;
     this.Interval = config.Interval;
     this.DefaultStopLossThreshold = config.DefaultStopLoss;
     this.DynamicStopLoss          = config.DynamicStopLoss;
     this.Symbol = config.Symbol;
 }
コード例 #6
0
 public MetadataParser1(
     ILogger <MetadataParser> logger,
     IDocumentTypeParser documentTypeParser,
     IOptions <PatternConfig> patternConfig)
 {
     _logger             = logger;
     _patternConfig      = patternConfig.Value;
     _documentTypeParser = documentTypeParser;
 }
コード例 #7
0
 public RulePattern(ILogger _logger, PatternConfig settings, string engineName = "Generic")
     : base(settings, _logger, engineName)
 {
     Rules     = new List <IRule>();
     Retention = settings.Retention;
     Name      = settings.Name;
     Threshold = settings.Threshold;
     logger    = _logger;
     DefaultStopLossThreshold = settings.DefaultStopLoss;
     DynamicStopLossThreshold = settings.DynamicStopLoss;
     AddRules();
 }
コード例 #8
0
        // GET: Patterns
        public ActionResult Random()
        {
            var logger = new Logger("RobertWeb");
            var conf   = new PatternConfig("Test", "ETHBTC", "15m");

            var pattern = new PatternModel();

            pattern.Name     = "TestModel";
            pattern.Symbol   = "BTCUSD";
            pattern.Interval = "1d";
            return(View(pattern));
        }
コード例 #9
0
    private static void SetHeight(PatternConfig obj)
    {
        int length = PatternConfig.width * obj.height;

        while (obj.blocks.Count < length)
        {
            obj.blocks.Insert(0, BlockType.Null);
        }
        while (obj.blocks.Count > length)
        {
            obj.blocks.RemoveAt(0);
        }
    }
コード例 #10
0
 public StreakPattern(ILogger logger, PatternConfig settings, string engineName = "Generic") : base(settings, logger, engineName)
 {
     _logger     = logger;
     Streak      = 0;
     LastPrice   = 0;
     LastOpen    = 0;
     PriceQueue  = new Queue <decimal>();
     VolumeQueue = new Queue <decimal>();
     Retention   = settings.Retention;
     HighPrice   = 0;
     Threshold   = settings.Threshold;
     Name        = "Streak";
 }
コード例 #11
0
 private IEnumerator SpawnAllEnemiesInPattern(PatternConfig patternConfig)
 {
     for (int enemyCount = 0; enemyCount < patternConfig.GetNumberOfEnemies(); enemyCount++)
     {
         if (enemyCount == 0)
         {
             yield return(new WaitForSeconds(0.8f));
         }
         var newEnemy = Instantiate(patternConfig.GetEnemyPrefab(), patternConfig.GetWayPoints()[0].transform.position, Quaternion.identity);
         newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(patternConfig); //Ask this enemy to have specific path(in this case is following currentWave).
         yield return(new WaitForSeconds(patternConfig.GetTimeBetweenSpawns()));
     }
     yield return(new WaitForSeconds(patternConfig.GetTimeBetweenWaves()));
 }
コード例 #12
0
ファイル: Program.cs プロジェクト: xforever1313/Filesing
        private static FilesingConfig GenerateConfig(Regex regex, string searchDir, GenericLogger log, string inFile)
        {
            FilesingConfig config;

            if (regex == null)
            {
                log.WriteLine(
                    FilesingConstants.LightVerbosity,
                    "- Using regexes from config file '{0}'",
                    inFile
                    );

                config = XmlLoader.LoadConfigFromXml(inFile, searchDir);
            }
            else
            {
                log.WriteLine(
                    FilesingConstants.LightVerbosity,
                    "- Regex specified on command line.  Using regex '" + regex.ToString() + "'"
                    );

                if (string.IsNullOrWhiteSpace(inFile))
                {
                    log.WriteLine(
                        FilesingConstants.LightVerbosity,
                        "- No config file specified, not ignoring any files or directories."
                        );
                    config = new FilesingConfig();
                }
                else
                {
                    log.WriteLine(
                        FilesingConstants.LightVerbosity,
                        "- Config file '{0}' specified.  Using config file's global ignores and requires.  Ignoring file's patterns since 'regex' was specified on CLI.",
                        inFile
                        );
                    config = XmlLoader.LoadConfigFromXml(inFile, searchDir);
                }

                config.PatternConfigs.Clear();
                PatternConfig patternConfig = new PatternConfig(regex);
                config.PatternConfigs.Add(patternConfig);
            }

            config.SearchDirectoryLocation = searchDir;

            return(config);
        }
コード例 #13
0
 public TrendShiftPattern(ILogger logger, PatternConfig settings, string engineName = "Generic") : base(settings, logger, engineName)
 {
     Rules                    = new Dictionary <string, bool>();
     PriceQueue               = new Queue <decimal>();
     avgPriceList             = new Queue <decimal>();
     Retention                = settings.Retention;
     Name                     = settings.Name;
     Trend                    = 0;
     Threshold                = settings.Threshold;
     avgPrice                 = 0;
     avgPriceDelta            = 0;
     avgPriceChange           = 0;
     lastAvgPrice             = 0;
     _logger                  = logger;
     DefaultStopLossThreshold = settings.DefaultStopLoss;
     DynamicStopLossThreshold = settings.DynamicStopLoss;
 }
コード例 #14
0
 public SpringPattern(ILogger logger, PatternConfig settings, string engineName = "Generic") : base(settings, logger, engineName)
 {
     Rules      = new Dictionary <string, bool>();
     PriceQueue = new Queue <decimal>();
     Retention  = settings.Retention;
     Name       = settings.Name;
     ResetRules();
     Trend     = false;
     Threshold = settings.Threshold;
     Low       = 0;
     High      = 0;
     Spring    = 0;
     Pivot     = 0;
     LastPrice = 0;
     _logger   = logger;
     DefaultStopLossThreshold = settings.DefaultStopLoss;
     DynamicStopLossThreshold = settings.DynamicStopLoss;
 }
コード例 #15
0
        private void PreparePatternSpringConfig(JObject settings)
        {
            Config.PatternsConfig = new Dictionary <string, PatternConfig>();
            var pConfig = new PatternConfig();

            pConfig.Name                  = settings["Name"].ToString();
            pConfig.Symbol                = settings["Symbol"].ToString();
            pConfig.Interval              = settings["Interval"].ToString();
            pConfig.Threshold             = decimal.Parse(settings["Threshold"].ToString());
            pConfig.Retention             = int.Parse(settings["Retention"].ToString());
            pConfig.DefaultStopLoss       = decimal.Parse(settings["DefaultSLThreshold"].ToString());
            pConfig.DynamicStopLoss       = decimal.Parse(settings["DynamicSLThreshold"].ToString());
            pConfig.IsActive              = true;
            Config.PatternSpringThreshold = decimal.Parse(settings["Threshold"].ToString());
            Config.PatternSpringToKeep    = int.Parse(settings["Retention"].ToString());
            var hash = pConfig.Name + "_" + pConfig.Symbol + "_" + pConfig.Interval;

            Config.PatternsConfig.Add(hash, pConfig);
        }
コード例 #16
0
        private Pattern NewPattern(string name, PatternConfig settings, string engineName)
        {
            var p = new Object();

            switch (name)
            {
            case "Spring":
            {
                p = new SpringPattern(logger, settings, engineName);
                break;
            }

            case "Streak":
            {
                p = new StreakPattern(logger, settings, engineName);
                break;
            }

            case "TrendShift":
            {
                p = new TrendShiftPattern(logger, settings, engineName);
                break;
            }

            case "TrendIncline":
            {
                p = new TrendInclinePattern(logger, settings, engineName);
                break;
            }

            case "RulePattern":
            {
                p = new RulePattern(logger, settings, engineName);
                break;
            }
            }

            return((Pattern)p);
        }
コード例 #17
0
 public MetadataParser(ILogger <MetadataParser> logger, IOptions <PatternConfig> patternConfig)
 {
     _logger        = logger;
     _patternConfig = patternConfig.Value;
 }
コード例 #18
0
        public void XmlLoadTest()
        {
            string         fileName = Path.Combine(testFilesDir, "TestConfig.xml");
            FilesingConfig config   = XmlLoader.LoadConfigFromXml(fileName, TestDirManager.TestDir);

            // Check global ignore config
            {
                Assert.AreEqual(1, config.GlobalIgnoreConfigs.Count);

                IgnoreConfig globalIgnoreConfig = config.GlobalIgnoreConfigs[0];

                // Should only contain 1 file:
                Assert.AreEqual(1, globalIgnoreConfig.IgnoredFiles.Count);
                PathExistsInCollection(globalIgnoreConfig.IgnoredFiles, TestDirManager.RootFile1);

                // Should only contain 1 dir:
                Assert.AreEqual(1, globalIgnoreConfig.IgnoredDirectories.Count);
                PathExistsInCollection(globalIgnoreConfig.IgnoredDirectories, TestDirManager.Dir2_MyDir);

                // Should only contain 1 file with regex:
                Assert.AreEqual(1, globalIgnoreConfig.IgnoredFilesWithRegex.Count);
                FileRegexExistsInCollection(globalIgnoreConfig.IgnoredFilesWithRegex, "myFile.+", false);

                // Should only contain 1 dir with regex:
                Assert.AreEqual(1, globalIgnoreConfig.IgnoredDirectoriesWithRegex.Count);
                DirRegexExistsInCollection(globalIgnoreConfig.IgnoredDirectoriesWithRegex, "dir3", true);

                // Should contain 2 extensions to ignore.
                Assert.AreEqual(2, globalIgnoreConfig.IgnoredFileExtensions.Count);
                FileRegexExistsInCollection(globalIgnoreConfig.IgnoredFileExtensions, @"\.html", true);
                FileRegexExistsInCollection(globalIgnoreConfig.IgnoredFileExtensions, @"\.dll", false);
            }

            // Check Requirements Config
            {
                Assert.AreEqual(1, config.GlobalRequireConfigs.Count);

                RequireConfig globalRequireConfig = config.GlobalRequireConfigs[0];

                // Should only contain 1 file:
                Assert.AreEqual(1, globalRequireConfig.RequiredFiles.Count);
                PathExistsInCollection(globalRequireConfig.RequiredFiles, TestDirManager.Dir1_HelloHtml);

                // Should only contain 1 dir:
                Assert.AreEqual(1, globalRequireConfig.RequiredDirs.Count);
                PathExistsInCollection(globalRequireConfig.RequiredDirs, TestDirManager.Dir1);
            }

            // Check Patterns
            Assert.AreEqual(3, config.PatternConfigs.Count);

            // Check pattern 0
            {
                PatternConfig config0 = config.PatternConfigs[0];
                Assert.AreEqual("public", config0.Pattern.ToString());
                Assert.AreEqual(RegexOptions.Compiled | RegexOptions.IgnoreCase, config0.Pattern.Options);

                // No ignores or requirements.
                Assert.AreEqual(0, config0.IgnoreConfigs.Count);
                Assert.AreEqual(0, config0.RequireConfigs.Count);
            }

            // Check pattern 1:
            {
                PatternConfig config1 = config.PatternConfigs[1];
                Assert.AreEqual("class", config1.Pattern.ToString());
                Assert.AreEqual(RegexOptions.Compiled, config1.Pattern.Options);

                // Check ignore config
                {
                    Assert.AreEqual(1, config1.IgnoreConfigs.Count);
                    IgnoreConfig ignoreConfig = config1.IgnoreConfigs[0];

                    // Should only contain 1 file:
                    Assert.AreEqual(1, ignoreConfig.IgnoredFiles.Count);
                    PathExistsInCollection(ignoreConfig.IgnoredFiles, TestDirManager.RootFile2);

                    // Should only contain 1 dir:
                    Assert.AreEqual(1, ignoreConfig.IgnoredDirectories.Count);
                    PathExistsInCollection(ignoreConfig.IgnoredDirectories, TestDirManager.Dir1);

                    // Should only contain 1 file with regex:
                    Assert.AreEqual(1, ignoreConfig.IgnoredFilesWithRegex.Count);
                    FileRegexExistsInCollection(ignoreConfig.IgnoredFilesWithRegex, "Hello", false);

                    // Should only contain 1 dir with regex:
                    Assert.AreEqual(1, ignoreConfig.IgnoredDirectoriesWithRegex.Count);
                    DirRegexExistsInCollection(ignoreConfig.IgnoredDirectoriesWithRegex, "Dir1", false);

                    // Should contain 2 extensions to ignore.
                    Assert.AreEqual(2, ignoreConfig.IgnoredFileExtensions.Count);
                    FileRegexExistsInCollection(ignoreConfig.IgnoredFileExtensions, @"\.txt", true);
                    FileRegexExistsInCollection(ignoreConfig.IgnoredFileExtensions, @"\.EXE", false);
                }

                // Check requirements config
                {
                    Assert.AreEqual(1, config1.RequireConfigs.Count);

                    RequireConfig requireConfig = config1.RequireConfigs[0];

                    // Should only contain 1 file:
                    Assert.AreEqual(1, requireConfig.RequiredFiles.Count);
                    PathExistsInCollection(requireConfig.RequiredFiles, TestDirManager.Dir2_MyfileTxt);

                    // Should only contain 1 dir:
                    Assert.AreEqual(1, requireConfig.RequiredDirs.Count);
                    PathExistsInCollection(requireConfig.RequiredDirs, TestDirManager.Dir2_MyDir);
                }
            }

            // Check pattern 2:
            {
                PatternConfig config2 = config.PatternConfigs[2];
                Assert.AreEqual("hello", config2.Pattern.ToString());
                Assert.AreEqual(RegexOptions.Compiled | RegexOptions.IgnoreCase, config2.Pattern.Options);

                // No ignores or requirements.
                Assert.AreEqual(0, config2.IgnoreConfigs.Count);
                Assert.AreEqual(0, config2.RequireConfigs.Count);
            }
        }
コード例 #19
0
 private void PatternConfiguration(PatternConfig settings)
 {
     PatternConfig.Add(settings.Name, settings);
 }