示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AlgorithmPerformance"/> class
 /// </summary>
 /// <param name="trades">The list of closed trades</param>
 /// <param name="profitLoss">Trade record of profits and losses</param>
 /// <param name="equity">The list of daily equity values</param>
 /// <param name="listPerformance">The list of algorithm performance values</param>
 /// <param name="listBenchmark">The list of benchmark values</param>
 /// <param name="startingCapital">The algorithm starting capital</param>
 public AlgorithmPerformance(
     List<Trade> trades,
     SortedDictionary<DateTime, decimal> profitLoss,
     SortedDictionary<DateTime, decimal> equity,
     List<double> listPerformance,
     List<double> listBenchmark, 
     decimal startingCapital)
 {
     TradeStatistics = new TradeStatistics(trades);
     PortfolioStatistics = new PortfolioStatistics(profitLoss, equity, listPerformance, listBenchmark, startingCapital);
     ClosedTrades = trades;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AlgorithmPerformance"/> class
 /// </summary>
 /// <param name="trades">The list of closed trades</param>
 /// <param name="profitLoss">Trade record of profits and losses</param>
 /// <param name="equity">The list of daily equity values</param>
 /// <param name="listPerformance">The list of algorithm performance values</param>
 /// <param name="listBenchmark">The list of benchmark values</param>
 /// <param name="startingCapital">The algorithm starting capital</param>
 public AlgorithmPerformance(
     List <Trade> trades,
     SortedDictionary <DateTime, decimal> profitLoss,
     SortedDictionary <DateTime, decimal> equity,
     List <double> listPerformance,
     List <double> listBenchmark,
     decimal startingCapital)
 {
     TradeStatistics     = new TradeStatistics(trades);
     PortfolioStatistics = new PortfolioStatistics(profitLoss, equity, listPerformance, listBenchmark, startingCapital);
     ClosedTrades        = trades;
 }
示例#3
0
        /// <summary>
        /// Initializes the fitness score instance and sets the initial portfolio value
        /// </summary>
        public void Initialize(IAlgorithm algorithm)
        {
            _algorithm         = algorithm;
            _maxPortfolioValue = _previousPortfolioValue = _startingPortfolioValue = algorithm.Portfolio.TotalPortfolioValue;
            _startUtcTime      = _algorithm.UtcTime;

            // just in case...
            if (_startingPortfolioValue == 0)
            {
                _disabled = true;
                Log.Error("FitnessScore.Initialize(): fitness score will not be calculated because the" +
                          " algorithms starting portfolio value is 0.");
            }

            _negativeDailyDeltaPortfolioValue = new List <double>();
            _dailyPortfolioTurnovers          = new List <decimal>();
            _riskFreeRate = PortfolioStatistics.GetRiskFreeRate();
        }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AlgorithmPerformance"/> class
 /// </summary>
 public AlgorithmPerformance()
 {
     TradeStatistics = new TradeStatistics();
     PortfolioStatistics = new PortfolioStatistics();
     ClosedTrades = new List<Trade>();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AlgorithmPerformance"/> class
 /// </summary>
 public AlgorithmPerformance()
 {
     TradeStatistics     = new TradeStatistics();
     PortfolioStatistics = new PortfolioStatistics();
     ClosedTrades        = new List <Trade>();
 }