def import_from_csv_yahoo(self) -> str: BaseService._truncate(EPD) files: List[str] = FileUtils.get_files(AppConsts.ETF_PRICE_FOLDER, is_full=True) for file in files: symbol: str = FileUtils.get_wo_ext(FileUtils.get_base_name(file)) org_symbol: SM = self.__stock_service.get_symbol( symbol, AppConsts.INSTRUMENT_ETF) if not org_symbol: continue records: List[Dict] = CsvUtils.parse_as_dict(file) models: List[Any] = [] for record in records: models.append(( org_symbol.id, DateUtils.get_date(record.get(AppConsts.YAHOO_KEY_DATE), AppConsts.YAHOO_DATE_FORMAT), NumberUtils.to_float(record.get(AppConsts.YAHOO_KEY_OPEN)), NumberUtils.to_float(record.get(AppConsts.YAHOO_KEY_HIGH)), NumberUtils.to_float(record.get(AppConsts.YAHOO_KEY_LOW)), NumberUtils.to_float(record.get( AppConsts.YAHOO_KEY_CLOSE)), NumberUtils.to_int(record.get(AppConsts.YAHOO_KEY_VOLUME)), )) BaseService._insert_bulk(EPD, models) return "1"
def import_from_csv_symbols(self) -> str: files: List[str] = FileUtils.get_files(AppConsts.STOCK_PRICE_FOLDER) for file in files: symbol: str = FileUtils.get_wo_ext(file) org_symbol: SM = self.__stock_service.get_symbol( symbol, AppConsts.INSTRUMENT_STOCK) if org_symbol: continue LogUtils.debug('Inserting {0}.'.format(symbol)) BaseService._insert( SM(symbol=symbol, name='', status=AppConsts.SYMBOL_STATUS_INIT, instrument=AppConsts.INSTRUMENT_STOCK)) return "1"
def import_from_csv_prices(self) -> str: BaseService._truncate(SPD) files: List[str] = FileUtils.get_files(AppConsts.STOCK_PRICE_FOLDER, is_full=True) for file in files: symbol: str = FileUtils.get_wo_ext(FileUtils.get_base_name(file)) org_symbol: SM = self.__stock_service.get_symbol( symbol, AppConsts.INSTRUMENT_STOCK) if not org_symbol: continue records: List[List[str]] = CsvUtils.parse_as_list(file) if not records: continue for record in records: record[AppConsts.KIBOT_IDX_DATE] = DateUtils.get_date( record[AppConsts.KIBOT_IDX_DATE], AppConsts.KIBOT_DATE_FORMAT) record.insert(0, org_symbol.id) BaseService._insert_bulk(SPD, records) return "1"