def event_record_new_stock():
    from venus.stock_manager2 import EventTradeDataManager
    from venus.stock_base2 import resolve_stock_list
    event = EventTradeDataManager(GLOBAL_HEADER)
    stock_list = resolve_stock_list('stock')
    for stock_code in stock_list:
        event.init_stock_data(stock_code)
def event_download_stock_data():
    from venus.stock_manager2 import EventTradeDataManager
    from venus.stock_base2 import resolve_stock_list
    event = EventTradeDataManager(GLOBAL_HEADER)
    stock_list = resolve_stock_list('stock')
    for stock_code in stock_list:
        event.download_stock_data(stock_code)
Example #3
0
def unit_test_stock_manager():
    from polaris.mysql8 import GLOBAL_HEADER
    from venus.stock_manager2 import EventTradeDataManager
    from venus.stock_base2 import resolve_stock_list
    stock_list = resolve_stock_list('totalstocklist')
    event = EventTradeDataManager(GLOBAL_HEADER)
    result = event.get_trade_data('SH600000', event.today)
    print(result)
def event_adjust_factor():
    from venus.stock_interest import EventStockData
    from venus.stock_base2 import resolve_stock_list
    stock_list = resolve_stock_list('stock')
    event = EventStockData(GLOBAL_HEADER)
    for stock_code in stock_list:
        print(stock_code)
        df = event.adjust_factor(stock_code)
        event.record_factor(stock_code, df)
def event_init_interest():
    from venus.stock_interest import EventInterest
    from venus.stock_base2 import resolve_stock_list
    stock_list = resolve_stock_list('stock')
    event = EventInterest(GLOBAL_HEADER)
    event._load_template()
    for stock_code in stock_list:
        event.record_interest(stock_code)
        delay(10)
def event_create_stock_table():
    """
    Init database from a blank stock list.
    """
    from venus.stock_manager2 import EventTradeDataManager
    from venus.stock_base2 import resolve_stock_list
    stock_list = resolve_stock_list('totalstocklist')
    event = EventTradeDataManager(GLOBAL_HEADER)
    for stock_code in stock_list:
        event.create_stock_table(stock_code)
def event_flag_quit_stock():
    from venus.stock_classify import StockClassify
    from venus.stock_base2 import resolve_stock_list
    event = StockClassify(GLOBAL_HEADER)
    stock_list = resolve_stock_list('stock')
    for stock_code in stock_list:
        flag = event.flag_quit_stock(stock_code)
        if flag:
            sql = (f"UPDATE stock_manager set flag='q' "
                   f"WHERE stock_code='{stock_code}'")
            event.engine.execute(sql)
def event_set_update_date():
    from venus.stock_manager2 import EventTradeDataManager
    from venus.stock_base2 import resolve_stock_list
    from datetime import datetime
    event = EventTradeDataManager(GLOBAL_HEADER)
    stock_list = resolve_stock_list('stock')
    for stock_code in stock_list:
        df = event.select_values(stock_code, 'trade_date')
        try:
            update_date = df[0][-1:].values
            update = update_date[0]
            t = update.strftime('%Y-%m-%d')
            # print(t)
            event.update_value('stock_manager', 'update_date', f"'{t}'",
                               f"stock_code='{stock_code}'")
        except Exception as e:
            print(e)
def event_download_detail_data(trade_date_list: list = None):
    import datetime
    from jupiter.network import delay
    from venus.stock_base2 import resolve_stock_list
    from venus.stock_manager2 import EventTradeDataManager
    stock_list = resolve_stock_list('stock')
    event = EventTradeDataManager(GLOBAL_HEADER)
    today = datetime.date.today()
    if not trade_date_list:
        trade_date_list = [
            (today - datetime.timedelta(days=i)).strftime('%Y%m%d')
            for i in range(1, 6)
        ]
    stock_list = event.get_all_stock_list()
    for trade_date in trade_date_list:
        for stock in stock_list:
            # print(f"Download detail trade data {stock}: {trade_date}")
            event.get_trade_detail_data(stock, trade_date)
            delay(3)
        return ipo_date[0]

    def get_ipo_date(self, stock_code):
        query = self.select_values(stock_code, 'trade_date')
        ipo_date = pd.to_datetime(query[0])
        return ipo_date[0]


def absolute_path(file_path: str, file_name: str) -> str:
    """
    Connect path with file, return a absolute path.
    """
    if (file_path[-1] == '/') and (file_name[0] == '/'):
        result_path = file_path + file_name[1:]
    elif (file_path[-1] != '/') and (file_name[0] != '/'):
        result_path = file_path + '/' + file_name
    else:
        result_path = file_path + file_name
    return result_path


if __name__ == "__main__":
    from polaris.mysql8 import GLOBAL_HEADER, mysqlHeader
    root = mysqlHeader('root', '6414939', 'stock')
    event = EventTradeDataManager(root)
    from venus.stock_base2 import resolve_stock_list
    stock_list = resolve_stock_list('stock')
    for stock_code in stock_list:
        print(stock_code)
        event.download_stock_data(stock_code)