| 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
{
public class TestAlgo : QCAlgorithm
{
public RollingWindow<decimal> BidPrice = new RollingWindow<decimal>(4);
public RollingWindow<decimal> AskPrice = new RollingWindow<decimal>(4);
public RollingWindow<decimal> Volume = new RollingWindow<decimal>(4);
public override void Initialize()
{
SetStartDate(2010, 01, 01);
SetEndDate(DateTime.Now);
SetCash(1000000);
var futureSP500 = AddFuture(Futures.Indices.SP500EMini, Resolution.Daily);
futureSP500.SetFilter(TimeSpan.Zero, TimeSpan.FromDays(182));
}
public override void OnData(Slice slice)
{
if (!Portfolio.Invested)
{
foreach(var chain in slice.FutureChains)
{
// find the front contract expiring no earlier than in 90 days
var contract = (
from futuresContract in chain.Value.OrderBy(x => x.Expiry)
where futuresContract.Expiry > Time.Date.AddDays(90)
select futuresContract
).FirstOrDefault();
// if found, perform logic
if (contract != null)
{
BidPrice.Add(contract.BidPrice);
AskPrice.Add(contract.AskPrice);
Volume.Add(contract.Volume);
if (!BidPrice.IsReady || !AskPrice.IsReady || !Volume.IsReady)
continue;
Console.WriteLine(BidPrice[0]);
MarketOrder(contract.Symbol, 1);
}
}
}
}
}
}