示例#1
0
def initialize_table_security_status() -> None:
    """
    Initialize the data table <security_status>.
    :return:
    """
    instance = SecurityStatus
    duplicated_check_fields = ['status']
    logger.debug('Initialize table <{table_name}>.'.format(
        table_name=instance.__tablename__))

    item_list = [
        {
            'status': '未知'
        },
        {
            'status': '股票-上市'
        },
        {
            'status': '股票-终止上市'
        },
        {
            'status': '股票-暂停上市'
        },
        {
            'status': '股票-停牌'
        },
    ]

    _initialize_from_value_list(instance, item_list, duplicated_check_fields)
示例#2
0
def initialize_table_currency() -> None:
    """
    Initialize the data table <currency>.
    :return:
    """
    instance = Currency
    duplicated_check_fields = [
        'name_zh',
        'name_en',
        'abbr',
    ]
    logger.debug('Initialize table <{table_name}>.'.format(
        table_name=Currency.__tablename__))

    item_list = [
        {
            'name_zh': '未知货币',
            'name_en': 'Unknown Currency',
            'abbr': '---'
        },
        {
            'name_zh': '人民币',
            'name_en': 'Renminbi',
            'abbr': 'CNY'
        },
        {
            'name_zh': '美元',
            'name_en': 'U.S.Dollar',
            'abbr': 'USD'
        },
        {
            'name_zh': '日圆',
            'name_en': 'Japanese Yen',
            'abbr': 'JPY'
        },
        {
            'name_zh': '澳大利亚元',
            'name_en': 'Australian Dollar',
            'abbr': 'AUD'
        },
        {
            'name_zh': '欧元',
            'name_en': 'Euro',
            'abbr': 'EUR'
        },
        {
            'name_zh': '英镑',
            'name_en': 'Pound',
            'abbr': 'GBP'
        },
        {
            'name_zh': '港币',
            'name_en': 'Hong Kong Dollars',
            'abbr': 'HKD'
        },
    ]

    _initialize_from_value_list(instance, item_list, duplicated_check_fields)
示例#3
0
def initialize_table_industry_csic() -> None:
    """
    Initialize the data table <industry_csic> (中证指数公司行业分类).
    :return:
    """
    instance = IndustryCSIC
    duplicated_check_fields = ['code', 'name_zh', 'name_en']
    csv_file = 'industry_csic.csv'
    logger.debug('Initialize table <{table_name}>.'.format(
        table_name=instance.__tablename__))

    with open(os.path.join(os.path.dirname(os.path.abspath(__file__)),
                           csv_file),
              'r',
              encoding='utf-8') as data:
        item_list = csv.DictReader(data)
        _initialize_from_value_list(instance, list(item_list),
                                    duplicated_check_fields)
示例#4
0
def initialize_table_board() -> None:
    """
    Initialize the data table <board>.
    :return: None.
    """
    instance = Board
    duplicated_check_fields = [
        'name',
    ]
    logger.debug('Initialize table <{table_name}>.'.format(
        table_name=instance.__tablename__))

    item_list = [
        {
            'name': '未知',
            'opening_date': None,
            'exchange': 'Unknown',
            'currency': '---',
        },
        {
            'name': '主板',
            'opening_date': datetime.date(1990, 12, 19),
            'exchange': 'SSE',
            'currency': 'CNY',
        },
        {
            'name': '主板',
            'opening_date': datetime.date(1991, 7, 3),
            'exchange': 'SZSE',
            'currency': 'CNY',
        },
        {
            'name': 'B股',
            'opening_date': datetime.date(1992, 2, 21),
            'exchange': 'SSE',
            'currency': 'USD',
        },
        {
            'name': 'B股',
            'opening_date': datetime.date(1991, 10, 31),
            'exchange': 'SZSE',
            'currency': 'USD',
        },
        {
            'name': '中小板',
            'opening_date': datetime.date(2004, 6, 25),
            'exchange': 'SZSE',
            'currency': 'CNY',
        },
        {
            'name': '创业板',
            'opening_date': datetime.date(2009, 10, 23),
            'exchange': 'SZSE',
            'currency': 'CNY',
        },
        {
            'name': '科创板',
            'opening_date': datetime.date(2019, 7, 22),
            'exchange': 'SSE',
            'currency': 'CNY',
        },
    ]

    existed_list = db_session.query(Board.name).all()
    for item in item_list:
        if (item['name'], ) not in existed_list:
            db_session.add(
                Board(name=item['name'],
                      opening_date=item['opening_date'],
                      exchange_id=db_session.query(Exchange).filter(
                          Exchange.abbr_en == item['exchange']).first().id,
                      currency_id=db_session.query(Currency).filter(
                          Currency.abbr == item['currency']).first().id))
    db_session.commit()
示例#5
0
def initialize_table_exchange() -> None:
    """
    Initialize the data table  <exchange>.
    :return: None.
    """
    instance = Exchange
    duplicated_check_fields = [
        'name_zh',
        'name_en',
        'abbr_zh',
        'abbr_en',
        'url',
        'google_prefix',
    ]
    logger.debug('Initialize table <{table_name}>.'.format(
        table_name=instance.__tablename__))

    item_list = [
        # 为 T000018.sh 专门留的。
        {
            'name_zh': '未知',
            'name_en': 'Unknown',
            'abbr_zh': '未知',
            'abbr_en': 'Unknown',
            'url': '',
            'google_prefix': '',
            'location': '',
            'timezone': 0,
        },
        {
            'name_zh': '上海证券交易所',
            'name_en': 'Shanghai Stock Exchange',
            'abbr_zh': '上交所',
            'abbr_en': 'SSE',
            'url': 'http://www.sse.com.cn/',
            'google_prefix': 'SHA',
            'location': '中国,上海',
            'timezone': 480,
        },
        {
            'name_zh': '深圳证券交易所',
            'name_en': 'Shenzhen Stock Exchange',
            'abbr_zh': '深交所',
            'abbr_en': 'SZSE',
            'url': 'http://www.szse.cn/',
            'google_prefix': 'SHE',
            'location': '中国,深圳',
            'timezone': 480,
        },
        {
            'name_zh': '香港交易及结算所有限公司',
            'name_en': 'Hong Kong Exchanges and Clearing Limited',
            'abbr_zh': '港交所',
            'abbr_en': 'HKEX',
            'url': 'https://www.hkex.com.hk/',
            'google_prefix': 'HKEX',
            'location': '中国,香港',
            'timezone': 480,
        },
        {
            'name_zh': '纽约证券交易所',
            'name_en': 'New York Stock Exchange',
            'abbr_zh': '纽交所',
            'abbr_en': 'NYSE',
            'url': 'https://www.nyse.com/',
            'google_prefix': 'NYSE',
            'location': '美国,纽约',
            'timezone': -300,
            # 交易时间(北京时间):
            # 夏令时间 21:30 - (次日)03:30
            # 冬令时间 22:30 - (次日)04:30
        },
        {
            'name_zh': '全美证券交易商协会自动报价系统',
            'name_en':
            'National Association of Securities Dealers Automated Quotations',
            'abbr_zh': '纳斯达克',
            'abbr_en': 'NASDAQ',
            'url': 'https://www.nasdaq.com/',
            'google_prefix': 'NASDAQ',
            'location': '美国,纽约',
            'timezone': -300,
        },
        {
            'name_zh': '伦敦证券交易所',
            'name_en': 'London Stock Exchange',
            'abbr_zh': '伦敦证交所',
            'abbr_en': 'LSE',
            'url': 'http://www.londonstockexchange.com/',
            'google_prefix': 'LON',
            'location': '英国,伦敦',
            'timezone': 0,
        },
        {
            'name_zh': '东京证券交易所',
            'name_en': 'Tokyo Stock Exchange',
            'abbr_zh': '东证',
            'abbr_en': 'TSE',
            'url': 'http://www.jpx.co.jp/',
            'google_prefix': 'TYO',
            'location': '日本,东京',
            'timezone': 540,
        },
        {
            'name_zh': '新加坡交易所',
            'name_en': 'Singapore Exchange Limited',
            'abbr_zh': '新交所',
            'abbr_en': 'SGX',
            'url': 'http://www.sgx.com/',
            'google_prefix': 'SGX',
            'location': '新加坡',
            'timezone': 480,
        },
    ]

    _initialize_from_value_list(instance, item_list, duplicated_check_fields)
示例#6
0
def initialize_table_location() -> None:
    """
    Initialize the data table <location>.
    :return:
    """
    instance = Location
    duplicated_check_fields = [
        'code',
        'name',
    ]
    logger.debug('Initialize table <{table_name}>.'.format(
        table_name=instance.__tablename__))

    item_list = [
        {
            'code': '000000',
            'name': '未知'
        },
        {
            'code': '110000',
            'name': '北京'
        },
        {
            'code': '120000',
            'name': '天津'
        },
        {
            'code': '130000',
            'name': '河北'
        },
        {
            'code': '140000',
            'name': '山西'
        },
        {
            'code': '150000',
            'name': '内蒙古'
        },
        {
            'code': '210000',
            'name': '辽宁'
        },
        {
            'code': '220000',
            'name': '吉林'
        },
        {
            'code': '230000',
            'name': '黑龙江'
        },
        {
            'code': '310000',
            'name': '上海'
        },
        {
            'code': '320000',
            'name': '江苏'
        },
        {
            'code': '330000',
            'name': '浙江'
        },
        {
            'code': '340000',
            'name': '安徽'
        },
        {
            'code': '350000',
            'name': '福建'
        },
        {
            'code': '360000',
            'name': '江西'
        },
        {
            'code': '370000',
            'name': '山东'
        },
        {
            'code': '410000',
            'name': '河南'
        },
        {
            'code': '420000',
            'name': '湖北'
        },
        {
            'code': '430000',
            'name': '湖南'
        },
        {
            'code': '440000',
            'name': '广东'
        },
        {
            'code': '450000',
            'name': '广西'
        },
        {
            'code': '460000',
            'name': '海南'
        },
        {
            'code': '500000',
            'name': '重庆'
        },
        {
            'code': '510000',
            'name': '四川'
        },
        {
            'code': '520000',
            'name': '贵州'
        },
        {
            'code': '530000',
            'name': '云南'
        },
        {
            'code': '540000',
            'name': '西藏'
        },
        {
            'code': '610000',
            'name': '陕西'
        },
        {
            'code': '620000',
            'name': '甘肃'
        },
        {
            'code': '630000',
            'name': '青海'
        },
        {
            'code': '640000',
            'name': '宁夏'
        },
        {
            'code': '650000',
            'name': '新疆'
        },
        {
            'code': '710000',
            'name': '台湾'
        },
        {
            'code': '810000',
            'name': '香港'
        },
        {
            'code': '820000',
            'name': '澳门'
        },
    ]

    _initialize_from_value_list(instance, item_list, duplicated_check_fields)