依股票代碼分辨為何類商品

摘要:依股票代碼分辨為何類商品

 


        private static int iFindStkKind(string _sStockID)
        {
            if (string.IsNullOrEmpty(_sStockID))
                return 0;
            _sStockID = _sStockID.ToUpper();
            switch (_sStockID.Length)
            {
                case 4://上市,上櫃,興櫃,受益憑證,存託憑證及ETF等衍生性金融商品
                    if (_sStockID[0] == '0' && _sStockID[1] == '0')//00##
                        return 5;
                    else //####
                        return 1;
                case 5://轉換公司債,股款繳納憑證、新股權利證書及可轉換公司債換股權利證書,認購權證
                    switch (_sStockID[4])
                    {
                        case 'L'://股款繳納憑證、新股權利證書及可轉換公司債換股權利證書 ####(L~Z)
                        case 'M':
                        case 'N':
                        case 'O':
                        case 'P':
                        case 'Q':
                        case 'R':
                        case 'S':
                        case 'T':
                        case 'U':
                        case 'V':
                        case 'W':
                        case 'X':
                        case 'Y':
                        case 'Z':
                            return 1;
                        case 'A'://特別股 ####(A~E)
                        case 'B':
                        case 'C':
                        case 'D':
                        case 'E':
                            return 1;
                        case 'G'://附認股權有價證券 ####G
                            return 1;
                        case '0'://轉換公司債,認購權證
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                            switch (_sStockID[0])
                            {
                                case '0'://上市權證 0#### 
                                case '7'://上櫃權證 7####
                                    return 2;
                                default://轉換公司債 #####
                                    return 3;
                            }
                    }
                    break;
                case 6://
                    {
                        switch (_sStockID[0])
                        {
                            case '9'://TDR
                                return 1;
                            case '0':
                            case '1':
                            case '2':
                            case '3':
                            case '4':
                            case '5':
                            case '6':
                            case '7':
                            case '8':
                                switch (_sStockID[4])
                                {
                                    case 'F'://附認股權公司債履約後之公司債 ####F#
                                        return 3;
                                    case 'G'://附認股權特別股,附認股權公司債,附認股權股款繳納憑證
                                        switch (_sStockID[5])
                                        {
                                            case 'A'://附認股權特別股 ####G(A~C)
                                            case 'B':
                                            case 'C':
                                                return 1;
                                            case 'D'://附認股權公司債 ####G(D~L)
                                            case 'E':
                                            case 'F':
                                            case 'G':
                                            case 'H':
                                            case 'I':
                                            case 'J':
                                            case 'K':
                                            case 'L':
                                                return 3;
                                            case 'X'://附認股權股款繳納憑證 ####G(X~Z)
                                            case 'Y':
                                            case 'Z':
                                                return 1;
                                        }
                                        break;
                                    case '0':
                                    case '1':
                                    case '2':
                                    case '3':
                                    case '4':
                                    case '5':
                                    case '6':
                                    case '7':
                                    case '8':
                                    case '9':
                                        {
                                            switch (_sStockID[5])
                                            {
                                                case '0'://交換公司債 ###### 
                                                case '1':
                                                case '2':
                                                case '3':
                                                case '4':
                                                case '5':
                                                case '6':
                                                case '7':
                                                case '8':
                                                case '9':
                                                    //新認購權證 ## ####(99/5/17)
                                                    if (_sStockID[0] == '0' || _sStockID[0] == '7')
                                                        return 2;
                                                    else
                                                        return 3;
                                                case 'P'://認售權證,不動產資產信託之受益證券 #####P
                                                case 'F'://以外國證券或指數為標的之認購權證
                                                    return 2;
                                                case 'T'://不動產投資信託之受益證券 #####T
                                                case 'S'://金融資產證券化之受益證券及資產基礎證券 #####S
                                                    return 5;
                                            }
                                        }
                                        break;
                                    default:
                                        break;
                                }
                                break;
                            case 'B'://公司債
                            case 'A'://中央政府公債
                            case 'C'://台北市政府公債
                            case 'D'://高雄市政府公債
                            case 'P'://分割本金公債
                            case 'I'://分割利息公債
                                return 4;
                            case 'F'://外國債券
                            case 'E'://外幣計價債券
                                return 4;
                        }
                    }
                    break;
                default://當作股票的
                    return 1;
            }
            return 0;
        }