/// <summary> /// Provides a convenience method for creating an option Symbol. /// </summary> /// <param name="underlying">The underlying ticker</param> /// <param name="market">The market the underlying resides in</param> /// <param name="style">The option style (American, European, ect..)</param> /// <param name="right">The option right (Put/Call)</param> /// <param name="strike">The option strike price</param> /// <param name="expiry">The option expiry date</param> /// <param name="alias">An alias to be used for the symbol cache. Required when /// adding the same security from diferent markets</param> /// <returns>A new Symbol object for the specified option contract</returns> public static Symbol CreateOption(string underlying, string market, OptionStyle style, OptionRight right, decimal strike, DateTime expiry, string alias = null) { var sid = SecurityIdentifier.GenerateOption(expiry, underlying, market, strike, right, style); alias = alias ?? string.Format("{0}_{1}_{2}_{3}", underlying, right.ToString()[0], strike.SmartRounding(), expiry.ToString("yyyyMMdd")); return(new Symbol(sid, alias)); }
/// <summary> /// Returns option symbol ticker in accordance with OSI symbology /// More information can be found at http://www.optionsclearing.com/components/docs/initiatives/symbology/symbology_initiative_v1_8.pdf /// </summary> /// <param name="underlying">Underlying string</param> /// <param name="right">Option right</param> /// <param name="strikePrice">Option strike</param> /// <param name="expiration">Option expiration date</param> /// <returns></returns> public static string GenerateOptionTickerOSI(string underlying, OptionRight right, decimal strikePrice, DateTime expiration) { if (underlying.Length > 5) { underlying += " "; } return(string.Format("{0,-6}{1}{2}{3:00000000}", underlying, expiration.ToString(DateFormat.SixCharacter), right.ToString()[0], strikePrice * 1000m)); }
/// <summary> /// Returns option symbol ticker in accordance with OSI symbology /// More information can be found at http://www.optionsclearing.com/components/docs/initiatives/symbology/symbology_initiative_v1_8.pdf /// </summary> /// <param name="underlying">Underlying string</param> /// <param name="right">Option right</param> /// <param name="strikePrice">Option strike</param> /// <param name="expiration">Option expiration date</param> /// <returns>The OSI ticker representation</returns> public static string GenerateOptionTickerOSI(string underlying, OptionRight right, decimal strikePrice, DateTime expiration) { if (underlying.Length > 5) { underlying += " "; } return(Invariant($"{underlying,-6}{expiration.ToStringInvariant(DateFormat.SixCharacter)}{right.ToString()[0]}{(strikePrice * 1000m):00000000}")); }