Overall Statistics
Total Trades
273
Average Win
1.63%
Average Loss
-1.65%
Compounding Annual Return
39.482%
Drawdown
17.100%
Expectancy
0.157
Net Profit
89.419%
Sharpe Ratio
1.318
Loss Rate
42%
Win Rate
58%
Profit-Loss Ratio
0.99
Alpha
0.429
Beta
-0.279
Annual Standard Deviation
0.282
Annual Variance
0.08
Information Ratio
0.535
Tracking Error
0.313
Treynor Ratio
-1.333
using System;
using System.Collections;
using System.Collections.Generic; 
using QuantConnect.Securities;  
using QuantConnect.Models;   

namespace QuantConnect 
{   
    // Name your algorithm class anything, as long as it inherits QCAlgorithm
    public class RebalanceAlgorithm : QCAlgorithm
    {
        
        DateTime _lastRebalance = new DateTime();
        List<string> _assets = new List<string>() { "IBM", "AAPL", "MSFT" }; 
        
        //Initialize the data and resolution you require for your strategy:
        public override void Initialize()
        {
            SetStartDate(2013, 1, 1);
            SetEndDate(DateTime.Now.AddDays(-1));
            SetCash(25000);
            
            foreach (var symbol in _assets)
            {
                AddSecurity(SecurityType.Equity, symbol, Resolution.Minute);
            }
        }

        //Simplest implementation of asset rebalancing.
        public void OnData(TradeBars data) 
        {   
            if (Time.DayOfWeek == DayOfWeek.Monday && _lastRebalance.Date != Time.Date) 
            {
                Liquidate();
                foreach (var symbol in _assets)
                {
                    SetHoldings(symbol, (1m / _assets.Count));
                }
                _lastRebalance = Time;
            }
        }
    }
}