Commit c1900177 authored by wenwen.tang's avatar wenwen.tang 😕

update

parent 1174318f
...@@ -190,7 +190,7 @@ class IndexSync(JDCDataSync): ...@@ -190,7 +190,7 @@ 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,
} 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)
......
# import datetime as dt import datetime as dt
# import json import json
# from multiprocessing import Process from multiprocessing import Process
#
# import uvicorn import uvicorn
# from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.blocking import BlockingScheduler
# from fastapi import FastAPI from fastapi import FastAPI
# from py_jftech import prev_workday, filter_weekend from py_jftech import prev_workday, filter_weekend, autowired
#
# import main import main
# from api import DatumType, PortfoliosRisk from api import DatumType, PortfoliosRisk, Datum
# from basic.datum import DefaultDatum
# app = FastAPI()
# app = FastAPI()
# REC_GID = 'E3886FBA-123B-7890-123E-123456BEEED'
# REC_GID = 'E3886FBA-123B-7890-123E-123456BEEED'
#
# def get_today_rec():
# def get_today_rec(): from portfolios.dao import robo_mpt_portfolios as rmp
# from portfolios.dao import robo_mpt_portfolios as rmp from api import PortfoliosType, PortfoliosRisk
# from api import PortfoliosType, PortfoliosRisk day = prev_workday(filter_weekend(dt.date.today()))
# day = prev_workday(filter_weekend(dt.date.today())) portfolio = rmp.get_one(day, PortfoliosType.NORMAL, PortfoliosRisk.FT3)
# portfolio = rmp.get_one(day, PortfoliosType.NORMAL, PortfoliosRisk.FT3) return portfolio
# return portfolio
#
# def get_last_signal():
# def get_last_signal(): from rebalance.dao import robo_rebalance_signal as rrs
# from rebalance.dao import robo_rebalance_signal as rrs
# day = prev_workday(filter_weekend(dt.date.today()))
# day = prev_workday(filter_weekend(dt.date.today())) last_re = rrs.get_last_one(max_date=day, risk=PortfoliosRisk.FT3, effective=True)
# last_re = rrs.get_last_one(max_date=day, risk=PortfoliosRisk.FT3, effective=True) return last_re
# return last_re
#
# @autowired
# @app.get("/recommend") def get_fund_infos(datum: Datum = None):
# async def root(): return datum.get_datums(DatumType.FUND)
# portfolio = get_today_rec()
# if portfolio:
# fund_infos = DefaultDatum().get_datums(DatumType.FUND) @app.get("/recommend")
# id_ticker_map = {str(info['id']): info for info in fund_infos} async def root():
# funds = json.loads(portfolio['portfolio']) portfolio = get_today_rec()
# rec_list = [] if portfolio:
# portfolios = {'recomm_guid': REC_GID} fund_infos = get_fund_infos()
# data = {'recomm_guid': REC_GID} id_ticker_map = {str(info['id']): info for info in fund_infos}
# data['data_date'] = portfolio['date'].strftime('%Y-%m-%d') funds = json.loads(portfolio['portfolio'])
# data['funds'] = [{'weight': round(weight * 100), 'fund_id': id_ticker_map[key]['ftTicker']} for key, weight in rec_list = []
# funds.items()] portfolios = {'recomm_guid': REC_GID}
# data['creat_date'] = portfolio['create_time'].strftime('%Y-%m-%d %H:%M:%S') data = {'recomm_guid': REC_GID}
# # todo 补全 data['data_date'] = portfolio['date'].strftime('%Y-%m-%d')
# data['cp'] = 0.81 data['funds'] = [{'weight': round(weight * 100), 'fund_id': id_ticker_map[key]['ftTicker']} for key, weight in
# data['rr'] = 0.81 funds.items()]
# data['roi'] = 0.81 data['creat_date'] = portfolio['create_time'].strftime('%Y-%m-%d %H:%M:%S')
# data['risk'] = round(sum([id_ticker_map[key]['risk'] * weight for key, weight in funds.items()]), 2) # todo 补全
# note = {} data['cp'] = 0.81
# sig = get_last_signal() data['rr'] = 0.81
# note['last_reg_reb'] = sig['date'].strftime('%Y-%m-%d') data['roi'] = 0.81
# data['note'] = json.dumps(note) data['risk'] = round(sum([id_ticker_map[key]['risk'] * weight for key, weight in funds.items()]), 2)
# portfolios['data'] = data note = {}
# rec_list.append(portfolios) sig = get_last_signal()
# return rec_list note['last_reg_reb'] = sig['date'].strftime('%Y-%m-%d')
# else: data['note'] = json.dumps(note)
# return {'msg': '当日投组未产生,待10:00后获取'} portfolios['data'] = data
# rec_list.append(portfolios)
# return rec_list
# def start_robo(): else:
# # 异常情况可以重启跑当天投组 return {'msg': '当日投组未产生,待10:00后获取'}
# current_time = dt.datetime.now()
# target_time = dt.time(10, 0)
# if current_time.time() > target_time: def start_robo():
# main.start() # 异常情况可以重启跑当天投组
# current_time = dt.datetime.now()
# # 开启定时任务,执行实盘 target_time = dt.time(10, 0)
# scheduler = BlockingScheduler() if current_time.time() > target_time:
# scheduler.add_job(main.start, 'cron', day_of_week='0-4', hour=10, minute=00) main.start()
# scheduler.start()
# # 开启定时任务,执行实盘
# scheduler = BlockingScheduler()
# def start_web(): scheduler.add_job(main.start, 'cron', day_of_week='0-4', hour=10, minute=00)
# uvicorn.run("robo_controller:app", reload=True, port=8080) scheduler.start()
#
#
# if __name__ == "__main__": def start_web():
# # 开启一个进程执行start_robo() uvicorn.run("robo_controller:app", reload=True, port=8080)
# p1 = Process(target=start_robo)
# p1.start()
# if __name__ == "__main__":
# # 启动进程2 # 开启一个进程执行start_robo()
# p2 = Process(target=start_web) p1 = Process(target=start_robo)
# p2.start() p1.start()
# 启动进程2
p2 = Process(target=start_web)
p2.start()
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