| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 355.030% Drawdown 47.700% Expectancy 0 Net Profit 0% Sharpe Ratio 1.586 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 2.635 Beta -6.693 Annual Standard Deviation 1.303 Annual Variance 1.697 Information Ratio 1.45 Tracking Error 1.367 Treynor Ratio -0.309 Total Fees $1.00 |
namespace QuantConnect
{
public partial class CoveredCallAlgorithm : QCAlgorithm
{
Symbol _optionSymbol;
// Manual add symbols required in your initialize method:
public override void Initialize() {
SetStartDate(2014, 3, 1);
SetEndDate(2014, 5, 1);
var option = AddOption("GOOG", Resolution.Minute);
_optionSymbol = option.Symbol;
// set our strike/expiry filter for this option chain
option.SetFilter(-2, +2, TimeSpan.Zero, TimeSpan.FromDays(10));
}
// v3.0 Technique: Access data via grouped time slice method handlers:
public override void OnData(Slice slice)
{
OptionChain chain;
if (!Portfolio.HoldStock && slice.OptionChains.TryGetValue(_optionSymbol, out chain))
{
// find the second call strike under market price expiring today
var contract = (
from optionContract in chain.OrderByDescending(x => x.Strike)
select optionContract
).Skip(2).FirstOrDefault();
if (contract != null)
{
var quantity = CalculateOrderQuantity(contract.Symbol, -1m);
MarketOrder(contract.Symbol, quantity);
MarketOnCloseOrder(contract.Symbol, -quantity);
}
else
{
Log("no contract");
}
}
else
{
Log("no chain available");
}
}
}
}