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 +27 -1
- siat/translate.py +8 -4
- siat/yf_name.py +14 -6
- {siat-3.5.9.dist-info → siat-3.5.10.dist-info}/METADATA +1 -1
- {siat-3.5.9.dist-info → siat-3.5.10.dist-info}/RECORD +8 -8
- {siat-3.5.9.dist-info → siat-3.5.10.dist-info}/WHEEL +1 -1
- {siat-3.5.9.dist-info → siat-3.5.10.dist-info}/LICENSE +0 -0
- {siat-3.5.9.dist-info → siat-3.5.10.dist-info}/top_level.txt +0 -0
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','富时越南指数'],['
|
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'],['^
|
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'],
|
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
|
-
|
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=
|
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
|
@@ -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=
|
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=
|
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=
|
143
|
-
siat-3.5.
|
144
|
-
siat-3.5.
|
145
|
-
siat-3.5.
|
146
|
-
siat-3.5.
|
147
|
-
siat-3.5.
|
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,,
|
File without changes
|
File without changes
|