Get data of stock exchange thailand (SET)
Project description
Library สำหรับประมวลข้อมูลตลาดหุ้นไทย Stock Exchange of Thailand https://www.set.or.th และการจัดการ Portfolio
พื้นฐานที่ต้องการ
$ conda install -c conda-forge matplotlib
จาก https://anaconda.org/conda-forge/matplotlib
การติดตั้ง
$ pip install starfishX หรือ $ pip install starfishX --upgrade
หรือ
$ pip3 install starfishX --upgrade
Quantitative
- sx.loadHistData(str|list,start="2018-01-01",end="2018-12-31")
end ถ้าไม่ใส่คือวันที่ล่าสุด
- df,k = sx.MonthlyReturn([str],"2016-01-01")
- sx.linregressIndicator(basket,periodDay)
int periodDay
จำนวนวันล่าสุดที่จะใช้ใน Linear least-squares regression - sx.getNVDRVolume ดึงข้อมูลปริมาณการซื้อขายของ NVDR
ข้อมูลงบการเงินและข้อมูลตลาด
-
sx.commonsizeBS(str)
-
sx.commonsizeIS(str)
-
sx.getFinanceRatio(str|list)
str,list
ส่งค่าเป็น str จะ return ค่าย้อนหลังได้หลายปี หากส่งค่าเป็น array list จะ return แบบเปรียบเทียบ -
sx.spiderCompare([str1,str2])
ใช้คู่กับ sx.getFinanceRatio และ list ความยาว 2 เท่านั้น
-
sx.getIncomeStatement(str)
-
sx.getIncomeStatementCompare(list)
-
sx.getBalanceSheet(str)
-
sx.getBalanceSheetCompare(list)
-
sx.getMemberOfIndex("set50")
SET50,SET100,sSET,SETCLMV,SETHD,SETTHSI,SETWB
-
sx.listStockInSector("kbank")
สุ่มอะไรก็ได้ในกลุ่มอุตสาหกรรมนั้นๆ
-
sx.getFundamentalInSector("kbank")
สุ่มอะไรก็ได้ในกลุ่มอุตสาหกรรมนั้นๆ
-
sx.findCASH("aot")
-
sx.listShareholders(str|list,csv="file.csv")
csv สำหรับบันทึกข้อมูลเป็น csv
-
sx.listSecurities()
-
sx.findMarketCap(str|list)
-
sx.DuPontROE(str,int,firstLine=False)
str Symbol ของหุ้นรายตัว
int Year เป็นปีพ.ศ. เช่น 2562 หรือ 2561
firstLine True
คือ SALE ใช้บรรทัดแรก แต่ถ้าเป็น False SALE จะใช้รายได้รวมทั้งหมด ถ้าไม่ใส่ปกติจะเป็น False -
sx.InterestBearingDebt(str)
str Symbol ของหุ้นรายตัว
ใช้หาหนี้ที่มีคาดว่ามีภาระดอกเบี้ย -
sx.DA(str)
str Symbol
ใช้หาค่าเสื่อมราคาและค่าตัดจำหน่าย -
sx.morningstarGetfn(str,Indicates=sx.MStar) ดึงค่าปัจจัยพื้นฐานจาก morningstar
str Symbol ของหุ้นรายตัว
sx.MStar
คือ ตัวคัดกรองที่ต้องการ เช่น ปันผลใช้ sx.MStar.Dividends , รายได้ใช้ sx.MStar.Revenue เป็นต้น จาก Cr.http://financials.morningstar.com -
sx.marketview(indexMarket,start=year)
str year ใช้ปีค.ศ. เช่น 2010-01-01 YYYY-MM-DD
indexMarket Class เช่น sx.indexMarket.SET50
-
rp = sx.marketViewForeignTrade(indexMarket,start="2016-01-01")
indexMarket ของต่างชาติซื้อขายมีเพียง SET และ mai เท่านั้น
str year ใช้ปีค.ศ. เช่น 2010-01-01 YYYY-MM-DD
-
sx.AnomalyDetectionVolume(DataSet,contamination=0.01,viewplot=True)
DataSet เป็น DataFrame ของปริมาณการซื้อขาย
contamination ส่วนของสิ่งผิดปกติใน DataSet
ประเมินมูลค่าหุ้น
-
sx.getEVEBITDA(symbol,year)
int Year เป็นปีพ.ศ. เช่น 2562 หรือ 2561
-
sx.analyseEVEBITDA(basket,yearstart,yearend)
วิเคราะห์คุณภาพ EV/EBITDA
-
sx.DividendDiscountModel(symbol,year,k)
int Year เป็นปีพ.ศ. เช่น 2562 หรือ 2561
k อัตราผลตอบแทนที่คาดหวัง
-
sx.thaibma(year,bondtype=sx.BondType.ThaiGovernmentBond10Year)
strFormat ใช้ค.ศ. เช่น 2019-06-10 YYYY-MM-DD
Cr.http://www.thaibma.or.th -
sx.thaibma_series(year,bondtype=sx.BondType.ThaiGovernmentBond10Year)
-
sx.beta(str)
str Symbol
-
sx.EarningYieldGap(indexMarket,bondtype,start=year)
str year ใช้ปีค.ศ. เช่น 2010-01-01 YYYY-MM-DD
Optimization
- sx.MarkowitzProcess(df,alias=symbols,random=5000)
ดึงวันหยุดของตลาด (วันหยุดตามประเพณีของสถาบันการเงิน)
- df = sx.getHolidayMarket('2021')
int Year เป็นปีค.ศ. เช่น 2010-01-01 YYYY-MM-DD
สถิติข้อมูล IPO ของหุ้น ราคา IPO /ข้อมูล ณ วันแรกที่ซื้อขาย / บริษัทที่ปรึกษาทางการเงิน
- df = sx.ipoStat(start,end)
int start,end เป็นปีค.ศ. เช่น 2020
ดึงราคา Warrant หรือใบสําคัญแสดงสิทธิ symbol : string เช่น mint-w7,jmart-w4
- df = sx.getWarrant('mint-w7')
ดึงราคา Derivative Warrants หรือใบสำคัญแสดงสิทธิอนุพันธ์ symbol : string เช่น 'INTU01C2201A'
- df = sx.getDW('INTU01C2201A')
คำนวณค่า Greek ของ Warrant ที่เราต้องการ
-
float asset_price : ราคาสินค้าอ้างอิง
float asset_volatility : ความผันผวนของราคาสินค้าอ้างอิง
float strike_price : ราคาใช้สิทธิ
float time_to_expiration : วันหมดอายุ (จำนวนวัน/365)
float risk_free_rate : อัตราผลตอบแทนที่ไม่มีความเสี่ยง
callOption = EuropeanCall(asset_price=4.94, asset_volatility=0.80,strike_price=2, time_to_expiration=2.901, risk_free_rate=0.015)
คืนค่าเป็น Option Price,Delta,Gamma,Vega,Theta และ Rho
Cr.เอกสารประกอบจาก 1.https://medium.com/swlh/black-scholes-algorithmic-delta-hedging-c2cdd42ce175 2.https://aaronschlegel.me/measure-sensitivity-derivatives-greeks-python.html
ตัวอย่าง Data Type และอื่นๆ
- list เช่น ["aot","ptt"]
- str เช่น "aot"
- sx.checkServices() เป็นการตรวจสอบการทำงานของ Server โดยภาพรวมว่า function ยังทำงานโดยปกติไหม
ตัวอย่างการใช้งาน
import starfishX as sx
print(sx.__version__)
sx.getBalanceSheet("aot")
ตัวอย่างการใช้งาน
import starfishX as sx
symbol = ["aot","ptt"]
df = sx.loadHistData(symbol,start="2018-01-01")
ตัวอย่างการใช้งาน
import starfishX as sx
symbols = ["ptt","cpf","mint","aav"]
df = sx.loadHistData(symbols,start="2018-01-01")
sx.MarkowitzProcess(df,alias=symbols,random=5000)
ค้นหาหุ้นตามแนวทางของ Peter Lynch โดยใช้เนื้อหาจากหนังสือ “เหนือกว่าวอลสตรีท One Up On Wall Street” สร้างเป็น Package เสริมโดยใช้ฟังก์ชั่นพื้นฐานจาก starfishX
import starfishX.peterlynch as pl
- อัตราการเติบโตของกำไรเป็นอย่างไร
- P/E อุตสาหกรรม และ P/E บริษัทที่คล้ายกัน
- P/E ต่ออัตราการเติบโตของกำไร
- P/E ย้อนหลัง 10 ปี
- ตัวอย่างเช่น df = pl.getPEHistory('aot')
str symbol
- ตัวอย่างเช่น df = pl.getPEHistory('aot')
- นักวิเคราะห์สนใจหุ้นเราไหม
- บริษัทมีข่าวการซื้อหุ้นคืนบ้างหรือเปล่า
- เปอร์เซ็นต์การถือหุ้นของสถาบัน
- มีบุคคลภายในกำลังซื้อหุ้นของบริษัทบ้างไหม ตรวจสอบรายงาน 59-2 และรายงาน 246-2
- โครงสร้างหนี้เป็นอย่างไร
- มีงบดุลที่แข็งแกร่งขนาดไหน
- เงินสดต่อหุ้นเป็นยังไงบ้าง
- อัตราการปันผลสม่ำเสมอหรือเปล่า
- อัตรา Payout เป็นอย่างไรบ้าง
- กระแสเงินสดอิสระ Free Cash Flow เป็นยังไง
- หาบริษัทที่ยอดเยี่ยมในอุตสาหกรรมที่ยอดแย่
- สัญญานหนึ่งของการเพื่องฟู
- หุ้นทรัพย์สินมาก ประยุกต์ใช้เทคนิค Sum Of The Part
- การคัดกรอง หุ้นโตช้า ,หุ้นแข็งแกร่ง ,หุ้นโตเร็ว ตามอัตราการเติบโต
Historical Volatility
import starfishX.volatility as vol
from starfishX.volatility.vol import TypeVol as tv
df = sx.loadHistData("JMART",OHLC=True,start="2020-01-01")
N = 30 #sma
vol.historicalVolatility(df,N,tv.hvCloseToClose)
vol.historicalVolatility(df,N,tv.hvParkinson)
starfishX.volatility ตอนนี้ก็จะมี 6 ฟังก์ชัน
- 1.Close To Close
- 2.Parkinson (High-Low)
- 3.Garman-Klass (Open-High-Low-Close)
- 4.Rogers-Satchell (Open-High-Low-Close + จัดการราคาที่ไม่เปลี่ยนแปลงได้)
- 5.GARMAN-KLASS YANG-ZHANG EXTENSION (Open-High-Low-Close + จัดการราคาที่มีการเปิดกระโดดได้)
- 6.Yang-Zhang (Open-High-Low-Close + จัดการราคาที่ไม่เปลี่ยนแปลงได้ + จัดการราคาที่มีการเปิดกระโดดได้)
ติดต่อฉัน แจ้ง BUG แจ้ง Error ได้ที่
Facebook : https://www.facebook.com/Superstarman-1464755373546185/
Email : tapattan@จีเมล์ดอทคอม
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for starfishX-0.155556-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f27269b926638f9f42ed1e83a86212cf73448fa21ab8e41422af3fe033d97ec2 |
|
MD5 | 60c608cd866c181b5d0d93d3b29921a0 |
|
BLAKE2b-256 | 9d91457237b1a662ee15a8ba792cbba0a1c7613b654995c63ef1724fbfceff2c |