| 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 -5.95 Tracking Error 0.134 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect.Algorithm.CSharp
{
/// <summary>
/// Test dynamic adjustment to the option universe to try to improve options algo backtest performance
/// Test the following sequence:
/// 1. Add option universe using underlying symbol
/// 2. Set universe filter to required strike range and expiration
/// 3. Select option from the Slice OptionChain (eg. by Expiration, Delta)
/// 4. Reduce the option universe using SetFilter to the minimum subscribed set
/// 5. Add the selected option to the subscription
/// 6. For next trade:
/// 7. Close the current option position and unsubscribe the selected option
/// 8. Repeat process from step 2
///
/// This sequence shows an issue that the minimised option universe filter is only applied after the
/// monthly options expiration has occurred, instead of being applied immediately from the next Slice.
///
/// </summary>
public class OptionUniverseTestAlgorithm : QCAlgorithm
{
Symbol spy;
public override void Initialize()
{
SetStartDate(2020, 6, 15);
spy = AddEquity("SPY", Resolution.Daily).Symbol;
var fiveDayConsolidator = new TradeBarConsolidator(5);
fiveDayConsolidator.DataConsolidated += FiveBarHandler;
SubscriptionManager.AddConsolidator("SPY", fiveDayConsolidator);
}
private void FiveBarHandler(object sender, TradeBar bar) {
Debug((bar.EndTime - bar.Time).ToString() + " " + bar.ToString());
}
}
}