siat 2.14.1__py3-none-any.whl → 3.0.0__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/allin.py +1 -0
- siat/assets_liquidity.py +16 -16
- siat/beta_adjustment.py +6 -6
- siat/beta_adjustment_china.py +9 -9
- siat/bond.py +71 -67
- siat/capm_beta.py +11 -11
- siat/capm_beta2.py +49 -23
- siat/common.py +451 -76
- siat/compare_cross.py +15 -82
- siat/exchange_bond_china.pickle +0 -0
- siat/fama_french.py +3 -3
- siat/financials.py +15 -15
- siat/financials2.py +8 -8
- siat/financials_china.py +20 -20
- siat/financials_china2.py +25 -25
- siat/fund_china.pickle +0 -0
- siat/fund_china.py +5 -4
- siat/grafix.py +197 -132
- siat/markowitz.py +6 -5
- siat/option_china.py +1 -1
- siat/option_pricing.py +6 -6
- siat/risk_adjusted_return.py +14 -14
- siat/risk_adjusted_return2.py +64 -42
- siat/risk_evaluation.py +32 -32
- siat/risk_free_rate.py +0 -0
- siat/sector_china.py +3 -195
- siat/security_price2.py +616 -0
- siat/security_prices.py +935 -308
- siat/security_trend2.py +28 -47
- siat/stock.py +225 -437
- siat/stock_china.py +19 -19
- siat/stock_info.pickle +0 -0
- siat/stock_technical.py +547 -144
- siat/transaction.py +3 -3
- siat/translate.py +781 -24
- siat/valuation.py +6 -6
- siat/var_model_validation.py +2 -2
- {siat-2.14.1.dist-info → siat-3.0.0.dist-info}/METADATA +1 -1
- {siat-2.14.1.dist-info → siat-3.0.0.dist-info}/RECORD +41 -40
- {siat-2.14.1.dist-info → siat-3.0.0.dist-info}/WHEEL +0 -0
- {siat-2.14.1.dist-info → siat-3.0.0.dist-info}/top_level.txt +0 -0
siat/financials_china2.py
CHANGED
@@ -212,7 +212,7 @@ def get_fin_stmt_ak_multi(tickers,fsdates):
|
|
212
212
|
df.rename(columns={'endDate_期初':'endDate_上期'},inplace=True)
|
213
213
|
|
214
214
|
#标注股票简称,去掉其中的(A股)字样
|
215
|
-
df["股票简称"]=df['ticker'].apply(lambda x:
|
215
|
+
df["股票简称"]=df['ticker'].apply(lambda x: ticker_name(x).replace("(A股)",''))
|
216
216
|
|
217
217
|
"""
|
218
218
|
# 替换nan为-
|
@@ -504,7 +504,7 @@ def fs_item_analysis_1(df,ticker,fsdate,items,title_txt='',notes=''):
|
|
504
504
|
|
505
505
|
#无序号打印
|
506
506
|
if title_txt=='':
|
507
|
-
ticker_name=
|
507
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
508
508
|
title_txt=ticker_name+"财报分析:重要项目的变动情况\n(截至"+fsdate+")"
|
509
509
|
import datetime; today=datetime.date.today()
|
510
510
|
#footnote="*单位:亿元,数据来源:新浪财经,"+str(today)
|
@@ -565,7 +565,7 @@ def fs_item_analysis_2(df,ticker,fsdates,items,title_txt='',notes=''):
|
|
565
565
|
|
566
566
|
#无序号打印
|
567
567
|
if title_txt=='':
|
568
|
-
ticker_name=
|
568
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
569
569
|
title_txt=ticker_name+"财报分析:重要项目占比的变动趋势"
|
570
570
|
import datetime; today=datetime.date.today()
|
571
571
|
footnote="*数据来源:新浪财经,"+str(today)
|
@@ -620,7 +620,7 @@ def fs_item_analysis_3(df,ticker,fsdates,title_txt='',notes=''):
|
|
620
620
|
|
621
621
|
#无序号打印
|
622
622
|
if title_txt=='':
|
623
|
-
ticker_name=
|
623
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
624
624
|
title_txt=ticker_name+"财报分析:流动比率的变动趋势"
|
625
625
|
import datetime; today=datetime.date.today()
|
626
626
|
footnote="*数据来源:新浪财经,"+str(today)
|
@@ -695,7 +695,7 @@ def fs_item_analysis_4(df,ticker,fsdates,title_txt='',notes=''):
|
|
695
695
|
|
696
696
|
#无序号打印
|
697
697
|
if title_txt=='':
|
698
|
-
ticker_name=
|
698
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
699
699
|
title_txt=ticker_name+"财报分析:速动比率的变动趋势"
|
700
700
|
import datetime; today=datetime.date.today()
|
701
701
|
footnote="*数据来源:新浪财经,"+str(today)
|
@@ -750,7 +750,7 @@ def fs_item_analysis_5(df,ticker,fsdates,title_txt='',notes=''):
|
|
750
750
|
|
751
751
|
#无序号打印
|
752
752
|
if title_txt=='':
|
753
|
-
ticker_name=
|
753
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
754
754
|
title_txt=ticker_name+"财报分析:资产负债率的变动趋势"
|
755
755
|
import datetime; today=datetime.date.today()
|
756
756
|
footnote="*数据来源:新浪财经,"+str(today)
|
@@ -811,7 +811,7 @@ def fs_item_analysis_6_original(df,ticker,fsdates,items,title_txt='',notes=''):
|
|
811
811
|
|
812
812
|
#无序号打印
|
813
813
|
if title_txt=='':
|
814
|
-
ticker_name=
|
814
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
815
815
|
title_txt=ticker_name+"财报分析:重要关联项目的增幅对比"
|
816
816
|
import datetime; today=datetime.date.today()
|
817
817
|
footnote="*数据来源:新浪财经,"+str(today)
|
@@ -870,7 +870,7 @@ def fs_item_analysis_6(df,ticker,fsdates,items,title_txt='',notes=''):
|
|
870
870
|
|
871
871
|
#无序号打印
|
872
872
|
if title_txt=='':
|
873
|
-
ticker_name=
|
873
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
874
874
|
title_txt=ticker_name+"财报分析:重要关联项目的增幅对比"
|
875
875
|
import datetime; today=datetime.date.today()
|
876
876
|
if yiyuan_foot:
|
@@ -919,7 +919,7 @@ def fs_item_analysis_7_original(df,tickers,fsdate,items,title_txt=''):
|
|
919
919
|
yiyuan_foot=False
|
920
920
|
|
921
921
|
for t in tickers:
|
922
|
-
tname=
|
922
|
+
tname=ticker_name(t).replace("(A股)",'')
|
923
923
|
row_list=[tname]
|
924
924
|
for i in items:
|
925
925
|
i_value,_,_=select_item(df,t,fsdate,i)
|
@@ -939,7 +939,7 @@ def fs_item_analysis_7_original(df,tickers,fsdate,items,title_txt=''):
|
|
939
939
|
if title_txt=='':
|
940
940
|
title_txt="=== 重要指标的同行业对比 ==="
|
941
941
|
ticker=tickers[0]
|
942
|
-
ticker_name=
|
942
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
943
943
|
title_txt=ticker_name+"财报分析:重要指标的同行业对比\n(截至"+fsdate+")"
|
944
944
|
import datetime; today=datetime.date.today()
|
945
945
|
if yiyuan_foot:
|
@@ -972,7 +972,7 @@ def fs_item_analysis_7(df,tickers,fsdate,items,title_txt='',notes=''):
|
|
972
972
|
yiyuan_foot=False
|
973
973
|
|
974
974
|
for t in tickers:
|
975
|
-
tname=
|
975
|
+
tname=ticker_name(t).replace("(A股)",'')
|
976
976
|
row_list=[tname]
|
977
977
|
for i in items:
|
978
978
|
i_value,_,_=select_item(df,t,fsdate,i)
|
@@ -1009,7 +1009,7 @@ def fs_item_analysis_7(df,tickers,fsdate,items,title_txt='',notes=''):
|
|
1009
1009
|
if title_txt=='':
|
1010
1010
|
title_txt="=== 重要指标的同行业对比 ==="
|
1011
1011
|
ticker=tickers[0]
|
1012
|
-
ticker_name=
|
1012
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
1013
1013
|
title_txt=ticker_name+"财报分析:重要指标的同行业对比\n(截至"+fsdate+")"
|
1014
1014
|
import datetime; today=datetime.date.today()
|
1015
1015
|
if yiyuan_foot:
|
@@ -1052,7 +1052,7 @@ def fs_item_analysis_8(df,tickers,fsdate,items,title_txt='',notes=''):
|
|
1052
1052
|
yiyuan_foot=False
|
1053
1053
|
|
1054
1054
|
for t in tickers:
|
1055
|
-
tname=
|
1055
|
+
tname=ticker_name(t).replace("(A股)",'')
|
1056
1056
|
row_list=[tname]
|
1057
1057
|
for i in items:
|
1058
1058
|
i_value,_,_=select_item(df,t,fsdate,i)
|
@@ -1088,7 +1088,7 @@ def fs_item_analysis_8(df,tickers,fsdate,items,title_txt='',notes=''):
|
|
1088
1088
|
#无序号打印
|
1089
1089
|
if title_txt=='':
|
1090
1090
|
ticker=tickers[0]
|
1091
|
-
ticker_name=
|
1091
|
+
ticker_name=ticker_name(ticker).replace("(A股)",'')
|
1092
1092
|
title_txt=ticker_name+"财报分析:重要指标的同行业对比\n(截至"+fsdate+")"
|
1093
1093
|
|
1094
1094
|
import datetime; today=datetime.date.today()
|
@@ -1156,11 +1156,11 @@ def asset_liab_structure_china(tickers,fsdates):
|
|
1156
1156
|
comparator=tickers[0]
|
1157
1157
|
comparee=tickers[1:]
|
1158
1158
|
print(" Conducting asset-liability analysis ...")
|
1159
|
-
print(" Comparator:",
|
1160
|
-
#print(" Comparee :",
|
1159
|
+
print(" Comparator:",ticker_name(comparator))
|
1160
|
+
#print(" Comparee :",ticker_name(comparee))
|
1161
1161
|
print(" Comparee :",end='')
|
1162
1162
|
if comparee != []:
|
1163
|
-
print_list(
|
1163
|
+
print_list(ticker_name(comparee))
|
1164
1164
|
else:
|
1165
1165
|
print(" N/A")
|
1166
1166
|
|
@@ -1196,7 +1196,7 @@ def asset_liab_structure_china(tickers,fsdates):
|
|
1196
1196
|
print(" Solution: check ticker spelling and try at least 10 minutes later")
|
1197
1197
|
return
|
1198
1198
|
|
1199
|
-
title_head=
|
1199
|
+
title_head=ticker_name(comparator)+"资产负债分析:"
|
1200
1200
|
|
1201
1201
|
### 资产负债表的主要项目
|
1202
1202
|
#资产变动趋势2
|
@@ -1357,11 +1357,11 @@ def income_cost_structure_china(tickers,fsdates):
|
|
1357
1357
|
comparator=tickers[0]
|
1358
1358
|
comparee=tickers[1:]
|
1359
1359
|
print(" Conducting income-cost analysis ...")
|
1360
|
-
print(" Comparator:",
|
1361
|
-
#print(" Comparee :",
|
1360
|
+
print(" Comparator:",ticker_name(comparator))
|
1361
|
+
#print(" Comparee :",ticker_name(comparee))
|
1362
1362
|
print(" Comparee :",end='')
|
1363
1363
|
if comparee != []:
|
1364
|
-
print_list(
|
1364
|
+
print_list(ticker_name(comparee))
|
1365
1365
|
else:
|
1366
1366
|
print(" N/A")
|
1367
1367
|
|
@@ -1378,7 +1378,7 @@ def income_cost_structure_china(tickers,fsdates):
|
|
1378
1378
|
#print(" Possible reasons: no access to data source or invalid tickers")
|
1379
1379
|
return
|
1380
1380
|
|
1381
|
-
title_head=
|
1381
|
+
title_head=ticker_name(comparator)+"收入成本分析:"
|
1382
1382
|
|
1383
1383
|
#收入成本总体变动趋势
|
1384
1384
|
title_txt=title_head+"主要项目及其变动趋势"
|
@@ -1535,10 +1535,10 @@ def cash_flow_structure_china(tickers,fsdates):
|
|
1535
1535
|
comparator=tickers[0]
|
1536
1536
|
comparee=tickers[1:]
|
1537
1537
|
print(" Conducting cash flow analysis ...")
|
1538
|
-
print(" Comparator:",
|
1538
|
+
print(" Comparator:",ticker_name(comparator))
|
1539
1539
|
print(" Comparee :",end='')
|
1540
1540
|
if comparee != []:
|
1541
|
-
print_list(
|
1541
|
+
print_list(ticker_name(comparee))
|
1542
1542
|
else:
|
1543
1543
|
print(" N/A")
|
1544
1544
|
|
@@ -1555,7 +1555,7 @@ def cash_flow_structure_china(tickers,fsdates):
|
|
1555
1555
|
#print(" Possible reasons: no access to data source or invalid tickers")
|
1556
1556
|
return
|
1557
1557
|
|
1558
|
-
title_head=
|
1558
|
+
title_head=ticker_name(comparator)+"现金流分析:"
|
1559
1559
|
|
1560
1560
|
#总体变动趋势
|
1561
1561
|
title_txt=title_head+"主要项目及其变动趋势"
|
siat/fund_china.pickle
CHANGED
Binary file
|
siat/fund_china.py
CHANGED
@@ -739,7 +739,8 @@ if __name__=='__main__':
|
|
739
739
|
zeroline=False
|
740
740
|
|
741
741
|
def oef_trend_china(fund,fromdate,todate,trend_type='净值', \
|
742
|
-
power=0,twinx=False,
|
742
|
+
power=0,twinx=False, \
|
743
|
+
loc1='upper left',loc2='lower left'):
|
743
744
|
"""
|
744
745
|
功能:开放式基金业绩趋势,单位净值,累计净值,近三个月收益率,同类排名,总排名
|
745
746
|
"""
|
@@ -769,16 +770,16 @@ def oef_trend_china(fund,fromdate,todate,trend_type='净值', \
|
|
769
770
|
source=texttranslate("数据来源:东方财富/天天基金")
|
770
771
|
|
771
772
|
fund1=fund[:6]
|
772
|
-
fund_name
|
773
|
+
fund_name=ticker_name(fund1,ticker_type)
|
773
774
|
|
774
775
|
#绘制单位/累计净值对比图
|
775
776
|
if trend_type == '净值':
|
776
|
-
df1 = ak.fund_open_fund_info_em(
|
777
|
+
df1 = ak.fund_open_fund_info_em(fund1, indicator="单位净值走势")
|
777
778
|
df1.rename(columns={'净值日期':'date','单位净值':'单位净值'}, inplace=True)
|
778
779
|
df1['日期']=df1['date']
|
779
780
|
df1.set_index(['date'],inplace=True)
|
780
781
|
|
781
|
-
df2 = ak.fund_open_fund_info_em(
|
782
|
+
df2 = ak.fund_open_fund_info_em(fund1, indicator="累计净值走势")
|
782
783
|
df2.rename(columns={'净值日期':'date','累计净值':'累计净值'}, inplace=True)
|
783
784
|
df2.set_index(['date'],inplace=True)
|
784
785
|
|