Commit 79d150f6 authored by wenwen.tang's avatar wenwen.tang 😕

加入指数其他四种指标

parent b884adf3
...@@ -10,6 +10,11 @@ __COLUMNS__ = { ...@@ -10,6 +10,11 @@ __COLUMNS__ = {
'rid_pe': 'pe', 'rid_pe': 'pe',
'rid_pb': 'pb', 'rid_pb': 'pb',
'rid_volume': 'volume', 'rid_volume': 'volume',
'rid_frdpe': 'frdpe',
'rid_frdpes': 'frdpes',
'rid_erp': 'erp',
'rid_pc': 'pc',
} }
......
...@@ -177,9 +177,10 @@ class IndexSync(JDCDataSync): ...@@ -177,9 +177,10 @@ class IndexSync(JDCDataSync):
return next_workday(last['date']) if last else self.start_date return next_workday(last['date']) if last else self.start_date
def build_urls(self, datum, start_date, page=0) -> str: def build_urls(self, datum, start_date, page=0) -> str:
return f'https://jdcprod.thiztech.com/api/datas/index-value?page={page}&size=200&sourceCode={quote(datum["bloombergTicker"])}&sourceType=BLOOMBERG&startDate={format_date(start_date)}' return f'http://jdcprod.thiztech.com/api/datas/index-value?page={page}&size=200&sourceCode={quote(datum["bloombergTicker"])}&sourceType=BLOOMBERG&startDate={format_date(start_date)}'
def store_date(self, datumid, datas: List[dict]): def store_date(self, datumid, datas: List[dict]):
# add frdpe,frdpes,erp,pc
save_datas = [{ save_datas = [{
'index_id': datumid, 'index_id': datumid,
'date': dt.fromtimestamp(x['date'] / 1000, tz=pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d'), 'date': dt.fromtimestamp(x['date'] / 1000, tz=pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d'),
...@@ -190,6 +191,10 @@ class IndexSync(JDCDataSync): ...@@ -190,6 +191,10 @@ class IndexSync(JDCDataSync):
'pe': x['peRatio'] if 'peRatio' in x else None, 'pe': x['peRatio'] if 'peRatio' in x else None,
'pb': x['pbRatio'] if 'pbRatio' in x else None, 'pb': x['pbRatio'] if 'pbRatio' in x else None,
'volume': x['volume'] if 'volume' in x else None, 'volume': x['volume'] if 'volume' in x else None,
'frdpe': x['forwardPe'] if 'forwardPe' in x else None,
'frdpes': x['forwardEps'] if 'forwardEps' in x else None,
'erp': x['erp'] if 'erp' in x else None,
'pc': x['pcRatio'] if 'pcRatio' in x else None,
} for x in datas if is_workday(dt.fromtimestamp(x['date'] / 1000, tz=pytz.timezone('Asia/Shanghai'))) and 'close' in x] } for x in datas if is_workday(dt.fromtimestamp(x['date'] / 1000, tz=pytz.timezone('Asia/Shanghai'))) and 'close' in x]
if save_datas: if save_datas:
rid.batch_insert(save_datas) rid.batch_insert(save_datas)
...@@ -211,7 +216,7 @@ class EcoSync(JDCDataSync): ...@@ -211,7 +216,7 @@ class EcoSync(JDCDataSync):
return next_workday(last['date']) if last else self.start_date return next_workday(last['date']) if last else self.start_date
def build_urls(self, datum, start_date, page=0) -> str: def build_urls(self, datum, start_date, page=0) -> str:
return f'https://jdcprod.thiztech.com/api/datas/eco-value?page={page}&size=200&sourceCode={quote(datum["bloombergTicker"])}&sourceType=BLOOMBERG&startDate={format_date(start_date)}' return f'http://jdcprod.thiztech.com/api/datas/eco-value?page={page}&size=200&sourceCode={quote(datum["bloombergTicker"])}&sourceType=BLOOMBERG&startDate={format_date(start_date)}'
def store_date(self, datumid, datas: List[dict]): def store_date(self, datumid, datas: List[dict]):
save_datas = [{ save_datas = [{
...@@ -244,7 +249,7 @@ class FundNavSync(JDCDataSync): ...@@ -244,7 +249,7 @@ class FundNavSync(JDCDataSync):
return None return None
querys = self._jdc_querys[datum['id']] querys = self._jdc_querys[datum['id']]
query_str = '&'.join([f'{x[0]}={quote(str(x[1]).encode())}' for x in querys.items()]) query_str = '&'.join([f'{x[0]}={quote(str(x[1]).encode())}' for x in querys.items()])
return f'https://jdcprod.thiztech.com/api/datas/asset-value?page={page}&size=200&startDate={format_date(start_date)}&{query_str}' return f'http://jdcprod.thiztech.com/api/datas/asset-value?page={page}&size=200&startDate={format_date(start_date)}&{query_str}'
def find_jdc_querys(self): def find_jdc_querys(self):
funds = self._datum.get_datums(type=DatumType.FUND, exclude=False) funds = self._datum.get_datums(type=DatumType.FUND, exclude=False)
...@@ -254,7 +259,7 @@ class FundNavSync(JDCDataSync): ...@@ -254,7 +259,7 @@ class FundNavSync(JDCDataSync):
} for x in funds if 'ftTicker' not in x and 'bloombergTicker' in x} } for x in funds if 'ftTicker' not in x and 'bloombergTicker' in x}
ft_tickers = {x['ftTicker']: x for x in funds if 'ftTicker' in x} ft_tickers = {x['ftTicker']: x for x in funds if 'ftTicker' in x}
response = requests.get('https://jdcprod.thiztech.com/api/subject?busiField=TW&sourceType=TW&subjectType=FUND') response = requests.get('http://jdcprod.thiztech.com/api/subject?busiField=TW&sourceType=TW&subjectType=FUND')
response = response.json() response = response.json()
if not response['success']: if not response['success']:
raise CollectError(f'''find fund subject failed: {response['status']}''') raise CollectError(f'''find fund subject failed: {response['status']}''')
...@@ -298,7 +303,7 @@ class ExrateSync(DataSync): ...@@ -298,7 +303,7 @@ class ExrateSync(DataSync):
return [x['ticker'] for x in navs_config['exrate']] if 'exrate' in navs_config else [] return [x['ticker'] for x in navs_config['exrate']] if 'exrate' in navs_config else []
def build_url(self, ticker, start_date, page=0): def build_url(self, ticker, start_date, page=0):
return f'https://jdcprod.thiztech.com/api/datas/exrate-value?page={page}&size=200&sourceCode={quote(ticker)}&sourceType=BLOOMBERG&startDate={format_date(start_date)}' return f'http://jdcprod.thiztech.com/api/datas/exrate-value?page={page}&size=200&sourceCode={quote(ticker)}&sourceType=BLOOMBERG&startDate={format_date(start_date)}'
def do_sync(self, max_date=dt.today()): def do_sync(self, max_date=dt.today()):
logger.info(f'start sync datas for type[EXRATE]') logger.info(f'start sync datas for type[EXRATE]')
......
...@@ -44,7 +44,7 @@ class BenchmarkAlligamReportor(RoboReportor): ...@@ -44,7 +44,7 @@ class BenchmarkAlligamReportor(RoboReportor):
if start_date: if start_date:
params['startDate'] = format_date(start_date) params['startDate'] = format_date(start_date)
while True: while True:
response = requests.get(f'https://jdcprod.thiztech.com/api/datas/asset-value?{urlencode(params)}').json() response = requests.get(f'http://jdcprod.thiztech.com/api/datas/asset-value?{urlencode(params)}').json()
if not response['success']: if not response['success']:
raise Exception(f'''request jdc alligam failed: {response['status']}''') raise Exception(f'''request jdc alligam failed: {response['status']}''')
rb.batch_insert([{ rb.batch_insert([{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment