Example #1
0
        public StrategyResult Analyze(Candle[] candles, out object[] outData)
        {
            if (!_matrix.Any())
            {
                InitiateCandles(candles);
            }
            else
            {
                AddMatrixRow(candles.Last());
                ProcessRow(_matrix.Count() - 1);
            }

            StrategyResult result = StrategyResult.Exit;

            if (_matrix.Last().Last() == 1)
            {
                result = StrategyResult.Long;
            }
            if (_matrix.Last().Last() == -1)
            {
                result = StrategyResult.Short;
            }

            outData = new object[] { _matrix.Last()[4], _matrix.Last()[5], _matrix.Last()[6], result };
            return(result);
        }
Example #2
0
        static void PrintResult(StrategyResult result)
        {
            Console.WriteLine("Distinct Client Ips:");
            foreach (var res in result.DistinctClientIPResult)
            {
                Console.WriteLine(res);
            }

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Distinct FQDN Ips of the client");
            foreach (var res in result.DistinctFqdnIPResult)
            {
                Console.WriteLine(res.Key);
                foreach (var val in res.Value)
                {
                    Console.WriteLine($"-- {val}");
                }
            }

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Count calls per client:");
            foreach (var res in result.CountClientCallsResult)
            {
                Console.WriteLine($"{res.Key} -- {res.Value}");
            }
        }
		public override IStrategyResult ApplyStrategy(IDiscoveryStrategy strategy)
		{
			List<IMail> results = new List<IMail>();

			foreach (IContentItem item in _dataSource)
			{
				if (item != null)
				{
					if (StrategyManager.CancellationPending)
					{
						return new StrategyResult();
					}

					Logger.LogInfo(string.Format("OutlookSentItemSource.Applying Strategy {0}, on {1}", strategy.DisplayName, (item as IMail).Subject));
					OnApplyingStrategy(new StrategyEventArgs() { MailItem = (item as IMail), Strategy = strategy, Source = this });
					if (strategy.CompareTo(item) == 0)
					{
						results.Add(item as IMail);
						break;
					}
				}
			}

			IMail parentMail = ExtractParentContentItem(results);

			IStrategyResult strategyResult = new StrategyResult();
			if (parentMail != null)
			{
				strategyResult.Add(parentMail);
			}
			return strategyResult;
		}
Example #4
0
        public StrategyResult Analyze(Candle[] candles, out object[] outData)
        {
            if (!_matrix.Any())
            {
                InitiateCandles(candles);
            }
            else
            {
                AddMatrixRow(candles.Last());
                ProcessRow(_matrix.Count() - 1);
            }

            var            row       = _matrix.Last();
            var            intResult = _matrix.Last().Last();
            StrategyResult result    = StrategyResult.Exit;

            if (intResult > 0)
            {
                result = StrategyResult.Long;
            }
            if (intResult < 0)
            {
                result = StrategyResult.Short;
            }

            outData = new object[] { row[4], row[5], row[6], row[7], row[8], row[9 + 2 * (int)Parameters[3].Value], row[9 + 2 * (int)Parameters[3].Value + 1], row[9 + 2 * (int)Parameters[3].Value + 2], row[9 + 2 * (int)Parameters[3].Value + 3], result };

            if (result != _lastResult)
            {
                _newSLValue = null;
            }

            if (StopLossValue != 0)
            {
                if (result == StrategyResult.Short)
                {
                    var newValue = Math.Max(_matrix.Last()[3] + StopLossValue, _matrix.Last()[6]);
                    if ((_newSLValue == null) || (newValue < _newSLValue))
                    {
                        _newSLValue = newValue;
                        ChangeStopLoss((float)_newSLValue);
                    }
                }

                if (result == StrategyResult.Long)
                {
                    var newValue = Math.Min(_matrix.Last()[3] - StopLossValue, _matrix.Last()[6]);
                    if ((_newSLValue == null) || (newValue > _newSLValue))
                    {
                        _newSLValue = newValue;
                        ChangeStopLoss((float)_newSLValue);
                    }
                }
            }

            _lastResult = result;
            return(result);
        }
 public virtual IStrategyResult ApplyStrategy(IDiscoveryStrategy strategy)
 {
     IStrategyResult strategyResult = new StrategyResult();
     foreach (var item in DataSource)
     {
         if (strategy.CompareTo(item) == 0)
         {
             strategyResult.Add(item);
         }
     }
     return strategyResult;
 }
Example #6
0
        public object GetAllStrategy(object json)
        {
            var body = JsonConverter.Decode(json);

            var user_id = body["user_id"];

            using (var ctx = new quantEntities()) {
                var strategys = ctx.strategy.Where(a => a.user_id == user_id).ToList();

                var list = new List <StrategyResult>();

                foreach (var each_strategy in strategys)
                {
                    // 根据backtest表找最后测试时间
                    var    strategy_id      = each_strategy.strategy_id;
                    var    q                = ctx.backtest.Where(a => a.strategy_id == strategy_id);
                    string last_modify_time = "";
                    int    times            = 0;
                    if (q.Any())
                    {
                        var target_backtests = q.ToList();
                        last_modify_time = target_backtests.Max(a => a.time);
                        times            = target_backtests.Count();
                    }
                    StrategyResult sr = new StrategyResult(
                        each_strategy.strategy_id,
                        each_strategy.strategy_name,
                        each_strategy.create_time,
                        each_strategy.strategy_hash,
                        last_modify_time,
                        times
                        );
                    list.Add(sr);
                    //list.Add(new {
                    //    strategy_id = each_strategy.strategy_id,
                    //    name = each_strategy.strategy_name,
                    //    create_time = each_strategy.create_time,
                    //    strategy_hash = each_strategy.strategy_hash,
                    //    last_modify_time = last_modify_time,
                    //    times = times
                    //}) ;
                }

                var sorted_list = list.OrderByDescending(sr => sr.last_modify_time);

                var data = new {
                    strategys = sorted_list
                };

                return(Helper.JsonConverter.BuildResult(data));
            }
        }
Example #7
0
        public void Process(StrategyResult result)
        {
            var statistic = _mapper.Map <StrategyStatistics>(result);

            if (!_strategyResults.ContainsKey(result.Strategy))
            {
                _strategyResults.Add(result.Strategy, statistic);
            }
            else
            {
                _strategyResults[result.Strategy] = statistic;
            }
        }
Example #8
0
 private IStrategyResult FindOriginal(List<IContentSource> sources, List<IDiscoveryStrategy> strategies)
 {
     IStrategyResult result = new StrategyResult();
     foreach (IContentSource source in sources)
     {
         if (source.Context == Context.Original)
         {
             source.ApplyingStrategy += source_ApplyingStrategy;
             result = source.ApplyStrategies(strategies);
             if (result.Count > 0)
             {
                 return result;
             }
         }
     }
     return result;
 }
Example #9
0
        public IStrategyResult LoadStrategyResult(int day, string resultName)
        {
            string         resultPath = dataPathUtils.GetStrategyResultFilePath(day, resultName);
            StrategyResult result     = new StrategyResult();

            result.Load(resultPath);
            //XmlDocument doc = new XmlDocument();
            //doc.Load(resultPath);
            //result.Load(doc.DocumentElement);
            IList <string> codes = LoadStrategyResultCodes(day, resultName);

            for (int i = 0; i < codes.Count; i++)
            {
                IStrategyResult_CodePeriod result_Code = LoadStrategyResult_CodePeriod(day, resultName, codes[i]);
                result.AddStrategyResult_Code(result_Code);
            }
            return(result);
        }
        public virtual IStrategyResult ApplyStrategies(List<IDiscoveryStrategy> strategies)
        {
            IStrategyResult strategyResult = new StrategyResult();
            foreach (IDiscoveryStrategy strategy in strategies)
            {
                strategyResult = ApplyStrategy(strategy);

                if (StrategyManager.CancellationPending)
                {
                    return strategyResult;
                }

                if (strategyResult.Count > 0)
                {
                    // Stop processing once result found;
                    return strategyResult;
                }
            }
            return strategyResult;
        }
Example #11
0
 public void Initialize()
 {
     _matrix     = new List <float[]>();
     _lastResult = StrategyResult.None;
     _newSLValue = null;
 }
 public StrategyResult Execute(ISerializable info = null)
 {
     return(StrategyResult.FromStrategyExecute(this, info));
 }