| Overall Statistics |
|
Total Trades 93 Average Win 0% Average Loss 0% Compounding Annual Return 6.605% Drawdown 56.500% Expectancy 0 Net Profit 333.517% Sharpe Ratio 0.359 Probabilistic Sharpe Ratio 0.009% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 1.027 Annual Standard Deviation 0.167 Annual Variance 0.028 Information Ratio 0.33 Tracking Error 0.005 Treynor Ratio 0.058 Total Fees $95.40 Estimated Strategy Capacity $630000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X |
#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;
#endregion
namespace QuantConnect.Algorithm.CSharp
{
public class PensiveYellowWolf : QCAlgorithm
{
string sym = "SPY";
DateTime anchorDate = new DateTime(2000,1,1);
decimal StartingAum = 100000;
decimal Dividends =0;
public override void Initialize()
{
SetStartDate(anchorDate);
SetEndDate(2022, 11, 30);
SetCash(StartingAum);
SetBenchmark("SPY");
anchorDate = anchorDate.AddYears(1);
var equity = AddEquity(sym, Resolution.Daily);
equity.SetDataNormalizationMode(DataNormalizationMode.SplitAdjusted);
}
public void OnData(Dividends div)
{
if(div.ContainsKey(sym))
{
var t = div[sym];
Debug($"{t.EndTime} {t.DataType} {t.Distribution} {t.Value}");
Dividends = t.Distribution;
}
}
public void OnData(TradeBars data)
{
//reinvest dividends
if(Dividends>0){
var receivedAmount = Dividends * Portfolio[sym].Quantity;
var shares = Math.Ceiling(receivedAmount/ data[sym].Close);
Dividends = 0;
MarketOrder(sym,shares);
}
if(!Portfolio[sym].Invested)
{
SetHoldings(sym,1);
}
}
}
}