Overall Statistics |
Total Trades 188 Average Win 2.53% Average Loss -1.55% Compounding Annual Return 62.139% Drawdown 22.100% Expectancy 0.090 Net Profit 9.921% Sharpe Ratio 1.109 Loss Rate 59% Win Rate 41% Profit-Loss Ratio 1.63 Alpha 0.424 Beta 0.62 Annual Standard Deviation 0.564 Annual Variance 0.318 Information Ratio 0.535 Tracking Error 0.562 Treynor Ratio 1.008 Total Fees $209.99 |
using System; using System.Collections.Generic; using System.Linq; using QuantConnect; using QuantConnect.Algorithm; using QuantConnect.Data; using QuantConnect.Data.Market; using QuantConnect.Securities; using QuantConnect.Securities.Interfaces; namespace QuantConnect2 { public class TickDataTradingAlgorithmProblem : QCAlgorithm { private DateTime lastTradeTime = new DateTime(2012, 1, 1); private string _indicatorAsset = "SPY"; private string _tradingAsset = "TVIX"; public override void Initialize() { SetCash(100000); SetStartDate(2013, 1, 1); SetEndDate(2013, 7, 1); AddSecurity(SecurityType.Equity, _indicatorAsset, Resolution.Tick); AddSecurity(SecurityType.Equity, _tradingAsset, Resolution.Tick); Securities[_indicatorAsset].DataFilter = new ExchangeDataFilter(); Securities[_tradingAsset].DataFilter = new ExchangeDataFilter(); } public void OnData(Ticks data) { if (!data.ContainsKey(_indicatorAsset)) return; List<Tick> indicatorTickList = data[_indicatorAsset]; Tick firstTick = indicatorTickList.First(); if (!Portfolio[_tradingAsset].HoldStock && indicatorTickList.Count() > 100) { SetHoldings(_tradingAsset, 1); lastTradeTime = firstTick.Time; } if (Portfolio[_tradingAsset].HoldStock && firstTick.Time - lastTradeTime > new TimeSpan(1, 0, 0)) { Liquidate(_tradingAsset); } } } public class ExchangeDataFilter : ISecurityDataFilter { public bool Filter(Security asset, BaseData data) { var tick = data as Tick; if (tick != null) { if (tick.Exchange == "P") { return true; } } return false; } } }