| Overall Statistics |
|
Total Orders 87 Average Win 2.12% Average Loss -2.69% Compounding Annual Return -22.361% Drawdown 40.000% Expectancy -0.149 Start Equity 100000 End Equity 88146.14 Net Profit -11.854% Sharpe Ratio 0.03 Sortino Ratio 0.035 Probabilistic Sharpe Ratio 20.635% Loss Rate 52% Win Rate 48% Profit-Loss Ratio 0.79 Alpha -0.216 Beta 1.011 Annual Standard Deviation 0.646 Annual Variance 0.417 Information Ratio -0.336 Tracking Error 0.636 Treynor Ratio 0.019 Total Fees $153.54 Estimated Strategy Capacity $85000000.00 Lowest Capacity Asset TSLA UNU3P8Y3WFAD Portfolio Turnover 15.96% |
from AlgorithmImports import *
from QuantConnect.DataSource import *
class USEquityCoarseUniverseConstituentsDataAlgorithm(QCAlgorithm):
_number_of_symbols = 3
_changes = None
def initialize(self) -> None:
self.set_start_date(2021, 1, 1)
self.set_end_date(2021, 7, 1)
self.set_cash(100000)
# Set Asynchronous to True to improve speed performance
self.universe_settings.asynchronous = True
# Requesting data
self.add_universe(self.fundamental_selection_function)
def fundamental_selection_function(self, fundamental: List[Fundamental]) -> List[Symbol]:
sortedByDollarVolume = sorted(fundamental, key=lambda x: x.dollar_volume, reverse=True)
return [ x.symbol for x in sortedByDollarVolume[:self._number_of_symbols] ]
def on_data(self, slice: Slice) -> None:
# if we have no changes, do nothing
if self._changes is None: return
# liquidate removed securities
for security in self._changes.removed_securities:
if security.invested:
self.liquidate(security.symbol)
# we want 1/N allocation in each security in our universe
for security in self._changes.added_securities:
self.set_holdings(security.symbol, 1 / self._number_of_symbols)
self._changes = None
def on_securities_changed(self, changes: SecurityChanges) -> None:
self._changes = changes
for security in changes.added_securities:
# Historical data
history = self.history(security.symbol, 7, Resolution.DAILY)
self.debug(f"We got {len(history)} from our history request for {security.symbol}")