Using Equities India (BSE)ΒΆ
Notebooks for this code: python; R.
"""This example illustrates how to use the EquitiesIndiaBse data-set."""
import sys
sys.path.append("..")
from sqlalchemy import func, and_, or_, text
from plutoPy.model import RoutingSession, EquitiesIndiaBse
from datetime import date, datetime
symbol = "SBIN"
#get BSE's code for a symbol
secInfo = (RoutingSession.session.query(EquitiesIndiaBse.Tickers)
.filter(EquitiesIndiaBse.Tickers.SYMBOL == symbol)
.all())
print(secInfo)
code = secInfo[0].CODE
# fetch some "misc" info
end_dt = RoutingSession.session.query(func.max(EquitiesIndiaBse.MiscInfo.TIME_STAMP)).scalar()
results = (RoutingSession.session.query(EquitiesIndiaBse.MiscInfo)
.filter(and_(EquitiesIndiaBse.MiscInfo.TIME_STAMP == end_dt, EquitiesIndiaBse.MiscInfo.CODE == code))
.all())
print("misc info:")
for instance in results:
print(instance)
# fetch the latest end-of-day prices
end_dt = RoutingSession.session.query(func.max(EquitiesIndiaBse.EodTimeSeries.TIME_STAMP)).scalar()
results = (RoutingSession.session.query(EquitiesIndiaBse.EodTimeSeries)
.filter(and_(EquitiesIndiaBse.EodTimeSeries.TIME_STAMP == end_dt, EquitiesIndiaBse.EodTimeSeries.CODE == code))
.all())
print(f"fetched: {len(results)}")
for instance in results:
print(instance)
# fetch the last 10 day EOD prices for State Bank of India
results = (RoutingSession.session.query(EquitiesIndiaBse.EodTimeSeries)
.filter(EquitiesIndiaBse.EodTimeSeries.CODE == code)
.order_by(EquitiesIndiaBse.EodTimeSeries.TIME_STAMP.desc())
.limit(10)
.all())
print("last 10 day EOD prices:")
for instance in results:
print(instance)
# fetch the last 24 quarter EPS for State Bank of India
results = (RoutingSession.session.query(EquitiesIndiaBse.CorporateResults)
.filter(and_(EquitiesIndiaBse.CorporateResults.CODE == code,
EquitiesIndiaBse.CorporateResults.KEY.ilike('%diluted%'),
EquitiesIndiaBse.CorporateResults.KEY.ilike('%after%'),
func.datediff(text('day'), EquitiesIndiaBse.CorporateResults.PERIOD_BEGIN, EquitiesIndiaBse.CorporateResults.PERIOD_END) < 100))
.order_by(EquitiesIndiaBse.CorporateResults.PERIOD_END.desc())
.limit(24)
.all())
print("the last 24 quarter EPS: ")
for instance in results:
print(instance)