A python package that helps to access TSETMC stock price history, Using OOP Interface
- Download All stocks prices
- Download prices from a group (i.e ETFs or cars, etc.)
- Download Price history of one specific Stock
- After first setup available offline.
- CommandLine Interface
- Export data to csv, excel or Stata(dta)
- Compatible with
sqlalchemy
- Compatible with
PANDAS
- Based on light
sqlite
pip install tehran_stocks
For first use you need initialize the database
ts-get init # Set up to sqlite database
import tehran_stocks
# On first import package initialize itself
During initialization you will prompt for downloading all prices. if you answer yes it will download all prices, otherwise you can download data
ts-get update # update all price , or download all if no price exist
ts-get group 34 ## 34 is the code for car's group.
ts-get get_groups ## get group name and group codes
from tehran_stocks import get_all_price, Stocks, update_group
get_all_price() # download and(or) update all prices
update_group(34) #download and(or) update Stocks in groupCode = 34 (Cars)
Stocks.get_group() # to see list of group codes
To access data you can use Stocks
which is an customized sqlalchemy
object, which helps you to find prices on an easy way.
from tehran_stocks import Stocks, db
# You can use query to find stocks
stock = Stocks.query.filter_by(name='كگل').first() #find by symbol(نماد)
stock = Stocks.query.filter_by(code='35700344742885862').first() # find by code on tsetmc url
stock = Stocks.query.filter(Stocks.title.like('%گل گهر%')).first() # Search by title
stock_list = Stocks.query.filter_by(group_code =34).all() # find all Stocks in Khodro
stock_list = Stocks.query.filter(Stocks.group_code.in_([13,34])).all() # all stocks in khodro and felezat
## (Advanced)or run sql query using orm or raw sql
db.session.query(Stocks.group_code, Stocks.group_name).group_by(Stocks.group_code).all()
db.session.execute('select group_code , group_name from stocks group by group_name').fetchall()
Now easily access stock price and do whatever you want with pandas
dataframes:
# use data as a pandas dataframe
>>> stock.df #
id code ticker dtyyyymmdd first high low close value vol openint per open last date
0 22491 35700344742885862 Gol-E-Gohar. 20040829 12000.0 12021.0 12000.0 12000.0 18841605000 1570000 2708 D 12000.0 12000.0 2004-08-29
>>> stock.summary()
Start date: 20040829
End date: 20190714
Total days: 2987
>>> stock.update()
# update stock price history
# Export to your preferred format
>>> stock.df.to_csv('price.csv')
>>> stock.df.to_excel('price.xlsx')
>>> stock.df.to_stata('price.dta')
- Create Database
- Download Data
- CommandLine Support
- Jalali Support
If you like this package you can buy me a cup of coffee ☕️.
You can pay using آپ Application by scanning following qrcode in the application or entering code 95656781
:
Or donate using IDPAY