int timeframe = 1; bool isHistorical = true; string symbolsFilter = "NASDAQ100"; string filterRule = "close > 1"; Rules.Add(new Rule("Price moves more than 8 normalized ATRs", "natr(1) > 8*natr(10)")); Rules.Add(new Rule("Low greater than high, open or close", "low > high or low > open or low > close")); Rules.Add(new Rule("High lower than high, open or close", "high < 5low or high < open or high < close")); Rules.Add(new Rule("High/low moves more than 8 normalized ATRs", "((high/low)-1)*100 > 8*natr(10)")); Symbol[] symbols; if(string.IsNullOrEmpty(symbolsFilter)) { symbols = Symbols.GetSymbols(); } else { symbols = Symbols.GetSymbols(symbolsFilter, ""); } List parsers = new List(); for(int i=0;i 0 && filter[m] > 0) { Global.Trace("Symbol: " + symbol + " - Date: " + dates[m] + " -> " + rule.name); } } } } // Sleep App.Main.Sleep(10); } #functions# static List Rules = new List(); public class Rule { public string name; public string formula; public Rule(string name, string formula) { this.name = name; this.formula = formula; } }