| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 165.018% Drawdown 0.900% Expectancy 0 Net Profit 0% Sharpe Ratio 85.185 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0.007 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $1.00 |
namespace QuantConnect
{
public class DailyRunningVolumeIndicator : QCAlgorithm
{
DailyRunningVolume _runningVolume;
public override void Initialize()
{
SetStartDate(2016, 1, 4);
SetEndDate(2016, 1, 5);
SetCash(25000);
AddSecurity(SecurityType.Equity, "SPY", Resolution.Minute);
// create our volume indicator and register it to receive automatic data updates
_runningVolume = new DailyRunningVolume("SPY Daily Running Volume");
RegisterIndicator("SPY", _runningVolume);
// plot our indicator so we can see it!
PlotIndicator("SPY_Volume", _runningVolume);
}
public void OnData(TradeBars data)
{
if (!Portfolio.Invested)
{
SetHoldings("SPY", 1);
}
}
}
}namespace QuantConnect
{
/// <summary>
/// Indicator that keeps track of the daily running volume
/// </summary>
public class DailyRunningVolume : TradeBarIndicator
{
private DateTime _date;
private long _volume;
/// <summary>
/// Initializes a new instance of the <see cref="DailyRunningVolume"/> class
/// </summary>
public DailyRunningVolume()
: base("DAILY_RUNNING_VOLUME")
{
}
/// <summary>
/// Initializes a new instance of the <see cref="DailyRunningVolume"/> class
/// </summary>
/// <param name="name">The name of this indicaor</param>
public DailyRunningVolume(string name)
: base(name)
{
}
/// <summary>
/// Gets a flag indicating when this indicator is ready and fully initialized
/// </summary>
public override bool IsReady
{
get { return true; }
}
/// <summary>
/// Computes the next value of this indicator from the given state
/// </summary>
/// <param name="input">The input given to the indicator</param>
/// <returns>A new value for this indicator</returns>
protected override decimal ComputeNextValue(TradeBar input)
{
if (input.EndTime.Date != _date)
{
_volume = 0;
_date = input.EndTime.Date;
}
_volume += input.Volume;
return (decimal) _volume;
}
}
}