Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
namespace QuantConnect.Algorithm.CSharp
{
    /// <summary>
    /// Basic template algorithm simply initializes the date range and cash. This is a skeleton
    /// framework you can use for designing an algorithm.
    /// </summary>
    public class ConsolidatorIssue : QCAlgorithm
    {
        private Symbol _ej = QuantConnect.Symbol.Create("EURJPY", SecurityType.Forex, Market.Oanda);

        public override void Initialize()
        {
            SetStartDate(new DateTime(2018, 5, 1, 12, 0, 0));  
            SetEndDate(new DateTime(2018, 5, 1, 23, 59, 0));
            SetCash(100000);

            SetBrokerageModel(BrokerageName.OandaBrokerage);
            AddForex("EURJPY", Resolution.Minute);

			// hourly consolidator
			var hourly = new QuoteBarConsolidator(TimeSpan.FromHours(1));
			
			// bind an event
			hourly.DataConsolidated += OnNewHour;
			
			// Register consolidator to get data
			SubscriptionManager.AddConsolidator(_ej, hourly);
			
        }
        
        public void OnNewHour(object sender, QuoteBar bar) 
        {
        	Debug("We got a new HOUR");
            Debug($"{Time.ToString("s")} new HOURLY bar from  {bar.Time.ToString("s")} to {bar.EndTime.ToString("s")} : {bar.Open} {bar.High} {bar.Low} {bar.Close}");
        }

        public override void OnData(Slice data)
        {
        	
        	var bars = data.Bars[Symbol("EURJPY")];

            if (bars.Time.Second == 0 && bars.Time.Minute == 0)
            {
                Debug(".    ");
                Debug("..    ");
                Debug("...   ");
                Debug($"Start of hour --> {bars.Time.ToString("s")} - {bars.EndTime.ToString("s")} : o {bars.Open}, c {bars.Close}");
            }

            if (bars.Time.Second == 0 && bars.Time.Minute == 1)
            {
                Debug($"Next bar      --> {bars.Time.ToString("s")} - {bars.EndTime.ToString("s")} : o {bars.Open}, c {bars.Close}");
            }

            if (bars.Time.Second == 0 && bars.Time.Minute == 59)
            {
                Debug($"End of hour   --> {bars.Time.ToString("s")} - {bars.EndTime.ToString("s")} : o {bars.Close}, c {bars.Close}");
            }
        
        }
    }
}