| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 80.790% Drawdown 1.000% Expectancy 0 Net Profit 0% Sharpe Ratio 11.004 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.086 Beta -0.181 Annual Standard Deviation 0.025 Annual Variance 0.001 Information Ratio 8.054 Tracking Error 0.162 Treynor Ratio -1.511 Total Fees $0.00 |
using System;
using System.Globalization;
using QuantConnect.Data;
namespace QuantConnect.Algorithm.CSharp
{
public class EminiAlgorithm : QCAlgorithm
{
public override void Initialize()
{
SetStartDate(2016, 01, 04);
SetEndDate(2016, 01, 05);
//Set the cash for the strategy:
SetCash(100000);
//Define the symbol and "type" of our generic data:
AddData<Emini>("ES");
}
public void OnData(Emini data)
{
if (data.Time.TimeOfDay < new TimeSpan(9, 30, 00) ||
data.Time.TimeOfDay > new TimeSpan(12, 00, 00))
{
return;
}
else
{
if (!Portfolio.Invested)
{
int quantity = (int)Math.Floor(Portfolio.Cash / data.Close);
Order("ES", quantity);
Debug("Buying " + quantity + " contracts at " + data.Close);
}
}
}
}
public class Emini : BaseData
{
public decimal Open = 0;
public decimal High = 0;
public decimal Low = 0;
public decimal Close = 0;
public long Volume = 0;
public Emini()
{
Symbol = "ES";
}
public override SubscriptionDataSource GetSource(SubscriptionDataConfig config, DateTime date, bool isLiveMode)
{
return new SubscriptionDataSource("https://www.dropbox.com/s/jni2cm5r9d22a60/ES%202016-01-04%20-%202016-12-19.csv?dl=1 ", SubscriptionTransportMedium.RemoteFile);
}
public override BaseData Reader(SubscriptionDataConfig config, string line, DateTime date, bool isLiveMode)
{
Emini index = new Emini();
try
{
var data = line.Split(',');
index.Time = DateTime.ParseExact(data[0] + data[1], "yyyyMMddhhmmss", CultureInfo.InvariantCulture);
index.Open = Convert.ToDecimal(data[2], CultureInfo.InvariantCulture);
index.High = Convert.ToDecimal(data[3], CultureInfo.InvariantCulture);
index.Low = Convert.ToDecimal(data[4], CultureInfo.InvariantCulture);
index.Close = Convert.ToDecimal(data[5], CultureInfo.InvariantCulture);
index.Volume = Convert.ToInt32(data[6], CultureInfo.InvariantCulture);
index.Symbol = "ES";
index.Value = index.Close;
}
catch
{
/* Do nothing, skip first title row */
}
return index;
}
}
}