siat 3.0.42__py3-none-any.whl → 3.0.43__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- siat/financials_china.py +25 -4
- siat/financials_china2.py +4 -4
- siat/risk_adjusted_return2.py +1 -1
- siat/translate.py +4 -0
- {siat-3.0.42.dist-info → siat-3.0.43.dist-info}/METADATA +1 -1
- {siat-3.0.42.dist-info → siat-3.0.43.dist-info}/RECORD +8 -8
- {siat-3.0.42.dist-info → siat-3.0.43.dist-info}/WHEEL +0 -0
- {siat-3.0.42.dist-info → siat-3.0.43.dist-info}/top_level.txt +0 -0
siat/financials_china.py
CHANGED
@@ -655,7 +655,8 @@ if __name__=='__main__':
|
|
655
655
|
|
656
656
|
def compare_dupont_china(tickerlist,fsdate='latest',scale1 = 10,scale2 = 10, \
|
657
657
|
hatchlist=['.', 'o', '\\'],printout=True,sort='PM', \
|
658
|
-
facecolor='papayawhip',font_size='16px'
|
658
|
+
facecolor='papayawhip',font_size='16px',
|
659
|
+
loc='best'):
|
659
660
|
"""
|
660
661
|
功能:获得tickerlist中每只股票的杜邦分析项目,绘制柱状叠加比较图
|
661
662
|
tickerlist:股票代码列表,建议在10只以内
|
@@ -724,6 +725,12 @@ def compare_dupont_china(tickerlist,fsdate='latest',scale1 = 10,scale2 = 10, \
|
|
724
725
|
}
|
725
726
|
|
726
727
|
df = pd.DataFrame(raw_data,columns=[ticker,name1,name2,name3,name4,name5])
|
728
|
+
if len(df)==0:
|
729
|
+
print('')
|
730
|
+
print(" #Error(compare_dupont_china): no data to plot dupont identity bar chart.")
|
731
|
+
print(" If the stock code is correct, you may suffer from anti-spyder from data source. Try later")
|
732
|
+
return None
|
733
|
+
|
727
734
|
if sort=='PM':
|
728
735
|
df.sort_values(name1,ascending=False,inplace=True)
|
729
736
|
elif sort=='TAT':
|
@@ -752,6 +759,11 @@ def compare_dupont_china(tickerlist,fsdate='latest',scale1 = 10,scale2 = 10, \
|
|
752
759
|
ax1.bar(x,df[name1],width=w,label=name1,alpha=0.5,color='blue', \
|
753
760
|
hatch=hatchlist[2], edgecolor='black',align='center')
|
754
761
|
|
762
|
+
#判断是否绘制零线
|
763
|
+
pm_max=df[name1].max(); pm_min=df[name1].min()
|
764
|
+
if pm_max * pm_min < 0:
|
765
|
+
plt.axhline(y=0,ls=":",c="black",linewidth=2,label='')
|
766
|
+
|
755
767
|
plt.xticks(tick_pos,df[ticker])
|
756
768
|
plt.ylabel("杜邦分析分解项目")
|
757
769
|
|
@@ -768,8 +780,17 @@ def compare_dupont_china(tickerlist,fsdate='latest',scale1 = 10,scale2 = 10, \
|
|
768
780
|
footnote2=footnote+'\n'+footnote1+'\n'+"数据来源:sina/EM,"+str(today)
|
769
781
|
plt.xlabel(footnote2)
|
770
782
|
|
771
|
-
plt.legend(loc=
|
772
|
-
|
783
|
+
plt.legend(loc=loc)
|
784
|
+
|
785
|
+
titletxt1="杜邦分析对比图:"
|
786
|
+
if sort=='PM':
|
787
|
+
titletxt2="按照"+name1+"降序排列"
|
788
|
+
elif sort=='TAT':
|
789
|
+
titletxt2="按照"+name2+"降序排列"
|
790
|
+
else:
|
791
|
+
titletxt2="按照"+name3+"降序排列"
|
792
|
+
|
793
|
+
plt.title(titletxt1+titletxt2)
|
773
794
|
plt.xlim([min(tick_pos)-w,max(tick_pos)+w])
|
774
795
|
|
775
796
|
plt.gca().set_facecolor('whitesmoke')
|
@@ -794,7 +815,7 @@ def compare_dupont_china(tickerlist,fsdate='latest',scale1 = 10,scale2 = 10, \
|
|
794
815
|
print("===== 杜邦分析分项数据表 =====")
|
795
816
|
print("*** 数据来源:sina/EM,"+str(today))
|
796
817
|
"""
|
797
|
-
title_txt="
|
818
|
+
title_txt="杜邦分析分项数据表:"+titletxt2
|
798
819
|
footnote0="1、表中各个上市公司的财报日期可能存在差异,但均为可获得(已公布)的最新财报"
|
799
820
|
footnote1="2、表中数值基于期末数字直接计算,而非期初期末均值,可能与公告数字存在差异。"
|
800
821
|
footnote2="*** 数据来源:sina/EM,"+str(today)
|
siat/financials_china2.py
CHANGED
@@ -1957,8 +1957,8 @@ if __name__=='__main__':
|
|
1957
1957
|
|
1958
1958
|
def fs_analysis_china(tickers,fsdates=[],analysis_type='balance sheet', \
|
1959
1959
|
category='profile',business_period='recent', \
|
1960
|
-
printout=False,gview=False, \
|
1961
|
-
loc1='
|
1960
|
+
sort='PM',printout=False,gview=False, \
|
1961
|
+
loc1='best',loc2='best', \
|
1962
1962
|
facecolor='papayawhip',font_size='16px'):
|
1963
1963
|
"""
|
1964
1964
|
【功能】财务报表分析,仅适用于中国A股,注意不适用于港股和美股(含中概股)
|
@@ -2134,8 +2134,8 @@ def fs_analysis_china(tickers,fsdates=[],analysis_type='balance sheet', \
|
|
2134
2134
|
|
2135
2135
|
# 多只股票的杜邦分析对比
|
2136
2136
|
from siat.financials_china import compare_dupont_china
|
2137
|
-
df_db=compare_dupont_china(tickers,fsdate=fsdates,printout=printout, \
|
2138
|
-
facecolor=facecolor,font_size=font_size)
|
2137
|
+
df_db=compare_dupont_china(tickers,fsdate=fsdates,sort=sort,printout=printout, \
|
2138
|
+
facecolor=facecolor,font_size=font_size,loc=loc1)
|
2139
2139
|
return
|
2140
2140
|
|
2141
2141
|
elif ('dupont' in analysis_type1) and ('decompose' in analysis_type1):
|
siat/risk_adjusted_return2.py
CHANGED
@@ -793,7 +793,7 @@ def compare_mticker_1rar(ticker,start,end,rar='sharpe', \
|
|
793
793
|
footnotey=footnote6+'\n'+footnote7+'\n'+footnotex
|
794
794
|
|
795
795
|
#删除含有Nan的行,否则可能引起近期优先加权平均计算结果市场出现Nan
|
796
|
-
df1.dropna(inplace=True)
|
796
|
+
df1.dropna(inplace=True,axis=1)
|
797
797
|
recommenddf=descriptive_statistics2(df1,title_txt,footnotey,decimals=4, \
|
798
798
|
sortby=sortby,recommend_only=True,trailing=trailing, \
|
799
799
|
trend_threshhold=trend_threshhold, \
|
siat/translate.py
CHANGED
@@ -3256,6 +3256,10 @@ def ticker1_name(ticker,ticker_type='auto'):
|
|
3256
3256
|
#查找证券名称文件:优先股票
|
3257
3257
|
if tt in ['stock']:
|
3258
3258
|
df1=file_position(file='stock_info.pickle',package='siat',mode='read')
|
3259
|
+
|
3260
|
+
#港股
|
3261
|
+
if '.HK' in symbol and len(symbol)==8: symbol=symbol[1:]
|
3262
|
+
|
3259
3263
|
try:
|
3260
3264
|
tname=df1[df1['SYMBOL']==symbol]['CNAME'].values[0]
|
3261
3265
|
except: pass
|
@@ -40,8 +40,8 @@ siat/financial_statements_test.py,sha256=FLhx8JD-tVVWSBGux6AMz1jioXX4U4bp9DmgFHY
|
|
40
40
|
siat/financials.py,sha256=mbEZSNeHMMFcnPUryQWvdmNlWQvpnOG9eItgS7IVw3k,80458
|
41
41
|
siat/financials2 - 副本.py,sha256=dKlNjIfKeoSy055fQ6E6TUj9HEoO5Ney9grD84J5kfk,14389
|
42
42
|
siat/financials2.py,sha256=7mnsTncKsgwFu8PP4refh5C5iMIO9P0KOMSF87ZyncY,45736
|
43
|
-
siat/financials_china.py,sha256=
|
44
|
-
siat/financials_china2.py,sha256=
|
43
|
+
siat/financials_china.py,sha256=HdX6YKI4tUC7VnPCTAjtdC3JxGgGepu07wdrpyykxbE,190119
|
44
|
+
siat/financials_china2.py,sha256=mFwWtzwPbantjmXkGsr4CTEj9VRdZe5yITG3VwlJC9E,92655
|
45
45
|
siat/financials_china2_test.py,sha256=Erz5k4LyOplBBvYls2MypuqHpVNJ3daiLdyeJezNPu0,2722
|
46
46
|
siat/financials_china2_test2.py,sha256=C8CuYTMHN4Mhp-sTu-Bmg0zMXRCaYV6ezGDoYartRYQ,3507
|
47
47
|
siat/financials_china2_test3.py,sha256=UXYSA80DNSPRhHpovc2MA9JkpILWMAQaRatbWCHBNPs,3118
|
@@ -85,7 +85,7 @@ siat/option_sina_api_test.py,sha256=dn-k_wrQnAaNKHoROvWJEc7lqlU0bwiV2Aa4usWAFGM,
|
|
85
85
|
siat/proxy_test.py,sha256=erQJrmGs2X46z8Gb1h-7GYQ0rTUcaR8dxHExWoBz2eM,2610
|
86
86
|
siat/quandl_test.py,sha256=EcPoXnLuqzPl5dKyVEZi3j3PJZFpsnU_iNPhLWC9p-A,1552
|
87
87
|
siat/risk_adjusted_return.py,sha256=L5FoeOFzvItT03gNBTCaIo32hUvncOJkbchtHOveSBM,54929
|
88
|
-
siat/risk_adjusted_return2.py,sha256=
|
88
|
+
siat/risk_adjusted_return2.py,sha256=y9Eux9bbQgprFs_a-0J-7pC9P4yEpJHssDbcbFct0K0,64338
|
89
89
|
siat/risk_adjusted_return_test.py,sha256=m_VHL5AtT74cJv5i7taTeTfnkX48y0AFJk5phawyYWg,3416
|
90
90
|
siat/risk_evaluation.py,sha256=I6B3gty-t--AkDCO0tKF-291YfpnF-IkXcFjqNKCt9I,76286
|
91
91
|
siat/risk_evaluation_test.py,sha256=YEXM96gKzTfwN4U61AS4Rr1tV7KgUvn4rRC6f3iMw9s,3731
|
@@ -126,13 +126,13 @@ siat/transaction_test.py,sha256=Z8g1LJCN4-mnUByXMUMoFmN0t105cbmsz2QmvSuIkbU,1858
|
|
126
126
|
siat/translate-20230125.py,sha256=NPPSXhT38s5t9fzMvl_fvi4ckSB73ThLmZetVI-xGdU,117953
|
127
127
|
siat/translate-20230206.py,sha256=-vtI125WyaJhmPotOpDAmclt_XnYVaWU9ByLWZ6FyYE,118133
|
128
128
|
siat/translate-20230215.py,sha256=TJgtPE3n8IjljmZ4Pefy8dmHoNdFF-1zpML6BhA9FKE,121657
|
129
|
-
siat/translate.py,sha256=
|
129
|
+
siat/translate.py,sha256=dqzySnqC0A0IxFKhY1AUvBbj3RIE5_l_wRMn-ZJNJxs,215034
|
130
130
|
siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
|
131
131
|
siat/valuation.py,sha256=NKfeZMdDJOW42oLVHob6eSVBXUqlN1OCnnzwyGAst8c,48855
|
132
132
|
siat/valuation_china.py,sha256=Tde2LzPDQy3Z7xOQQDw4ckQMPdROp_z0-GjFE6Z5_lI,67639
|
133
133
|
siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
|
134
134
|
siat/var_model_validation.py,sha256=f-oDewg7bPzyNanz_Y_jLH68NowAA3gXFehW_weKGG0,14898
|
135
|
-
siat-3.0.
|
136
|
-
siat-3.0.
|
137
|
-
siat-3.0.
|
138
|
-
siat-3.0.
|
135
|
+
siat-3.0.43.dist-info/METADATA,sha256=8x9wW6A3GWrxYLw-PKD4UfzcY4MPZby_RNo1socVEyw,1448
|
136
|
+
siat-3.0.43.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
137
|
+
siat-3.0.43.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
|
138
|
+
siat-3.0.43.dist-info/RECORD,,
|
File without changes
|
File without changes
|