Exemplo n.º 1
0
        internal static string ToString(OptionSymbol s)
        {
            int    year  = (s.ExpirationDate.Year - 2010) % 10;
            string month = ToMonth(s.ExpirationDate.Month, s.OptionType);
            string day   = ToDay(s.ExpirationDate.Day);

            string fractionsPart = "";
            var    fractions     = s.StrikePrice - Math.Truncate(s.StrikePrice);

            if (fractions > 0m)
            {
                fractionsPart = fractions.ToString(CultureInfo.InvariantCulture);
                fractionsPart = fractionsPart.Substring(1, fractionsPart.Length - 1).Replace(".", "");
            }

            string truncatedPart = "";
            var    truncated     = Math.Truncate(s.StrikePrice);

            truncatedPart = truncated.ToString(CultureInfo.InvariantCulture);

            string strike = "";

            if (truncatedPart.Length <= 3 && fractionsPart.Length <= 3)
            {
                strike = "C" + truncatedPart.PadLeft(3, '0') + fractionsPart.PadRight(3, '0');
            }
            else if (truncatedPart.Length == 4 && fractionsPart.Length <= 2)
            {
                strike = "B" + truncatedPart + fractionsPart.PadRight(2, '0');
            }
            else if (truncatedPart.Length == 5 && fractionsPart.Length <= 1)
            {
                strike = "A" + truncatedPart + fractionsPart.PadRight(1, '0');
            }
            else if (truncatedPart.Length == 6)
            {
                strike = "0" + truncatedPart;
            }
            else if (truncatedPart.Length == 2 && fractionsPart.Length == 4)
            {
                strike = "D" + truncatedPart.PadLeft(2, '0') + fractionsPart;
            }
            else if (truncatedPart.Length == 1 && fractionsPart.Length == 5)
            {
                strike = "E" + truncatedPart.PadLeft(1, '0') + fractionsPart;
            }
            else
            {
                // invalid
                strike = truncatedPart + fractionsPart;
            }


            return(s.IsValid ? string.Format("{0}{1}{2}{3}{4}", s.Series, year, month, day, strike) : "");
        }
Exemplo n.º 2
0
 public static string ToString(OptionSymbol s)
 {
     return(s.IsValid ? string.Format("{0,-6}{1:yyMMdd}{2}{3:00000.}{4:000.}", s.Series, s.ExpirationDate, s.OptionType == OptionType.Call ? "C" : "P", Math.Truncate(s.StrikePrice), (s.StrikePrice % 1) * 1000) : "");
 }