Пример #1
0
def create_all_exchange_stocks():
    """ Creates all exchange stocks """
    logger.info('Adding all exchange stocks...')
    create_nasdaq_stocks()
    create_nyse_stocks()
    create_lse_stocks()
    logger.info('Added all exchange stocks')
Пример #2
0
def create_stock(industry, structure):
    stock = Stock(stock_code='7UP',
                  name='7-UP BOTTLING COMPANY PLS',
                  exchange_code='C',
                  asset_class_code='EG',
                  contact='SEVEN UP',
                  description=faker.text(max_nb_chars=20, ext_word_list=None),
                  tier_code='7UP',
                  par_value='0.5',
                  list_date=faker.date(),
                  outstanding_shares=234234234,
                  grp_code=faker.text(max_nb_chars=20, ext_word_list=None),
                  registrar=faker.text(max_nb_chars=20, ext_word_list=None),
                  address_1=faker.text(max_nb_chars=20, ext_word_list=None),
                  address_2=faker.text(max_nb_chars=20, ext_word_list=None),
                  address_3=faker.text(max_nb_chars=20, ext_word_list=None),
                  state_code=faker.text(max_nb_chars=20, ext_word_list=None),
                  website=faker.uri(),
                  email=faker.company_email(),
                  gsm=faker.text(100),
                  land_tel=faker.text(max_nb_chars=20, ext_word_list=None),
                  fax_no=faker.text(max_nb_chars=20, ext_word_list=None),
                  regis_close=faker.date(),
                  year_end=faker.text(max_nb_chars=20, ext_word_list=None),
                  logo=faker.text(max_nb_chars=20, ext_word_list=None),
                  shares_in_issue=faker.random_number(),
                  capitalization=faker.random_number(),
                  view_count=faker.random_number(),
                  industry=industry,
                  structure=structure,
                  is_active=faker.boolean())
    stock.save()
    logger.info("{} stock created.".format(stock))
    return stock
Пример #3
0
def create_structure(structure_type):
    structure = Structure(structure_name='AGRICULTURE',
                          structure_code=None,
                          structure_type=structure_type,
                          parent=None,
                          is_active=True,
                          comment=faker.sentence(15))
    structure.save()
    structure2 = Structure(structure_name='CONGLOMERATES',
                           structure_code=None,
                           structure_type=structure_type,
                           parent=None,
                           is_active=True,
                           comment=faker.sentence(15))
    structure2.save()
    structure3 = Structure(structure_name='CONSTRUCTION/REAL ESTATE',
                           structure_code=None,
                           structure_type=structure_type,
                           parent=None,
                           is_active=True,
                           comment=faker.sentence(15))
    structure3.save()
    structure4 = Structure(structure_name='CONSUMER GOODS',
                           structure_code=None,
                           structure_type=structure_type,
                           parent=None,
                           is_active=True,
                           comment=faker.sentence(15))
    structure4.save()
    structure = Structure(structure_name='Crop Production',
                          structure_code=None,
                          structure_type=structure_type,
                          parent=structure,
                          is_active=True,
                          comment=faker.sentence(15))
    structure.save()
    structure = Structure(structure_name='Diversified Industries',
                          structure_code=None,
                          structure_type=structure_type,
                          parent=structure2,
                          is_active=True,
                          comment=faker.sentence(15))
    structure.save()
    structure = Structure(structure_name='Real Estate Development',
                          structure_code=None,
                          structure_type=structure_type,
                          parent=structure3,
                          is_active=True,
                          comment=faker.sentence(15))
    structure.save()
    structure = Structure(structure_name='Beverages-Non Alcoholic',
                          structure_code=None,
                          structure_type=structure_type,
                          parent=structure4,
                          is_active=True,
                          comment=faker.sentence(15))
    structure.save()
    logger.info("{} structures created.".format(structure))
    return structure, structure2
Пример #4
0
def create_exchanges():
    """ Creates all exchanges """
    logger.info('Creating Exchanges...')
    NASDAQ().create_exchange()
    NYSE().create_exchange()
    LSE().create_exchange()
    SEHK().create_exchange()
    logger.info('Created Exchanges')
Пример #5
0
 def handle(self, *args, **options):
     logger.info('Running test')
     stock = yfinance.Ticker('AAPL')
     print('Info: {}'.format(stock.info))
     print('Calendar: {}'.format(stock.calendar))
     print('Recommendations: {}'.format(stock.recommendations))
     print('Actions {}'.format(stock.actions))
     print('Sustainability: {}'.format(stock.sustainability))
Пример #6
0
def create_stocks():
    """Creates the Stock objects"""
    logger.info('Creating Stocks and Stock Data...')
    logger.info('Adding NYSE Stocks...')
    NYSE().save_stocks()
    logger.info('Added NYSE Stocks')
    logger.info('Adding NASDAQ Stocks...')
    NASDAQ().save_stocks()
    logger.info('Added NASDAQ Stocks')
Пример #7
0
def create_industy():
    industry = Industry(name=faker.name(),
                        exchange_code=faker.text(max_nb_chars=10,
                                                 ext_word_list=None),
                        sync_flag=faker.boolean(chance_of_getting_true=50),
                        logo=faker.text(max_nb_chars=10, ext_word_list=None))
    industry.save()
    logger.info("{} industry created.".format(industry))
    return industry
Пример #8
0
    def handle(self, *args, **options):
        logger.info('Correcting Industry data...')
        industry = Industry.objects.get(pk=24)
        companies = Company.objects.filter(industry=industry)

        for company in companies:
            company.industry = Industry.objects.get(pk=1)
            company.save()

        industry.delete()
        logger.info('Finished changes.')
Пример #9
0
def create_data_type():
    """Creates the DataType objects"""
    logger.info('Creating Data Types..')

    data_codes = ['DAILY', 'INTRADAY']
    data_description = ['Data for a 24 period', 'Data for a 1 minute perioo']

    for code, description in zip(data_codes, data_description):
        DataType.objects.update_or_create(code=code, description=description)

        logger.info('{} DataType created'.format(DataType.code))
Пример #10
0
def clear_data():
    """Deletes all table data"""
    logger.info('Delete all Object instances')

    Position.objects.all().delete()
    FXPriceData.objects.all().delete()
    FX.objects.all().delete()
    StockPriceData.objects.all().delete()
    Stock.objects.all().delete()
    Exchange.objects.all().delete()
    Country.objects.all().delete()
    Currency.objects.all().delete()
    DataType.objects.all().delete()
    Instrument.objects.all().delete()
Пример #11
0
def create_structure_type():
    structure_type = StructureType(structure_type_name='SECTOR',
                                   description=faker.sentence(100),
                                   is_active=True,
                                   parent=None)
    structure_type.save()
    logger.info("{} structure type created.".format(structure_type))
    structure_type1 = StructureType(structure_type_name='NEWS SECTIONS',
                                    description=faker.sentence(100),
                                    is_active=True,
                                    parent=None)
    structure_type1.save()
    logger.info("{} structure type created.".format(structure_type1))
    return structure_type, structure_type1
Пример #12
0
def create_news(stock, section, section2):
    author = Author(
        image_file=get_image_file(),
        first_name=faker.first_name(),
        last_name=faker.last_name(),
        description=faker.sentence(nb_words=6,
                                   variable_nb_words=True,
                                   ext_word_list=None),
        twitter=faker.name(),
        facebook=faker.name(),
        linked_in=faker.name(),
        email=faker.name(),
    )
    news = News(
        title=faker.sentence(nb_words=6,
                             variable_nb_words=True,
                             ext_word_list=None),
        content=faker.paragraphs(nb=3, ext_word_list=None),
        news_date=faker.date(),
        entry_date=faker.date(),
        stock=stock,
        is_featured=faker.boolean(),
        has_downloadable=faker.boolean(),
        is_main=faker.boolean(),
        author=author,
    )
    news.save()
    create_news_images(news)
    create_news_section(news, section)
    create_news_section(news, section2)
    news1 = News(
        title=faker.sentence(nb_words=6,
                             variable_nb_words=True,
                             ext_word_list=None),
        content=faker.paragraphs(nb=3, ext_word_list=None),
        news_date=faker.date(),
        entry_date=faker.date(),
        stock=stock,
        is_featured=faker.boolean(),
        has_downloadable=faker.boolean(),
        is_main=faker.boolean(),
        author=author,
    )
    news1.save()
    create_news_images(news1)
    create_news_section(news1, section)
    create_news_section(news1, section2)
    logger.info("{} news created.".format(news1))
    return news
Пример #13
0
 def handle(self, *args, **options):
     logger.info('Seeding Stock price data...')
     for stock in Stock.objects.all():
         logger.info('Seeding {}...'.format(stock.ticker))
         service = StockDataService(ticker=stock.ticker, name=stock.name, exchange=stock.exchange)
         df_util.bulk_stock_price_data_to_model(service.get_stock_data())
         logger.info('Finished seeding {}...'.format(stock.ticker))
     logger.info('Finished seeding stock data.')
Пример #14
0
    def addJob(self, job):
        result = False
        try:
            _job = JobInstance(job)
            _job_id = 'ID-{0}:{1}:{2}'.format(job.id, job.code, job.title)
            print(_job_id)
            if job.type == 1:
                # 指定执行时间(仅执行一次)
                self.jobs.add_job(
                    'server:addjob',
                    'date',
                    args=[job.id],
                    id=_job_id,
                    run_date=job.start_date.strftime("%Y-%m-%d %H:%M:%S"))
            else:
                # 定时重复执行
                self.jobs.add_job(
                    'server:addjob',
                    'cron',
                    args=[job.id],
                    id=_job_id,
                    year=job.yr,
                    month=job.mo,
                    week=job.wk,
                    day=job.dy,
                    day_of_week=job.dy_of_week,
                    hour=job.hr,
                    minute=job.mi,
                    second=job.se,
                    start_date=job.start_date.strftime("%Y-%m-%d %H:%M:%S"),
                    end_date=job.end_date.strftime("%Y-%m-%d %H:%M:%S"))
            # 运行启动记录
            if (self.jobs.get_job(_job_id)):
                self.addCronjobStatus(job, action=1)
                logger.info('Add Cronjob {0}'.format(job.title))
                result = True
            else:
                self.addCronjobStatus(job, action=1, status=2)
                logger.error('Error Add Cronjob {0}: {1}'.format(
                    job.title, '启动失败'))

        except Exception as e:
            self.addCronjobStatus(job, action=1, status=2)
            logger.error('Error Add Cronjob {0}: {1}'.format(
                job.title, str(e)))

        return result
Пример #15
0
def create_country():
    """Creates the Country objects"""
    logger.info('Creating Countries..')

    country_codes = ['USA', 'UK', 'CN', 'CAN', 'GER']
    country_names = [
        'United States of America', 'United Kingdom', 'China', 'Canada',
        'Germany'
    ]
    country_currencies = ['USD', 'GBP', 'CNY', 'CAD', 'EUR']

    for code, name, currency_code in zip(country_codes, country_names,
                                         country_currencies):
        cur = Currency.objects.get(code=currency_code)
        Country.objects.update_or_create(code=code, name=name, currency=cur)

        logger.info('{} Country created'.format(Country.code))
Пример #16
0
def create_instrument():
    """Creates the needed Instrument objects"""
    logger.info('Creating Instruments...')
    instrument_codes = ['STOCK', 'FX', 'BOND', 'INDICIE']
    instrument_names = ['Stocks', 'Foreign Exchange', 'Bonds', 'Indicies']
    instrument_descriptions = [
        'Company shares', 'Foreign exchange instruments',
        'Treasuries/Corporate bonds', 'Stock indicies'
    ]

    for code, name, description in zip(instrument_codes, instrument_names,
                                       instrument_descriptions):
        Instrument.objects.update_or_create(code=code,
                                            name=name,
                                            description=description)

        logger.info('{} instrument created'.format(Instrument.code))
Пример #17
0
def create_price_list(stock):
    price_item = PriceList(sec_code='7UP',
                           price_date=faker.date(),
                           price_close=faker.pydecimal(left_digits=None,
                                                       right_digits=2,
                                                       positive=True),
                           x_open=faker.pydecimal(left_digits=None,
                                                  right_digits=2,
                                                  positive=True),
                           x_high=faker.pydecimal(left_digits=None,
                                                  right_digits=2,
                                                  positive=True),
                           x_low=faker.pydecimal(left_digits=None,
                                                 right_digits=2,
                                                 positive=True),
                           price=faker.pydecimal(left_digits=None,
                                                 right_digits=2,
                                                 positive=True),
                           x_change=faker.pydecimal(left_digits=None,
                                                    right_digits=2,
                                                    positive=True),
                           offer_bid_sign='+',
                           num_of_deals=faker.random_number(),
                           volume=faker.random_number(),
                           x_value=faker.pydecimal(left_digits=None,
                                                   right_digits=2,
                                                   positive=True),
                           dps=faker.pydecimal(left_digits=None,
                                               right_digits=2,
                                               positive=True),
                           eps=faker.pydecimal(left_digits=None,
                                               right_digits=2,
                                               positive=True),
                           pe=faker.pydecimal(left_digits=None,
                                              right_digits=2,
                                              positive=True),
                           rpt=faker.text(10),
                           e_time=faker.date(),
                           e_date=faker.date(),
                           source=faker.text(10),
                           sync_flag=faker.random_number(),
                           stock=stock)
    price_item.save()
    logger.info("{} price list created.".format(price_item))
    return price_item
Пример #18
0
    def runJob(self):
        self._begin_time = datetime.datetime.now(tz=pytz.timezone(settings.TIME_ZONE))
        _status = 2
        _msg = ''
        logger.info('Run Begin Cronjob: {0} ==========='.format(self.title))
        try:
            # 系统内部程序调用
            if self.command_type == 1 or self.command_type == 3:
                if self.command is not None and self.command != '':
                    try:
                        _content = eval(self.command)
                        _status = 1
                        _msg = 'Complated Cronjob {0}: {1}'.format(self.title, _content)
                    except Exception as e:
                        _status = 3
                        _msg = 'Error Cronjob {0} : {1}'.format(self.title, e)
                else:
                    _status = 2
                    _msg ='Error Cronjob {0}: Command is null'.format(self.title)

            # 操作系统程序调用
            else:
                if self.command is not None and self.command != '':
                    try:
                        _result = self.execcmdCommand(self.command)
                        _status = 1
                        _msg = 'Complated Cronjob {0}: {1}'.format(self.title, _result)
                    except Exception as e:
                        _status = 3
                        _msg = 'Error Cronjob {0} : {1}'.format(self.title, e)
                else:
                    _status = 2
                    _msg ='Error Cronjob {0}: Command is null'.format(self.title)


            self._end_time = datetime.datetime.now(tz=pytz.timezone(settings.TIME_ZONE))
            self.addCronjobLogs(job=self.job, status=_status, content=_msg, date_begin=self._begin_time, date_end=self._end_time)

            logger.info(_msg)

        except Exception as e:
            self._end_time = datetime.datetime.now(tz=pytz.timezone(settings.TIME_ZONE))
            self.addCronjobLogs(job=self.job, status=3, content=e, date_begin=self._begin_time, date_end=self._end_time)
            logger.error('Error Cronjob {0}: {1}'.format(self.title, e))
Пример #19
0
def create_exchange():
    """Creates the Exchange objects"""
    logger.info('Creating Exchanges..')

    exchange_codes = ['NYSE', 'NASDAQ', 'LSE', 'SSE']
    exchange_names = [
        'New York Stock Exchange', 'NASDAQ Stock Market',
        'London Stock Exchange', 'Shanghai Stock Exchange'
    ]
    exchange_countries = ['USA', 'USA', 'UK', 'CN']

    for code, name, country in zip(exchange_codes, exchange_names,
                                   exchange_countries):
        location = Country.objects.get(code=country)
        Exchange.objects.update_or_create(code=code,
                                          name=name,
                                          country=location)

        logger.info('{} Exchange created'.format(Exchange.code))
Пример #20
0
    def handle(self, *args, **options):
        logger.info('Seeding Project Data...')
        management.call_command('seed_countries')
        logger.info('Seeded Country data.')

        management.call_command('seed_exchanges')
        management.call_command('seed_exchange_stocks')
        logger.info('Seeded Exchanges and Stock data')

        management.call_command('fix_empty_industry')
        management.call_command('fix_empty_sector')

        logger.info('Seeded Fintrack data.')
Пример #21
0
    def stopJob(self, job):
        result = False
        try:
            _job_id = 'ID-{0}:{1}:{2}'.format(job.id, job.code, job.title)

            if (self.jobs.get_job(_job_id)):
                self.jobs.remove_job(_job_id)
                logger.info('{0} 已经停止'.format(_job_id))
                self.addCronjobStatus(job, action=2)

                result = True
            else:
                self.addCronjobStatus(job, action=2, status=2)
                logger.error('Error Stop Cronjob {0}: {1}'.format(
                    job.title, '任务不存在'))

        except Exception as e:
            self.addCronjobStatus(job, action=2, status=2)
            logger.error('Error Stop Cronjob {0}: {1}'.format(
                job.title, ''.join(e)))

        return result
Пример #22
0
def create_lse_stocks():
    """ Creates all LSE listed stocks """
    logger.info('Adding LSE Stocks...')
    LSE().create_stocks()
    logger.info('Added LSE Stocks')
Пример #23
0
def create_currency():
    """Create the Currency and FX objects"""
    logger.info('Creating Currencies..')
    save_currencies()
    logger.info('Created Currencies')
    logger.info('Creating Currency Pairs..')
    save_currency_pairs()
    logger.info('Created Currency Pairs')
    logger.info('Creating FX Data...')
    get_fx_data()
    logger.info('Created FX Data')
Пример #24
0
def seed_exchange_stocks_minute_data(exchange_symbol):
    """ Creates all exchange Stocks minute data """
    logger.info(
        'Adding {} stocks minute price data...'.format(exchange_symbol))
    bulk_get_exchanges_minute_data(exchange_symbol)
    logger.info('Added {} stocks minute price data'.format(exchange_symbol))
Пример #25
0
def refresh_exchange_stocks_minute_data(exchange_symbol):
    logger.info('Refreshing {} stocks minute data'.format(exchange_symbol))
    get_exchanges_minute_data(exchange_symbol)
    logger.info('Refreshed {} minute data'.format(exchange_symbol))
Пример #26
0
def clear_data():
    """Deletes all the table data"""
    logger.info("Delete Structure instances")
    Structure.objects.all().delete()
    logger.info("Delete StructureType instances")
    StructureType.objects.all().delete()
    logger.info("Delete Industry instances")
    Industry.objects.all().delete()
    logger.info("Delete Price instances")
    PriceList.objects.all().delete()
    logger.info("Delete Stock instances")
    Stock.objects.all().delete()
    logger.info("Delete News instances")
    News.objects.all().delete()
    logger.info("Delete NewsImages instances")
    NewsImage.objects.all().delete()
    logger.info("Delete News Sections instances")
    NewsCategorySection.objects.all().delete()
    logger.info("Delete Analysis instances")
    AnalysisOpinion.objects.all().delete()
    logger.info("Delete Analysis Images instances")
    AnalysisImage.objects.all().delete()
    logger.info("Delete Analysis Sections instances")
    AnalysisCategorySection.objects.all().delete()
Пример #27
0
def create_nyse_stocks():
    """ Creates all NYSE listed stocks """
    logger.info('Adding NYSE Stocks...')
    NYSE().create_stocks()
    logger.info('Added NYSE Stocks')
Пример #28
0
def create_constituents():
    """ Creates all of the Indices constituents """
    logger.info('Adding Indices constituents...')
    SP500().add_constituents()
    logger.info('Added Indices constituents')
Пример #29
0
 def shutdown(self):
     self.jobs.shutdown()
     logger.info('===== shutdown cronjob =======')
Пример #30
0
def create_indices():
    """ Creates all Indices """
    logger.info('Creating Indices...')
    SP500().create_index()
    logger.info('Created Indices')