siat 3.7.6__py3-none-any.whl → 3.7.8__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/markowitz2.py CHANGED
@@ -961,27 +961,27 @@ def portfolio_ranks_cn(portfolio_returns,pname,facecolor='papayawhip'):
961
961
  "风险排名":text_lang("风险排名","Risk#"), \
962
962
  "年化标准差%":text_lang("年化标准差%","pa Std%"), \
963
963
  "标准差变化":text_lang("标准差变化","Std%+/-"), \
964
- "收益率/标准差":text_lang("收益率/标准差","Return/Std")}, \
964
+ "收益率/标准差":text_lang("收益/风险性价比","Return/Std")}, \
965
965
  inplace=True)
966
966
 
967
967
  #重新排名:相同的值赋予相同的序号
968
- prr2["pa Return%"]=prr2["pa Return%"].apply(lambda x: round(float(x),ndecimals))
969
- prr2["Return#"]=prr2["pa Return%"].rank(ascending=False,method='dense')
970
- prr2["Return#"]=prr2["Return#"].apply(lambda x: int(x))
968
+ prr2[text_lang("年化收益率%","pa Return%")]=prr2[text_lang("年化收益率%","pa Return%")].apply(lambda x: round(float(x),ndecimals))
969
+ prr2[text_lang("收益排名","Return#")]=prr2[text_lang("年化收益率%","pa Return%")].rank(ascending=False,method='dense')
970
+ prr2[text_lang("收益排名","Return#")]=prr2[text_lang("收益排名","Return#")].apply(lambda x: int(x))
971
971
 
972
- prr2["pa Std%"]=prr2["pa Std%"].apply(lambda x: round(float(x),ndecimals))
973
- prr2["Risk#"]=prr2["pa Std%"].rank(ascending=False,method='dense')
974
- prr2["Risk#"]=prr2["Risk#"].apply(lambda x: int(x))
972
+ prr2[text_lang("年化标准差%","pa Std%")]=prr2[text_lang("年化标准差%","pa Std%")].apply(lambda x: round(float(x),ndecimals))
973
+ prr2[text_lang("风险排名","Risk#")]=prr2[text_lang("年化标准差%","pa Std%")].rank(ascending=False,method='dense')
974
+ prr2[text_lang("风险排名","Risk#")]=prr2[text_lang("风险排名","Risk#")].apply(lambda x: int(x))
975
975
 
976
- prr2["Return/Std"]=prr2["Return/Std"].apply(lambda x: round(float(x),ndecimals))
977
- prr2["Ret/Std#"]=prr2["Return/Std"].rank(ascending=False,method='dense')
978
- prr2["Ret/Std#"]=prr2["Ret/Std#"].apply(lambda x: int(x))
976
+ prr2[text_lang("收益/风险性价比","Return/Std")]=prr2[text_lang("收益/风险性价比","Return/Std")].apply(lambda x: round(float(x),ndecimals))
977
+ prr2[text_lang("性价比排名","Ret/Std#")]=prr2[text_lang("收益/风险性价比","Return/Std")].rank(ascending=False,method='dense')
978
+ prr2[text_lang("性价比排名","Ret/Std#")]=prr2[text_lang("性价比排名","Ret/Std#")].apply(lambda x: int(x))
979
979
 
980
980
  df_display_CSS(prr2,titletxt=titletxt,footnote='',facecolor='papayawhip',decimals=ndecimals, \
981
981
  first_col_align='left',second_col_align='center', \
982
982
  last_col_align='center',other_col_align='center', \
983
- titile_font_size='15px',heading_font_size='14px', \
984
- data_font_size='14px')
983
+ titile_font_size='15px',heading_font_size='13px', \
984
+ data_font_size='13px')
985
985
 
986
986
  """
987
987
  print(' ') #空一行
siat/security_prices.py CHANGED
@@ -2211,8 +2211,16 @@ if __name__ =="__main__":
2211
2211
  portfolio={'Market':('US','^GSPC'),'AAPL':1}
2212
2212
  portfolio={'Market':('China','^HSI'),'0823.HK':1.0}
2213
2213
  portfolio={'Market':('China','000001.SS'),'000661.SZ':2,'603392.SS':3,'300601.SZ':4}
2214
+
2214
2215
  fromdate='2019-7-19'
2215
2216
  todate='2020-7-20'
2217
+
2218
+ market={"Market":("China","000300.SS","我的地产组合")}
2219
+ stocks1={"600048.SS":.4,"001979":.3}
2220
+ stocks2={"600515.SS":.2,"600895":.1}
2221
+ portfolio=dict(market,**stocks1,**stocks2)
2222
+
2223
+ fromdate="2024-1-1"; todate="2024-11-25"
2216
2224
  adj=False
2217
2225
  source='auto'
2218
2226
 
siat/stock.py CHANGED
@@ -2654,10 +2654,10 @@ def stock_dividend(ticker,start="L3Y",end="today",facecolor='whitesmoke',fontcol
2654
2654
  try:
2655
2655
  div=stock.dividends
2656
2656
  except:
2657
- print(" #Error(stock_dividend): no div info found for",ticker)
2657
+ print(" #Error(stock_dividend): no dividend information found for",ticker)
2658
2658
  return None
2659
2659
  if len(div)==0:
2660
- print(" #Warning(stock_dividend): no div info found for",ticker)
2660
+ print(" #Warning(stock_dividend): no dividend information found for",ticker)
2661
2661
  return None
2662
2662
 
2663
2663
  # 去掉时区信息,避免合并中的日期时区冲突问题
@@ -2795,10 +2795,10 @@ def stock_split(ticker,start="L10Y",end="today",facecolor='whitesmoke',fontcolor
2795
2795
  try:
2796
2796
  div=stock.splits
2797
2797
  except:
2798
- print(" #Error(stock_split): no split info found for",ticker)
2798
+ print(" #Error(stock_split): no split information found for",ticker)
2799
2799
  return None
2800
2800
  if len(div)==0:
2801
- print(" #Warning(stock_split): no split info found for",ticker)
2801
+ print(" #Warning(stock_split): no split information found for",ticker)
2802
2802
  return None
2803
2803
 
2804
2804
  # 去掉时区信息,避免合并中的日期时区冲突问题
@@ -2810,7 +2810,7 @@ def stock_split(ticker,start="L10Y",end="today",facecolor='whitesmoke',fontcolor
2810
2810
  div1=div[div.index >= startdt]
2811
2811
  div2=div1[div1.index <= enddt]
2812
2812
  if len(div2)==0:
2813
- print(" #Warning(stock_split): no split info in period",fromdate,todate)
2813
+ print(" #Warning(stock_split): no split information in period",fromdate,todate)
2814
2814
  return None
2815
2815
 
2816
2816
  #对齐打印
siat/valuation.py CHANGED
@@ -1177,9 +1177,10 @@ def security_valuation(tickers,indicators,start,end, \
1177
1177
 
1178
1178
  #==============================================================================
1179
1179
  if __name__=='__main__':
1180
- df=security_trend(baijiu_stocks,indicator='PE',start='MRY',graph=False)
1180
+ bank_big=find_peers_china('国有大型银行Ⅱ',top=25)
1181
+ df=security_trend(bank_big,indicator='PE',start='MRY',graph=False)
1181
1182
  indicator='PE'
1182
- base=''
1183
+ base='601398.SS'
1183
1184
 
1184
1185
 
1185
1186
  def print_valuation(df,indicator='PE',base='',facecolor='whitesmoke'):
@@ -1189,14 +1190,15 @@ def print_valuation(df,indicator='PE',base='',facecolor='whitesmoke'):
1189
1190
  try:
1190
1191
  df1=df[indicator]
1191
1192
  except:
1192
- print(" #Warning: current dataframe does not support indicator",indicator)
1193
+ print(f" #Warning(print_valuation): unsupported indicator {indicator} in current dataframe")
1193
1194
  return
1194
1195
 
1195
1196
  collist=list(df1)
1196
1197
  base=base.upper()
1198
+ base=ticker_name(base)
1197
1199
  if not (base in collist):
1198
1200
  """
1199
- print(" #Warning: invalid item",base,"for current dataframe")
1201
+ print(" #Warning(print_valuation): invalid item",base,"for current dataframe")
1200
1202
  print(" Valid items in current dataframe:\n",collist)
1201
1203
  return
1202
1204
  """
@@ -1256,7 +1258,8 @@ def print_valuation(df,indicator='PE',base='',facecolor='whitesmoke'):
1256
1258
  #df4=df3[['序号','证券名称',col_mean,col_mean_rel,'均值对比',col_latest_date,col_latest_rel,'对比@'+col_latest_date]]
1257
1259
  df4=df3[['证券名称',col_mean,'均值排名',col_latest_date,'排名@'+col_latest_date,col_mean_rel,col_latest_rel,'均值对比','对比@'+col_latest_date]]
1258
1260
 
1259
- titletxt="*** 估值对比:"+indicator+",降序排列"
1261
+ #titletxt="估值对比:"+ectranslate(indicator)+",降序排列"
1262
+ titletxt="估值对比:{0}({1}),降序排列".format(ectranslate(indicator),indicator)
1260
1263
  """
1261
1264
  print("\n",titletxt,'\n')
1262
1265
  alignlist=['left','right','center','right','center']+['right']*(len(list(df4))-5)
@@ -1273,16 +1276,17 @@ def print_valuation(df,indicator='PE',base='',facecolor='whitesmoke'):
1273
1276
  #设置列数值对齐
1274
1277
  dispf=dispt.set_properties(**{'text-align':'center'})
1275
1278
  #设置前景背景颜色
1276
- dispf2=dispf.set_properties(**{'background-color':facecolor,'color':fontcolor})
1279
+ #dispf2=dispf.set_properties(**{'background-color':facecolor,'color':fontcolor})
1280
+ dispf2=dispf.set_properties(**{'background-color':facecolor})
1277
1281
 
1278
1282
  from IPython.display import display
1279
1283
  display(dispf2)
1280
1284
 
1281
- print(" ")
1285
+ #print(" ")
1282
1286
  if diff > 0:
1283
1287
  print("【注】未列出"+str(diff)+"只估值为非正数的证券:"+str(diff_list))
1284
1288
  import datetime; todaydt = datetime.date.today()
1285
- footnote="*** 期间:"+col_start_date+"至"+col_latest_date+"。数据来源: baidu/stooq/funddb/swhysc,"+str(todaydt)
1289
+ footnote="估值期间:"+col_start_date+"至"+col_latest_date+",数据来源: baidu/stooq/funddb/swhysc,"+str(todaydt)
1286
1290
  print(footnote)
1287
1291
 
1288
1292
  return
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 3.7.6
3
+ Version: 3.7.8
4
4
  Summary: Securities Investment Analysis Tools (siat)
5
5
  Home-page: https://pypi.org/project/siat/
6
6
  Author: Prof. WANG Dehong, International Business School, Beijing Foreign Studies University
@@ -1,6 +1,6 @@
1
1
  siat/__init__ -20240701.py,sha256=gP5uajXnJesnH5SL0ZPwq_Qhv59AG1bs4qwZv26Fo2Y,2894
2
- siat/__init__.py,sha256=sJP_LlLfNAssg5ZCPxxkVMi2v6h5x3WcSco3KBN5CsE,2040
3
- siat/allin.py,sha256=JLuxVmxtlOTDelnfulK6rPoFTIhzTNe5_GShXCiKGZY,2904
2
+ siat/__init__.py,sha256=pIo4CV3lNPKIhitmhIh_6aAfZrmzQWGNDcEnvZ7GXoc,3216
3
+ siat/allin.py,sha256=x1QC29PUBUYiA6IAbQKbRvtxIEUOBx8dy5k7zh1ABT4,2970
4
4
  siat/alpha_vantage_test.py,sha256=tKr-vmuFH3CZAqwmISz6jzjPHzV1JJl3sPfZdz8aTfM,747
5
5
  siat/assets_liquidity.py,sha256=o_UZdLs693uNWPEQB2OzxDH0mdWimOmq4qe_vx1pue0,28987
6
6
  siat/assets_liquidity_test.py,sha256=UWk6HIUlizU7LQZ890fGx8LwU1jMMrIZswg8cFUJWZ8,1285
@@ -18,7 +18,7 @@ siat/capm_beta.py,sha256=cxXdRVBQBllhbfz1LeTJAIWvyRYhW54nhtNUXv4HwS0,29063
18
18
  siat/capm_beta2.py,sha256=-ZYYp1HK7SkfTR3vBKZ0QVC4Q_tbST2O4MGbX_V77J0,32031
19
19
  siat/capm_beta_test.py,sha256=ImR0c5mc4hIl714XmHztdl7qg8v1E2lycKyiqnFj6qs,1745
20
20
  siat/cmat_commons.py,sha256=Nj9Kf0alywaztVoMVeVVL_EZk5jRERJy8R8kBw88_Tg,38116
21
- siat/common.py,sha256=08Gb287rbVIAFdLilHPg3DJHLCCIhM95rJ-zhuZpudc,164861
21
+ siat/common.py,sha256=crRasPR7t5G1t95hm9JWmIob9d-iYASA4GEW5bKVhWw,173203
22
22
  siat/compare_cross.py,sha256=3iP9TH2h3w27F2ARZc7FjKcErYCzWRc-TPiymOyoVtw,24171
23
23
  siat/compare_cross_test.py,sha256=xra5XYmQGEtfIZL2h-GssdH2hLdFIhG3eoCrkDrL3gY,3473
24
24
  siat/concepts_iwencai.py,sha256=m1YEDtECRT6FqtzlKm91pt2I9d3Z_XoP59BtWdRdu8I,3061
@@ -36,6 +36,7 @@ siat/event_study.py,sha256=Q_AdnJzxxL6udCjn5LP6rdhOngsDRWPu5udFkK1CJZw,32223
36
36
  siat/exchange_bond_china.pickle,sha256=zDqdPrFacQ0nqjP_SuF6Yy87EgijIRsFvFroW7FAYYY,1265092
37
37
  siat/fama_french.py,sha256=aUTC-67t_CEPbLk4u79woW_zfZ7OCP6Fo4z5EdWCSkQ,48051
38
38
  siat/fama_french_test.py,sha256=M4O23lBKsJxhWHRluwCb3l7HSEn3OFTjzGMpehcevRg,4678
39
+ siat/fin_stmt2_yahoo.py,sha256=q4oNv-Wc30Kyuq_lRB0ZMINd33pusxQ3H2BecoFATqo,34297
39
40
  siat/financial_base.py,sha256=5u298_1OSlgLnDmhXxqvo4WgMM0JKSa_4jBYF-Ilx38,41097
40
41
  siat/financial_statements.py,sha256=xx0SMpFqAMKm6cj8uYeG2RpJE6G-RoJ3NWa33UyaVMk,25414
41
42
  siat/financial_statements_test.py,sha256=FLhx8JD-tVVWSBGux6AMz1jioXX4U4bp9DmgFHYXb_w,716
@@ -70,7 +71,7 @@ siat/luchy_draw.py,sha256=8Ue-NKnvSVqINPY1eXat0NJat5MR-gex_K62aOYFdmA,20486
70
71
  siat/market_china.py,sha256=fQjAFyu4JAqtVA8I1QYfzv0fmYhLP3zoNe5Ftk63qgM,50724
71
72
  siat/markowitz.py,sha256=DsfS6vG9TAfdJP4GgN-CCArujPi84XjD23CWbxaA2o4,97627
72
73
  siat/markowitz2-20240620.py,sha256=irZAPnjaatFsKQmFRMENP-cO6bEUl2narYtkU5NKTWI,108019
73
- siat/markowitz2.py,sha256=LK2pDEtE5PUmBtCHmCcRs8FlPqZKmhFXiuLIL4JeQa8,121991
74
+ siat/markowitz2.py,sha256=s7-E43VskzSsPpZXQVBe3VTR1AM81EDIn_uVZn3mLpw,122525
74
75
  siat/markowitz_ccb_test.py,sha256=xBkkoaNHdq9KSUrNuHGgKTdNYUvgi84kNYcf719eoyE,1593
75
76
  siat/markowitz_ef_test.py,sha256=wjNlICkgRIqnonPeSIHo4Mu2GRtb9dr21wDt2kMNEcI,4032
76
77
  siat/markowitz_old.py,sha256=Lf7O_4QWT8RsdkHiUyc_7kKY3eZjKDtFR89Fz3pwYnY,33046
@@ -99,14 +100,14 @@ siat/sector_china.py,sha256=Mxx5Zd5qvhLdwutedwoPRoXlAopTsPww4rRhOgpRmb8,150762
99
100
  siat/sector_china_test.py,sha256=1wq7ef8Bb_L8F0h0W6FvyBrIcBTEbrTV7hljtpj49U4,5843
100
101
  siat/security_price.py,sha256=2oHskgiw41KMGfqtnA0i2YjNNV6cYgtlUK0j3YeuXWs,29185
101
102
  siat/security_price2.py,sha256=FkX-EeqS5Gqm2kIKnDqrqSk_nvG3BbL3Eu4eEmw1OEY,26379
102
- siat/security_prices.py,sha256=Zhn6pvwLy996mbBHDorbqWQdQw9RHdr9m0yzke3ya8M,108597
103
+ siat/security_prices.py,sha256=i_4ZA7sRb9gMRVOgTT-XxQ1Jrz9eHDjZznsoXPDhh0Y,108859
103
104
  siat/security_prices_test.py,sha256=OEphoJ87NPKoNow1QA8EU_5MUYrJF-qKoWKNapVfZNI,10779
104
105
  siat/security_trend.py,sha256=o0vpWdrJkmODCP94X-Bvn-w7efHhj9HpUYBHtLl55D0,17240
105
106
  siat/security_trend2-20240620.py,sha256=QVnEcb7AyVbO77jVqfFsJffGXrX8pgJ9xCfoAKmWBPk,24854
106
107
  siat/security_trend2.py,sha256=mamJtFAbXC1orGgMEmp0taPk-yUqWm-jdGf64bjhn2Q,29756
107
108
  siat/setup.py,sha256=up65rQGLmTBkhtaMLowjoQXYmIsnycnm4g1SYmeQS6o,1335
108
109
  siat/shenwan index history test.py,sha256=JCVAzOSEldHalhSFa3pqD8JI_8_djPMQOxpkuYU-Esg,1418
109
- siat/stock.py,sha256=Eq8dVs9CxT1vS1BEsFQ4xCff3aXBucbT5OPW-WidNcA,158613
110
+ siat/stock.py,sha256=AO_ntNoinjXpzzs4eA1iMlsqGFoN1KvgHV6Z_ECVy-M,158658
110
111
  siat/stock_advice_linear.py,sha256=-twT7IGP-NEplkL1WPSACcNJjggRB2j4mlAQCkzOAuo,31655
111
112
  siat/stock_base.py,sha256=uISvbRyOGy8p9QREA96CVydgflBkn5L3OXOGKl8oanc,1312
112
113
  siat/stock_china.py,sha256=vm_BslG0gJm4R0-O5bNtENkMMfDP-u1TYKCKzLH9Nkk,93460
@@ -136,13 +137,13 @@ siat/translate.py,sha256=aAWk9museEsdxDstXjEy_SXiEzvKD_6fDi0W4TrBiwI,241364
136
137
  siat/translate_20240606.py,sha256=63IyHWEU3Uz9mjwyuAX3fqY4nUMdwh0ICQAgmgPXP7Y,215121
137
138
  siat/translate_241003_keep.py,sha256=un7Fqe1v35MXsja5exZgjmLzrZtt66NARZIGlyFuGGU,218747
138
139
  siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
139
- siat/valuation.py,sha256=o5FsEBkYGCgyEg2m9oF3_KdTzUxPIsEeJCYtsTDZ8OE,50514
140
+ siat/valuation.py,sha256=DF-THR8AOPFtbMG58g9coqrfnzeBIhX3PW7ZhU6WbEo,50821
140
141
  siat/valuation_china.py,sha256=CVp1IwIsF3Om0J29RGkyxZLt4n9Ug-ua_RKhLwL9fUQ,69624
141
142
  siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
142
143
  siat/var_model_validation.py,sha256=R0caWnuZarrRg9939hxh3vJIIpIyPfvelYmzFNZtPbo,14910
143
144
  siat/yf_name.py,sha256=r0Q67cSMMlfebEkI9h9pdGlJCooEq7hw_3M5IUs4cSI,20081
144
- siat-3.7.6.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
145
- siat-3.7.6.dist-info/METADATA,sha256=VBhwM1YCtzZwZbd51whrNXU_MA7CNw_-4bi2xzjDo5k,8009
146
- siat-3.7.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
147
- siat-3.7.6.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
148
- siat-3.7.6.dist-info/RECORD,,
145
+ siat-3.7.8.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
146
+ siat-3.7.8.dist-info/METADATA,sha256=eDkDeMALXeeUIhn3YcgdI7vzLy2P4qCAR8ErzLuv5p4,8009
147
+ siat-3.7.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
148
+ siat-3.7.8.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
149
+ siat-3.7.8.dist-info/RECORD,,
File without changes
File without changes