Overall Statistics
Total Trades
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
2.107%
Drawdown
21.800%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0.24
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.02
Beta
0.005
Annual Standard Deviation
0.085
Annual Variance
0.007
Information Ratio
-0.586
Tracking Error
0.164
Treynor Ratio
4.117
Total Fees
$2.00
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using QuantConnect.Data;
using QuantConnect.Data.Market;
using QuantConnect.Data.Consolidators;

namespace QuantConnect.Algorithm.Examples
{
    /// <summary>
    /// Algorithm that plots data in the past
    /// </summary>
    public class PastPlottingAlgorithm : QCAlgorithm
    {
        //Series pastData1;
        //Series pastData2;
        //Series pastData3;
        //Series pastData4;
        //Series pastData5;
        
        /// <summary>
        /// Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.
        /// </summary>
        public override void Initialize()
        {
            SetStartDate(2010, 05, 03);
            SetEndDate(2015, 04, 30);
            
            AddSecurity(SecurityType.Equity, "MSFT", Resolution.Minute);
            AddSecurity(SecurityType.Forex, "AUDUSD", Resolution.Minute);
            //AddSecurity(SecurityType.Equity, "SPY", Resolution.Minute);
            //AddSecurity(SecurityType.Forex, "EURGBP", Resolution.Minute);
            //AddSecurity(SecurityType.Equity, "AAPL", Resolution.Minute);
            
            //var chart1 = new Chart("AUDUSD");
            //pastData1 = new Series("past-data");
            //chart1.AddSeries(pastData1);
            //AddChart(chart1);
            
            //var chart2 = new Chart("MSFT");
            //pastData2 = new Series("past-data");
            //chart2.AddSeries(pastData2);
            //AddChart(chart2);
            
            //var chart3 = new Chart("SPY");
            //pastData3 = new Series("past-data");
            //chart3.AddSeries(pastData3);
            //AddChart(chart3);
            
            //var chart4 = new Chart("EURGBP");
            //pastData4 = new Series("past-data");
            //chart4.AddSeries(pastData4);
            //AddChart(chart4);
            
            //var chart5 = new Chart("AAPL");
            //pastData5 = new Series("past-data");
            //chart5.AddSeries(pastData5);
            //AddChart(chart5);
        }

        /// <summary>
        /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
        /// </summary>
        /// <param name="data">TradeBars IDictionary object with your stock data</param>
        public void OnData(TradeBars data)
        {
            if (!Portfolio.Invested)
            {
                SetHoldings("MSFT", 0.05m);
                SetHoldings("AUDUSD", -0.75m);
                //SetHoldings("SPY", 0.05m);
                //SetHoldings("EURGBP", -0.75m);
                //SetHoldings("AAPL", 0.05m);
            }
            
            
            
            // plot every morning at 930
            //if (data.ContainsKey("AUDUSD") && data["AUDUSD"].Time.TimeOfDay.TotalHours == 9.5 && Time.Date > new DateTime(2010, 06, 01))
            //{
            //    pastData1.AddPoint(Time.Subtract(TimeSpan.FromDays(15)), data["AUDUSD"].Price);
            //}
            //if (data.ContainsKey("MSFT") && data["MSFT"].Time.TimeOfDay.TotalHours == 9.5 && Time.Date > new DateTime(2010, 06, 01))
            //{
            //    pastData2.AddPoint(Time.Subtract(TimeSpan.FromDays(15)), data["MSFT"].Price);
            //}
            //if (data.ContainsKey("SPY") && data["SPY"].Time.TimeOfDay.TotalHours == 9.5 && Time.Date > new DateTime(2010, 06, 01))
            //{
            //    pastData3.AddPoint(Time.Subtract(TimeSpan.FromDays(15)), data["SPY"].Price);
            //}
            //if (data.ContainsKey("EURGBP") && data["EURGBP"].Time.TimeOfDay.TotalHours == 9.5 && Time.Date > new DateTime(2010, 06, 01))
            //{
            //    pastData4.AddPoint(Time.Subtract(TimeSpan.FromDays(15)), data["EURGBP"].Price);
            //}
            //if (data.ContainsKey("AAPL") && data["AAPL"].Time.TimeOfDay.TotalHours == 9.5 && Time.Date > new DateTime(2010, 06, 01))
            //{
            //    pastData5.AddPoint(Time.Subtract(TimeSpan.FromDays(15)), data["AAPL"].Price);
            //}
        }
    }
}