| 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 Probabilistic 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
{
public class ConsolidatorAt30 : QCAlgorithm
{
private MovingAverageConvergenceDivergence oneHourMACD;
private MovingAverageConvergenceDivergence fourHourMACD;
private readonly string _spy = "SPY";
RollingWindow<IndicatorDataPoint> oneHourWindow;
RollingWindow<IndicatorDataPoint> fourHourWindow;
public override void Initialize()
{
SetStartDate(2020, 01, 01);
SetEndDate(DateTime.Now);
SetWarmUp(TimeSpan.FromDays(30));
AddEquity(_spy, Resolution.Minute);
// define our daily macd(12,26) with a 9 day signal
oneHourMACD = new MovingAverageConvergenceDivergence(12, 26, 9, MovingAverageType.Exponential);
fourHourMACD = new MovingAverageConvergenceDivergence(12, 26, 9, MovingAverageType.Exponential);
oneHourWindow = new RollingWindow<IndicatorDataPoint>(4);
fourHourWindow = new RollingWindow<IndicatorDataPoint>(4);
var oneHour = new TradeBarConsolidator(TimeSpan.FromMinutes(60));
var fourHours = new TradeBarConsolidator(TimeSpan.FromMinutes(240));
//bind event handler to data consolidated event.
oneHour.DataConsolidated += OnOneHour;
fourHours.DataConsolidated += OnFourHours;
oneHourMACD.Histogram.Updated += (object sender, IndicatorDataPoint updated) =>
{
oneHourWindow.Add(updated);
};
fourHourMACD.Histogram.Updated += (object sender, IndicatorDataPoint updated) =>
{
fourHourWindow.Add(updated);
};
//register the consolidator for data.
SubscriptionManager.AddConsolidator(_spy, oneHour);
RegisterIndicator(_spy, oneHourMACD, oneHour);
SubscriptionManager.AddConsolidator(_spy, fourHours);
RegisterIndicator(_spy, fourHourMACD, fourHours);
}
public void OnOneHour(object sender, TradeBar consolidated)
{
if (!oneHourMACD.IsReady) return;
if (!oneHourWindow.IsReady) return;
Debug("One Hour MACD: "+ oneHourMACD.Histogram + " Previous: " + oneHourWindow[1]*1);
}
public void OnFourHours(object sender, TradeBar consolidated)
{
if (!fourHourMACD.IsReady) return;
if (!fourHourWindow.IsReady) return;
Debug("---Four Hour MACD: "+ fourHourMACD.Histogram + " Previous: " + fourHourWindow[1]*1);
}
public void OnData(TradeBars data)
{
}
}
}