siat 3.5.9__py3-none-any.whl → 3.5.10__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/common.py CHANGED
@@ -4320,7 +4320,6 @@ def df_annual_return(df):
4320
4320
 
4321
4321
  #==============================================================================
4322
4322
 
4323
-
4324
4323
  if __name__ == '__main__':
4325
4324
  df=security_trend("600519.SS",graph=False)
4326
4325
  option="save"
@@ -4372,5 +4371,32 @@ def df_restore(file):
4372
4371
 
4373
4372
 
4374
4373
  #==============================================================================
4374
+ if __name__ == '__main__':
4375
+ df=security_trend("600519.SS",start="L5Y",graph=False)
4376
+ column='Close'
4377
+
4378
+ annual_compound_growth(df,"Close")
4379
+
4380
+ def annual_compound_growth(df,column="Close"):
4381
+ """
4382
+
4383
+ 功能:计算df[column]的简单年均复合增长率,假定df按照日期顺序升序排列
4384
+ """
4385
+ if not "Close" in list(df):
4386
+ print(" Sorry, column",column,"not found in the dataframe")
4387
+ return
4388
+
4389
+ day1=df.index[0]; day2=df.index[-1]
4390
+ days=days_between_dates(day1, day2)
4391
+
4392
+ years=days / 365
4393
+
4394
+ import numpy as np
4395
+ growth_rate=round((np.power(df[column][-1]/df[column][0],1/years)-1)*100,2)
4396
+ rate_str=str(growth_rate)+'%'
4397
+
4398
+ print("Annual compound growth rate:",rate_str)
4399
+
4400
+ return
4375
4401
  #==============================================================================
4376
4402
  #==============================================================================
siat/translate.py CHANGED
@@ -1112,15 +1112,17 @@ def codetranslate0(code):
1112
1112
  ['TRS5.UK','SPDR美债3-7年期ETF'],['TRSX.UK','SPDR美债7-10年期ETF'],
1113
1113
  ['LUTR.UK','SPDR美债10+年期ETF'],
1114
1114
 
1115
+ # 除了^FTW5000,其他的貌似缺数据
1115
1116
  ['^FTW5000','威尔希尔5000全市场指数'],
1116
-
1117
1117
  ['^W4500','威尔希尔4500指数'],
1118
1118
  ['^FTW2500','威尔希尔2500指数'],
1119
1119
  ['^FTWUSG','威尔希尔美国巨型公司指数'],['^FTWUSL','威尔希尔美国大型公司指数'],
1120
1120
  ['^FTWUSD','威尔希尔美国中型公司指数'],['^FTWUSS','威尔希尔美国小型公司指数'],
1121
1121
  ['^FTWUSO','威尔希尔美国微型公司指数'],
1122
1122
 
1123
- ['FVTT.FGI','富时越南指数'],['^RUT','罗素2000指数'],
1123
+ ['FVTT.FGI','富时越南指数'],['SWMCX','嘉信美国中盘股指数ETF'],
1124
+ ['^RUT','罗素2000指数'],['^RUI','罗素1000指数'],
1125
+
1124
1126
  ['^HSI','恒生指数'],['^N225','日经225指数'],
1125
1127
  ['WIKOR.FGI','富时韩国指数'],['^KS11','韩国综合指数'],
1126
1128
  ['^KOSPI','韩国综合指数'],
@@ -1949,7 +1951,8 @@ def codetranslate1(code):
1949
1951
  ['000019.SS','SSE Governance Index'],['000048.SS','SSE CSR Index'],
1950
1952
 
1951
1953
  ['899050.BJ','BSE50 Index'],['^SPX','Standard & Poor 500 Index'],
1952
- ['^RUT','Russell 2000 Index'],['^NKX','Nikkei 225 Index'],
1954
+ ['^RUT','Russell 2000 Index'],['^RUI','Russell 1000 Index'],
1955
+ ['^NKX','Nikkei 225 Index'],
1953
1956
  ['^NDQ','NASDAQ Composite Index'],['^NDX','NASDAQ 100 Index'],
1954
1957
  ['IBM','IBM Corp'],
1955
1958
 
@@ -2000,7 +2003,8 @@ def codetranslate1(code):
2000
2003
  ['^SNX','India SENSEX 30 Index'],['^FTM','UK FTSE 250 Index'],
2001
2004
  ['^KLCI','Kuala Lumpur Composite Index'],['^KLSE','Kuala Lumpur Composite Index'],
2002
2005
 
2003
- ['FVTT.FGI','FTSE Viernam Index'],['^RUT','Russell 2000 Index'],
2006
+ ['FVTT.FGI','FTSE Viernam Index'],
2007
+ ['^RUT','Russell 2000 Index'],['^RUI','Russell 1000 Index'],
2004
2008
  ['^HSI','Hang Seng Index'],['^N225','Nikkei 225 Index'],
2005
2009
  ['WIKOR.FGI','FTSE Korea Index'],['^KS11','Korea Composite Index'],
2006
2010
  ['^KOSPI','Korea Composite Index'],['^BSESN','SENSEX Index'],
siat/yf_name.py CHANGED
@@ -228,7 +228,9 @@ if __name__=='__main__':
228
228
  ticker='600777.ss'
229
229
  ticker='CPL.WA'
230
230
 
231
- yahoo_name2(ticker)
231
+ ticker='SWMCX'
232
+
233
+ yahoo_name1(ticker)
232
234
 
233
235
  #极端测试
234
236
  inamelist=[]
@@ -309,6 +311,8 @@ if __name__ == '__main__':
309
311
  stock_code='1155.KL'
310
312
  stock_code='MSFT'
311
313
 
314
+ stock_code='SWMCX'
315
+
312
316
  yahoo_name1_direct(stock_code)
313
317
 
314
318
 
@@ -322,6 +326,7 @@ def yahoo_name1_direct(stock_code,add_suffix=True):
322
326
  stock_code1=stock_code.upper()
323
327
 
324
328
  #抓取证券名称
329
+ # https://finance.yahoo.com/quote/SWMCX/
325
330
  url = f"https://finance.yahoo.com/quote/{stock_code1}/"
326
331
  response = requests.get(url)
327
332
  if response.status_code == 200:
@@ -345,6 +350,7 @@ def yahoo_name1_direct(stock_code,add_suffix=True):
345
350
  if __name__=='__main__':
346
351
  original_name='Oponeo.pl SA'
347
352
  original_name='Apple Inc'
353
+ original_name='Schwab US Mid-Cap Index'
348
354
 
349
355
  filter_stock_name(original_name)
350
356
 
@@ -352,6 +358,10 @@ def filter_stock_name(original_name):
352
358
  """
353
359
  功能:过滤从网站上抓取到的证券名称,去掉尾部的公司类别词汇,缩短长度,便于显示
354
360
  """
361
+
362
+ #将字符串中的多个空格变为单个空格
363
+ original_name=replace_multiple_spaces(original_name)
364
+
355
365
  #定义需要去掉的单词,注意顺序不要轻易颠倒!子串包含的,要长文在前!前置留空格的为避免误删
356
366
  remove_list=[' CORPORATION',' BERHAD',' BHD',' PLC',' INC',' AG ST',' NA O N', \
357
367
  ' AKTIENGESELLSCHAFT','(PUBL)',' LLC', \
@@ -363,13 +373,11 @@ def filter_stock_name(original_name):
363
373
 
364
374
  #去掉逗号和句点
365
375
  name1=original_name.replace(',',' ')
376
+ name1=name1.replace(' ',' ')
366
377
  name2=name1.replace('.',' ')
367
378
 
368
- #将字符串中的多个空格变为单个空格
369
- name3=replace_multiple_spaces(name2)
370
-
371
379
  #将字符串字母全部大写
372
- name4=name3.upper()
380
+ name4=name2.upper()
373
381
 
374
382
  name5=name4
375
383
  for ss in remove_list:
@@ -377,7 +385,7 @@ def filter_stock_name(original_name):
377
385
 
378
386
  name6=name5.strip()
379
387
 
380
- name7=original_name[:len(name6)]
388
+ name7=original_name[:len(name6)+1]
381
389
 
382
390
  shorter_name=name7
383
391
  return shorter_name
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 3.5.9
3
+ Version: 3.5.10
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
@@ -18,7 +18,7 @@ siat/capm_beta.py,sha256=cxXdRVBQBllhbfz1LeTJAIWvyRYhW54nhtNUXv4HwS0,29063
18
18
  siat/capm_beta2.py,sha256=lUuCPVSxebkA2yye1PXu1V2Jd2UKEwD_kIA25DCIDTs,29750
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=PFo30Yu2Vua1GEr02joJj-Wej-e47dAAqwCAVHjj40A,159050
21
+ siat/common.py,sha256=fWeaJYg9sb_cvX_VDLlz_0ph3cXhnoTMd_R8UyArGTY,159842
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
@@ -131,7 +131,7 @@ siat/transaction_test.py,sha256=Z8g1LJCN4-mnUByXMUMoFmN0t105cbmsz2QmvSuIkbU,1858
131
131
  siat/translate-20230125.py,sha256=NPPSXhT38s5t9fzMvl_fvi4ckSB73ThLmZetVI-xGdU,117953
132
132
  siat/translate-20230206.py,sha256=-vtI125WyaJhmPotOpDAmclt_XnYVaWU9ByLWZ6FyYE,118133
133
133
  siat/translate-20230215.py,sha256=TJgtPE3n8IjljmZ4Pefy8dmHoNdFF-1zpML6BhA9FKE,121657
134
- siat/translate.py,sha256=12-Qx2sqwANobFsh2k5qyE_idjHs0j2g5cTlh9by7co,240806
134
+ siat/translate.py,sha256=F_lG6sDPqXNNGGMUuJG5sKlbT5rHg-MbJv9Gj0Z78bg,241020
135
135
  siat/translate_20240606.py,sha256=63IyHWEU3Uz9mjwyuAX3fqY4nUMdwh0ICQAgmgPXP7Y,215121
136
136
  siat/translate_241003_keep.py,sha256=un7Fqe1v35MXsja5exZgjmLzrZtt66NARZIGlyFuGGU,218747
137
137
  siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
@@ -139,9 +139,9 @@ siat/valuation.py,sha256=WCqL5zYkZ_Y3MLeoWXTu3G1CknwGdYzhpszbT6cEoYk,49255
139
139
  siat/valuation_china.py,sha256=CVp1IwIsF3Om0J29RGkyxZLt4n9Ug-ua_RKhLwL9fUQ,69624
140
140
  siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
141
141
  siat/var_model_validation.py,sha256=R0caWnuZarrRg9939hxh3vJIIpIyPfvelYmzFNZtPbo,14910
142
- siat/yf_name.py,sha256=9U_XfEeMlS3TrCrO3Bww21nuFgghbnO-cqDJMhQWqew,16193
143
- siat-3.5.9.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
144
- siat-3.5.9.dist-info/METADATA,sha256=oEnRGAyy2ZxYebqnrDoiTgQE0OIEmVyc8kAtcOSExkA,8009
145
- siat-3.5.9.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
146
- siat-3.5.9.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
147
- siat-3.5.9.dist-info/RECORD,,
142
+ siat/yf_name.py,sha256=b4nefqEEbbinCEJ60_EysDCF9JZRott3wwclosZdrH8,16404
143
+ siat-3.5.10.dist-info/LICENSE,sha256=NTEMMROY9_4U1szoKC3N2BLHcDd_o5uTgqdVH8tbApw,1071
144
+ siat-3.5.10.dist-info/METADATA,sha256=VhLy7oNbXKyaSoco22mVNFWrHWnlE5sihNkMIZgU9Mk,8010
145
+ siat-3.5.10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
146
+ siat-3.5.10.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
147
+ siat-3.5.10.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes