| 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}");
}
}
}
}