Overall Statistics |
Total Trades 570450 Average Win 0.02% Average Loss -0.01% Compounding Annual Return -87.105% Drawdown 46.700% Expectancy -0.013 Net Profit -36.297% Sharpe Ratio 1.954 Loss Rate 82% Win Rate 18% Profit-Loss Ratio 4.39 Alpha 0.018 Beta 0.001 Annual Standard Deviation 0.009 Annual Variance 0 Information Ratio -0.47 Tracking Error 0.173 Treynor Ratio 16.402 Total Fees $0.00 |
namespace QuantConnect { public class LongShortUniverseAlgorithm : QCAlgorithm { private Symbol _longUniverse = QuantConnect.Symbol.Create("LONG", SecurityType.Equity, Market.USA); private Symbol _shortUniverse = QuantConnect.Symbol.Create("SHORT", SecurityType.Equity, Market.USA); public override void Initialize() { SetStartDate(2016, 1, 1); //Set Start Date SetEndDate(2016, 8, 30); //Set End Date SetCash(100000); //Set Strategy Cash // Find more symbols here: http://quantconnect.com/data AddUniverse(new FuncUniverse(GetConfig(_longUniverse), UniverseSettings, SecurityInitializer, selectionData => ( from c in selectionData.OfType<CoarseFundamental>() where c.Price < 10 orderby c.DollarVolume descending select c.Symbol).Take(3) )); AddUniverse(new FuncUniverse(GetConfig(_shortUniverse), UniverseSettings, SecurityInitializer, selectionData => ( from c in selectionData.OfType<CoarseFundamental>() where c.Price > 10 orderby c.DollarVolume descending select c.Symbol).Take(3) )); } public override void OnData(Slice data) { var universeLongMembers = UniverseManager[_longUniverse].Members; var universeShortMembers = UniverseManager[_shortUniverse].Members; foreach (var longMember in universeLongMembers.Values) { SetHoldings(longMember.Symbol, 0.1m); } foreach (var shortMember in universeLongMembers.Values) { SetHoldings(shortMember.Symbol, -0.1m); } } public override void OnSecuritiesChanged(SecurityChanges changes) { foreach (var added in changes.AddedSecurities) { added.FeeModel = new ConstantFeeModel(0m); } foreach (var removed in changes.RemovedSecurities) { Liquidate(removed.Symbol); } } private SubscriptionDataConfig GetConfig(Symbol symbol) { return new SubscriptionDataConfig(typeof(CoarseFundamental), symbol, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, true); } } }