Esempio n. 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')
Esempio n. 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
Esempio n. 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
Esempio n. 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')
Esempio n. 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))
Esempio n. 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')
Esempio n. 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
Esempio n. 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.')
Esempio n. 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))
Esempio n. 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()
Esempio n. 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
Esempio n. 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
Esempio n. 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.')
Esempio n. 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
Esempio n. 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))
Esempio n. 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))
Esempio n. 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
Esempio n. 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))
Esempio n. 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))
Esempio n. 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.')
Esempio n. 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
Esempio n. 22
0
def create_lse_stocks():
    """ Creates all LSE listed stocks """
    logger.info('Adding LSE Stocks...')
    LSE().create_stocks()
    logger.info('Added LSE Stocks')
Esempio n. 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')
Esempio n. 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))
Esempio n. 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))
Esempio n. 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()
Esempio n. 27
0
def create_nyse_stocks():
    """ Creates all NYSE listed stocks """
    logger.info('Adding NYSE Stocks...')
    NYSE().create_stocks()
    logger.info('Added NYSE Stocks')
Esempio n. 28
0
def create_constituents():
    """ Creates all of the Indices constituents """
    logger.info('Adding Indices constituents...')
    SP500().add_constituents()
    logger.info('Added Indices constituents')
Esempio n. 29
0
 def shutdown(self):
     self.jobs.shutdown()
     logger.info('===== shutdown cronjob =======')
Esempio n. 30
0
def create_indices():
    """ Creates all Indices """
    logger.info('Creating Indices...')
    SP500().create_index()
    logger.info('Created Indices')