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
Probabilistic 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
Estimated Strategy Capacity
$0
Lowest Capacity Asset
#region imports
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Globalization;
using System.Drawing;
using QuantConnect;
using QuantConnect.Algorithm.Framework;
using QuantConnect.Algorithm.Framework.Selection;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Risk;
using QuantConnect.Parameters;
using QuantConnect.Benchmarks;
using QuantConnect.Brokerages;
using QuantConnect.Util;
using QuantConnect.Interfaces;
using QuantConnect.Algorithm;
using QuantConnect.Indicators;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Custom;
using QuantConnect.DataSource;
using QuantConnect.Data.Fundamental;
using QuantConnect.Data.Market;
using QuantConnect.Data.UniverseSelection;
using QuantConnect.Notifications;
using QuantConnect.Orders;
using QuantConnect.Orders.Fees;
using QuantConnect.Orders.Fills;
using QuantConnect.Orders.Slippage;
using QuantConnect.Scheduling;
using QuantConnect.Securities;
using QuantConnect.Securities.Equity;
using QuantConnect.Securities.Future;
using QuantConnect.Securities.Option;
using QuantConnect.Securities.Forex;
using QuantConnect.Securities.Crypto;
using QuantConnect.Securities.Interfaces;
using QuantConnect.Storage;
using QuantConnect.Data.Custom.AlphaStreams;
using QCAlgorithmFramework = QuantConnect.Algorithm.QCAlgorithm;
using QCAlgorithmFrameworkBridge = QuantConnect.Algorithm.QCAlgorithm;
using System.Text.RegularExpressions;
using CoinAPI.WebSocket.V1.DataModels;
#endregion
namespace QuantConnect.Algorithm.CSharp
{
    public class JumpingFluorescentOrangeTapir : QCAlgorithm
    {
        private decimal TradeAmount;
        private static decimal StartingAum = 100000;
        private DateTime anchorDate = new DateTime(2022, 1, 1);

        public override void Initialize()
        {
            SetStartDate(anchorDate);  //Set Start Date
            SetEndDate(2022, 1, 1);
            SetCash(StartingAum);
            Portfolio.MarginCallModel = MarginCallModel.Null;
             SetBenchmark(SecurityType.Equity, "SPY");          
            UniverseSettings.Resolution = Resolution.Second;
            UniverseSettings.Leverage = 5;
            UniverseSettings.DataNormalizationMode = DataNormalizationMode.Raw;


            // AddUniverseSelection(new ScheduledUniverseSelectionModel(
            //    DateRules.MonthStart(),
            //    TimeRules.Midnight,
            //    SelectSymbols // selection function in algorithm.
            //    ));

            AddUniverseSelection(new FineFundamentalUniverseSelectionModel(SelectCoarse, SelectFine));
            SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage);

        }

        private IEnumerable<Symbol> SelectCoarse(IEnumerable<CoarseFundamental> coarse)
        {
            // Return most liquid assets w/ fundamentals

            return coarse.Where(c => c.HasFundamentalData)
                 .OrderByDescending(c => c.DollarVolume)
                 .Take(15)
                 .Select(c => c.Symbol);

        }
        private IEnumerable<Symbol> SelectFine(IEnumerable<FineFundamental> fine)
        {
            Debug($"Time of selection {Time}");

            var tickers = fine.Where(c => c.Price >= 5).Select(f => f.Symbol);

            var history = History(
               symbols: tickers,
               start: Time - TimeSpan.FromDays(370),
               end: Time,
               resolution: Resolution.Daily,
               fillForward: false,
               extendedMarket: false,
               dataNormalizationMode: DataNormalizationMode.Raw
               );

            foreach (var ticker in tickers)
            {
                Debug(ticker.Value);

                foreach (var slice in history)
                {
                    if (slice.Splits.ContainsKey(ticker))
                    {
                        Debug($"{ticker.Value} Split Factor: {slice.Splits[ticker].SplitFactor}");

                    }
                }
            }


            return tickers;

        }
       

    }
}