Back

Using option greeks to select option contracts to trade

Hi,
I've read that the recommended method for option selection is to use option chain provider to only add contracts
that are needed instead of using the universe option filter, as this will be about 10-15x faster.

But it seems that it's not possible to use the greeks to filter selection, unless already subscribed to the option chain, which means OptionChainProvider can't be used - Is this correct?

Alternatively is it possible to remove an option chain from subscription once a specific contract has been selected using the greeks, and then only add the specific contract?

Any info appreciated.
Thanks.

Update Backtest








Hi Ernest,

Here is my attempt to use Greeks with OptionChainProvider(). You could add the contract using symbol object first and get the Greeks value by calling the Greeks property of the OptionContract. I'm not sure how to use Greeks to select contracts, so I just Log the Greek value.

0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Hi Jing,
I appreciate your reply, but this method still has to subscribe to each optionContract to set a pricing model before being able to determine the greek values, so it looks like there's no other way to do this.

Also isn't a warmup period required of at least 2 days for the pricing models?

Although would this method be more efficient than the typical method of subscribing to the complete option chain and using universe SetFilter as the coarse filter, followed by the OnData slice extraction of the OptionChain and fine filter using the greek attributes?

For live trading, doesn't the broker feed for an options chain already contain the greek attributes, or is it still necessary to set a pricing model on an optionContract to calculate the greeks?

Ideally the OptionChainProvider would provide the greeks as member attributes to support selection using the greeks before having to subscribe to an optionContract.

Thanks,
Ern.

0

Hi Jing,

I've also found that the Greeks are not calculated correctly using this method. I logged Delta and Vega and Delta is always zero while Vega is sometimes non-zero.

In addition there doesn't seem to be a way to reduce the subscribed range of options contracts to say just the selected contract. There's no method to remove an option contract from subscription.

Thanks,
Ern.

0


Hi Ernest,

I also find this is not efficient. Subscribing to an optionContract will request the price data required to perform the Greeks calculation so it's not feasible to get the Greeks value first before adding the contract and set the pricing model. 

I agree WarmUp period is required for some pricing models to calculate the Greeks correctly.

If you are going to use Greeks or Implied Volatility in option algorithm, I suppose the combination of AddOption() and SetFilter() methods is more accurate and efficient. 

In live trading, the broker doesn't contain the greek attributes so the calculation is necessary for algorithms to get the Greeks value.

0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Jing - thankyou for the clarification.

0

Has the Greeks property been ommitted from the API documentation? Didn't find it under OptionContract...

0

Below an example of a delta-hedged straddle on the SPY (it is not polished, but it may be useful for some).

In a nutshell: 

  • sell 1-month At-The-Money call and put options on the SPY, 
  • delta-hedge once a day (if delta above a threshold), 
  • close other option in case one is assigned (or both on their last trading day),
  • Repeat.
1


Update Backtest





0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Loading...

This discussion is closed