Commit 175f0133 authored by Dr.李's avatar Dr.李

added more api

parent 20147520
...@@ -26,6 +26,7 @@ from alphamind.data.dbmodel.models import IndexMarket ...@@ -26,6 +26,7 @@ from alphamind.data.dbmodel.models import IndexMarket
from alphamind.data.dbmodel.models import Universe as UniverseTable from alphamind.data.dbmodel.models import Universe as UniverseTable
from alphamind.data.dbmodel.models import RiskExposure from alphamind.data.dbmodel.models import RiskExposure
from alphamind.data.dbmodel.models import FundMaster from alphamind.data.dbmodel.models import FundMaster
from alphamind.data.dbmodel.models import FundHolding
from alphamind.data.transformer import Transformer from alphamind.data.transformer import Transformer
from alphamind.data.engines.utilities import _map_factors from alphamind.data.engines.utilities import _map_factors
from alphamind.data.engines.utilities import _map_industry_category from alphamind.data.engines.utilities import _map_industry_category
...@@ -116,6 +117,20 @@ class SqlEngine(object): ...@@ -116,6 +117,20 @@ class SqlEngine(object):
query = self.session.query(FundMaster) query = self.session.query(FundMaster)
return pd.read_sql(query.statement, query.session.bind) return pd.read_sql(query.statement, query.session.bind)
def fetch_fund_holding(self,
fund_codes,
start_date: str=None,
end_date: str=None,
dates: Iterable[str]=None) -> pd.DataFrame:
query = select([FundHolding]).where(
and_(
FundHolding.fund_code.in_(fund_codes),
FundHolding.reportDate.in_(dates) if dates else FundHolding.reportDate.between(start_date, end_date)
)
)
return pd.read_sql(query, self.session.bind)
def fetch_factors_meta(self) -> pd.DataFrame: def fetch_factors_meta(self) -> pd.DataFrame:
query = self.session.query(FactorMaster) query = self.session.query(FactorMaster)
return pd.read_sql(query.statement, query.session.bind) return pd.read_sql(query.statement, query.session.bind)
......
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