siat 3.10.125__py3-none-any.whl → 3.10.126__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.
Files changed (87) hide show
  1. siat/common.py +106 -2
  2. siat/exchange_bond_china.pickle +0 -0
  3. siat/fund_china.pickle +0 -0
  4. siat/stock.py +10 -2
  5. siat/stock_info.pickle +0 -0
  6. {siat-3.10.125.dist-info → siat-3.10.126.dist-info}/METADATA +234 -226
  7. siat-3.10.126.dist-info/RECORD +76 -0
  8. {siat-3.10.125.dist-info → siat-3.10.126.dist-info}/WHEEL +1 -1
  9. {siat-3.10.125.dist-info → siat-3.10.126.dist-info/licenses}/LICENSE +0 -0
  10. {siat-3.10.125.dist-info → siat-3.10.126.dist-info}/top_level.txt +0 -0
  11. siat/__init__ -20240701.py +0 -65
  12. siat/__init__.py.backup_20250214.py +0 -73
  13. siat/alpha_vantage_test.py +0 -24
  14. siat/assets_liquidity_test.py +0 -44
  15. siat/barrons_scraping_test.py +0 -276
  16. siat/beta_adjustment_test.py +0 -77
  17. siat/bond_test.py +0 -142
  18. siat/capm_beta_test.py +0 -49
  19. siat/cmat_commons.py +0 -961
  20. siat/compare_cross_test.py +0 -117
  21. siat/concepts_iwencai.py +0 -86
  22. siat/concepts_kpl.py +0 -93
  23. siat/cryptocurrency_test.py +0 -71
  24. siat/derivative.py +0 -1111
  25. siat/economy-20230125.py +0 -1206
  26. siat/economy_test.py +0 -360
  27. siat/esg_test.py +0 -63
  28. siat/fama_french_test.py +0 -115
  29. siat/financial_statements_test.py +0 -31
  30. siat/financials2 - /321/205/320/231/320/277/321/206/320/254/320/274.py" +0 -341
  31. siat/financials_china2_test.py +0 -67
  32. siat/financials_china2_test2.py +0 -88
  33. siat/financials_china2_test3.py +0 -87
  34. siat/financials_china_test.py +0 -475
  35. siat/financials_china_test2.py +0 -197
  36. siat/financials_china_test2_fin_indicator.py +0 -197
  37. siat/financials_test.py +0 -713
  38. siat/fred_test.py +0 -40
  39. siat/fund_china_test.py +0 -175
  40. siat/fund_test.py +0 -40
  41. siat/future_china_test.py +0 -37
  42. siat/global_index_test.py +0 -66
  43. siat/grafix_test.py +0 -112
  44. siat/holding_risk_test.py +0 -13
  45. siat/local_debug_test.py +0 -100
  46. siat/markowitz2-20240620.py +0 -2614
  47. siat/markowitz_ccb_test.py +0 -37
  48. siat/markowitz_ef_test.py +0 -136
  49. siat/markowitz_old.py +0 -871
  50. siat/markowitz_simple-20230709.py +0 -370
  51. siat/markowitz_test.py +0 -164
  52. siat/markowitz_test2.py +0 -69
  53. siat/ml_cases_example1.py +0 -60
  54. siat/option_china_test.py +0 -447
  55. siat/option_pricing_test.py +0 -81
  56. siat/option_sina_api_test.py +0 -112
  57. siat/proxy_test.py +0 -84
  58. siat/quandl_test.py +0 -39
  59. siat/risk_adjusted_return_test.py +0 -81
  60. siat/risk_evaluation_test.py +0 -96
  61. siat/risk_free_rate_test.py +0 -127
  62. siat/sector_china_test.py +0 -203
  63. siat/security_price.py +0 -831
  64. siat/security_prices_test.py +0 -310
  65. siat/security_trend2-20240620.py +0 -493
  66. siat/setup.py +0 -41
  67. siat/shenwan index history test.py +0 -41
  68. siat/stock_china_test.py +0 -38
  69. siat/stock_info_test.py +0 -189
  70. siat/stock_list_china_test.py +0 -33
  71. siat/stock_technical-20240620.py +0 -2736
  72. siat/stock_test.py +0 -487
  73. siat/temp.py +0 -36
  74. siat/test2_graphviz.py +0 -484
  75. siat/test_graphviz.py +0 -411
  76. siat/test_markowitz_simple.py +0 -198
  77. siat/test_markowitz_simple_revised.py +0 -215
  78. siat/test_markowitz_simple_revised2.py +0 -218
  79. siat/transaction_test.py +0 -436
  80. siat/translate-20230125.py +0 -2107
  81. siat/translate-20230206.py +0 -2109
  82. siat/translate-20230215.py +0 -2158
  83. siat/translate_20240606.py +0 -4206
  84. siat/translate_241003_keep.py +0 -4300
  85. siat/universal_test.py +0 -100
  86. siat/valuation_market_china_test.py +0 -36
  87. siat-3.10.125.dist-info/RECORD +0 -152
siat/financials_test.py DELETED
@@ -1,713 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- import os; os.chdir("S:/siat")
4
- from siat import *
5
-
6
- #==============================================================================
7
-
8
- # Step 1. Define current portfolio: stock market
9
-
10
- Market={'Market':('China','000001.SS','MyPortfolio')}
11
-
12
- # Step 2. Define current portfolio: stocks and weights of shares
13
-
14
- Stocks={'600519.SS':0.4,'000858.SZ':0.2,'000596.SZ':0.1,'600779.SS':0.1,'603589.SS':0.08,'000568.SZ':0.08,'000799.SZ':0.02,'600809.SS':0.02}
15
-
16
- # Step 3. Construct current portfolio
17
-
18
- portfolio=dict(Market,**Stocks)
19
-
20
-
21
- # Step 5. Compare with EW and OMCap strategies.
22
- # Suppose today is 2021-7-7, using data of recent 1 year.
23
-
24
- #pf_info=portfolio_cumret(portfolio,'2021-7-7',pastyears=1)
25
- pf_info=portfolio_hpr(portfolio,'2021-7-7',pastyears=1)
26
-
27
- # Step 6. Construct efficient set (Monte Carlo simulation)
28
- es_info=portfolio_es(pf_info,simulation=50000)
29
-
30
- # Step 7. Construct MSR and GMVS strategies
31
- sharpe=portfolio_optimize_strategy(pf_info,ratio='sharpe',simulation=50000)
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
- #==============================================================================
75
-
76
- tickers=['AMZN','EBAY','SHOP','MELI','BABA','JD','VIPS','PDD']
77
- roa=compare_snapshot(tickers,'ROA',axisamp=1.2)
78
-
79
- tat=compare_history(['PDD','JD'],'Total Asset Turnover')
80
-
81
- roa=compare_snapshot(tickers, 'Cashflow per Share',axisamp=1.3)
82
-
83
- cr=compare_snapshot(tickers, 'Current Ratio',axisamp=1.3)
84
-
85
- cr=compare_history(['BABA','JD'],'Current Ratio')
86
-
87
-
88
- crqr=compare_history('JD',['Current Ratio','Quick Ratio'])
89
-
90
- d2e=compare_snapshot(tickers,'Debt to Equity')
91
-
92
- d2a=compare_history(['BABA','JD'],'Debt to Asset')
93
-
94
- roe=compare_snapshot(tickers,'ROE',axisamp=0.5)
95
-
96
- insiders=compare_snapshot(tickers, 'Held Percent Insiders',axisamp=1.6)
97
-
98
- institutions=compare_snapshot(tickers, 'Held Percent Institutions',axisamp=1.6)
99
-
100
- gm=compare_snapshot(tickers,'Gross Margin')
101
-
102
- gm=compare_snapshot(tickers, 'Trailing EPS')
103
-
104
-
105
- tickers=['AMZN','EBAY','SHOP','BABA','JD','VIPS']
106
- dpi=compare_dupont(tickers)
107
-
108
- actr=compare_tax(tickers,axisamp=2)
109
-
110
- rg=compare_snapshot(tickers,'Revenue Growth',axisamp=1)
111
-
112
- rg=compare_snapshot(tickers,'Earnings Growth',axisamp=1)
113
-
114
- rg=compare_snapshot(tickers, 'IGR',axisamp=1.5)
115
-
116
- compare_igr_sgr(tickers,graph=True,axisamp=1.3)
117
-
118
- rg2=compare_snapshot2(tickers, 'IGR')
119
-
120
- beta=compare_snapshot(tickers,'beta',axisamp=1.6)
121
-
122
- teps=compare_snapshot(tickers, 'Trailing EPS')
123
-
124
- p2b=compare_snapshot(tickers, 'Price to Book',axisamp=1.2)
125
-
126
- tp2s=compare_snapshot(tickers,'TTM Price to Sales')
127
-
128
- tpe=compare_snapshot(tickers,'Trailing PE')
129
-
130
- feps=compare_snapshot(tickers,'Forward EPS')
131
-
132
- fpe=compare_snapshot(tickers,'Forward PE')
133
-
134
- peg=compare_snapshot(tickers,'PEG')
135
- #==============================================================================
136
- check=['NBIX','REGN','PRGO']
137
- benchmark=['JNJ','PFE','MRK','LLY','AZN','NVS','MRNA']
138
-
139
- tpe=compare_snapshot(benchmark,'Trailing PE')
140
-
141
- rational_range=['JNJ','PFE','MRK','LLY','AZN','NVS']
142
- valuation=compare_snapshot(rational_range+check,'Trailing PE')
143
-
144
- p2b=compare_snapshot(benchmark, 'Price to Book')
145
-
146
- rational_range=['JNJ','PFE','MRK','LLY','AZN','NVS','MRNA']
147
- valuation=compare_snapshot(rational_range+check, 'Price to Book')
148
-
149
- ratios=compare_snapshot(benchmark, 'EV to EBITDA')
150
-
151
- rational_range= ['JNJ','PFE','MRK','LLY','AZN','NVS']
152
- valuation=compare_snapshot(rational_range+check,'EV to EBITDA',axisamp=1.3)
153
-
154
- peg=compare_snapshot(benchmark,'PEG',axisamp=0.4)
155
-
156
- rational_range= ['JNJ','PFE','MRK','LLY','AZN','NVS','MRNA']
157
- valuation=compare_snapshot(rational_range+check, 'PEG',axisamp=0.5)
158
-
159
- tp2s=compare_snapshot(benchmark,'TTM Price to Sales',axisamp=1.5)
160
-
161
- rational_range=['JNJ','PFE','MRK','LLY','AZN','NVS']
162
- valuation=compare_snapshot(rational_range+check,'TTM Price to Sales',axisamp=1.5)
163
-
164
- e2r=compare_snapshot(benchmark,'EV to Revenue',axisamp=1.5)
165
-
166
- rational_range=['JNJ','PFE','MRK','LLY','AZN','NVS']
167
- valuation=compare_snapshot(rational_range+check,'EV to Revenue',axisamp=1.5)
168
- #==============================================================================
169
-
170
- oils=['TRP','CNQ','WMB','SU','ENB','KMI']
171
- minings=['FCX','5713.T','NEM','SCCO','AA']
172
- mnfcs=['2330.TW','2317.TW','2474.TW','3008.TW','2454.TW']
173
- all= oils + minings + mnfcs
174
-
175
-
176
- te=compare_snapshot(oils,'Total ESG',axisamp=2.5)
177
- tm=compare_snapshot(minings,'Total ESG',axisamp=3)
178
- tf=compare_snapshot(mnfcs,'Total ESG',axisamp=2.3)
179
-
180
- eo=compare_snapshot(oils,'Environment Score',axisamp=2.2)
181
- em=compare_snapshot(minings,'Environment Score',axisamp=2.3)
182
- ef=compare_snapshot(mnfcs,'Environment Score',axisamp=1.5)
183
-
184
- so=compare_snapshot(oils,'Social Score',axisamp=2.6)
185
- sm=compare_snapshot(minings,'Social Score',axisamp=4)
186
- sf=compare_snapshot(mnfcs,'Social Score',axisamp=2)
187
-
188
- go=compare_snapshot(oils,'Governance Score',axisamp=2)
189
- gm=compare_snapshot(minings,'Governance Score',axisamp=2.1)
190
- gf=compare_snapshot(mnfcs,'Governance Score',axisamp=2.5)
191
-
192
- allte=compare_snapshot(all,'Total ESG',axisamp=1.6)
193
- alles=compare_snapshot(all,'Environment Score')
194
- allss=compare_snapshot(all,'Social Score',axisamp=1.3)
195
- allgs=compare_snapshot(all,'Governance Score',axisamp=1.6)
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
-
206
-
207
-
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
-
216
- #==============================================================================
217
- tickers=['600221.SS','600115.SS','600029.SS','601111.SS','601021.SS','002928.SZ','603885.SS']
218
- itemk='ROE'
219
-
220
- #==============================================================================
221
-
222
- #A股期末财务指标,历史***
223
- import akshare as ak
224
- df1 = ak.stock_financial_abstract(stock="600004")
225
- list(df1)
226
- """
227
- ['截止日期',
228
- '每股净资产-摊薄/期末股数',
229
- '每股现金流',
230
- '每股资本公积金',
231
- '固定资产合计',
232
- '流动资产合计',
233
- '资产总计',
234
- '长期负债合计',
235
- '主营业务收入',
236
- '财务费用',
237
- '净利润']
238
- """
239
-
240
- #A股财务指标:历史***
241
- df2 = ak.stock_financial_analysis_indicator(stock="600004")
242
- list(df2)
243
- """
244
- ['摊薄每股收益(元)',
245
- '加权每股收益(元)',
246
- '每股收益_调整后(元)',
247
- '扣除非经常性损益后的每股收益(元)',
248
- '每股净资产_调整前(元)',
249
- '每股净资产_调整后(元)',
250
- '每股经营性现金流(元)',
251
- '每股资本公积金(元)',
252
- '每股未分配利润(元)',
253
- '调整后的每股净资产(元)',
254
- '总资产利润率(%)',
255
- '主营业务利润率(%)',
256
- '总资产净利润率(%)',
257
- '成本费用利润率(%)',
258
- '营业利润率(%)',
259
- '主营业务成本率(%)',
260
- '销售净利率(%)',
261
- '股本报酬率(%)',
262
- '净资产报酬率(%)',
263
- '资产报酬率(%)',
264
- '销售毛利率(%)',
265
- '三项费用比重',
266
- '非主营比重',
267
- '主营利润比重',
268
- '股息发放率(%)',
269
- '投资收益率(%)',
270
- '主营业务利润(元)',
271
- '净资产收益率(%)',
272
- '加权净资产收益率(%)',
273
- '扣除非经常性损益后的净利润(元)',
274
- '主营业务收入增长率(%)',
275
- '净利润增长率(%)',
276
- '净资产增长率(%)',
277
- '总资产增长率(%)',
278
- '应收账款周转率(次)',
279
- '应收账款周转天数(天)',
280
- '存货周转天数(天)',
281
- '存货周转率(次)',
282
- '固定资产周转率(次)',
283
- '总资产周转率(次)',
284
- '总资产周转天数(天)',
285
- '流动资产周转率(次)',
286
- '流动资产周转天数(天)',
287
- '股东权益周转率(次)',
288
- '流动比率',
289
- '速动比率',
290
- '现金比率(%)',
291
- '利息支付倍数',
292
- '长期债务与营运资金比率(%)',
293
- '股东权益比率(%)',
294
- '长期负债比率(%)',
295
- '股东权益与固定资产比率(%)',
296
- '负债与所有者权益比率(%)',
297
- '长期资产与长期资金比率(%)',
298
- '资本化比率(%)',
299
- '固定资产净值率(%)',
300
- '资本固定化比率(%)',
301
- '产权比率(%)',
302
- '清算价值比率(%)',
303
- '固定资产比重(%)',
304
- '资产负债率(%)',
305
- '总资产(元)',
306
- '经营现金净流量对销售收入比率(%)',
307
- '资产的经营现金流量回报率(%)',
308
- '经营现金净流量与净利润的比率(%)',
309
- '经营现金净流量对负债比率(%)',
310
- '现金流量比率(%)',
311
- '短期股票投资(元)',
312
- '短期债券投资(元)',
313
- '短期其它经营性投资(元)',
314
- '长期股票投资(元)',
315
- '长期债券投资(元)',
316
- '长期其它经营性投资(元)',
317
- '1年以内应收帐款(元)',
318
- '1-2年以内应收帐款(元)',
319
- '2-3年以内应收帐款(元)',
320
- '3年以内应收帐款(元)',
321
- '1年以内预付货款(元)',
322
- '1-2年以内预付货款(元)',
323
- '2-3年以内预付货款(元)',
324
- '3年以内预付货款(元)',
325
- '1年以内其它应收款(元)',
326
- '1-2年以内其它应收款(元)',
327
- '2-3年以内其它应收款(元)',
328
- '3年以内其它应收款(元)']
329
- """
330
-
331
- #A股股东户数:全体,当前
332
- df3 = ak.stock_zh_a_gdhs()
333
- list(df3)
334
- """
335
- ['代码',
336
- '名称',
337
- '最新价',
338
- '涨跌幅',
339
- '股东户数-本次',
340
- '股东户数-上次',
341
- '股东户数-增减',
342
- '股东户数-增减比例',
343
- '区间涨跌幅',
344
- '股东户数统计截止日-本次',
345
- '股东户数统计截止日-上次',
346
- '户均持股市值',
347
- '户均持股数量',
348
- '总市值',
349
- '总股本',
350
- '公告日期']
351
- """
352
-
353
- #A股股东户数:个股,历史,详情
354
- df4 = ak.stock_zh_a_gdhs_detail_em(symbol="000002")
355
- list(df4)
356
- """
357
- ['股东户数统计截止日',
358
- '区间涨跌幅',
359
- '股东户数-本次',
360
- '股东户数-上次',
361
- '股东户数-增减',
362
- '股东户数-增减比例',
363
- '户均持股市值',
364
- '户均持股数量',
365
- '总市值',
366
- '总股本',
367
- '股本变动',
368
- '股本变动原因',
369
- '股东户数公告日期',
370
- '代码',
371
- '名称']
372
- """
373
-
374
- #A股业绩报表:全体,指定年报/季报,所在行业
375
- df5 = ak.stock_em_yjbb(date="20210930")
376
- list(df5)
377
- """
378
- ['序号',
379
- '股票代码',
380
- '股票简称',
381
- '每股收益',
382
- '营业收入-营业收入',
383
- '营业收入-同比增长',
384
- '营业收入-季度环比增长',
385
- '净利润-净利润',
386
- '净利润-同比增长',
387
- '净利润-季度环比增长',
388
- '每股净资产',
389
- '净资产收益率',
390
- '每股经营现金流量',
391
- '销售毛利率',
392
- '所处行业',
393
- '最新公告日期']
394
- """
395
-
396
-
397
-
398
-
399
-
400
- #==============================================================================
401
-
402
- tickers=['600519.SS','000858.SZ','600779.SS','000596.SZ','603589.SS']
403
- df=compare_dupont_china(tickers,fsdate='2020-12-31',scale1 = 10,scale2 = 10)
404
-
405
- tickers=['600398.SS','002291.SZ','002563.SZ','002193.SZ','002029.SZ','02331.HK','02020.HK','01368.HK','01361.HK','02313.HK']
406
- tickers=['600398.SS','002291.SZ','002563.SZ','002193.SZ','002029.SZ','02331.HK','02020.HK','01368.HK','01361.HK','02313.HK']
407
-
408
- df=compare_dupont_china (tickers,fsdate='2020-12-31',scale1 = 10,scale2 = 10)
409
-
410
-
411
- #==============================================================================
412
- info=get_stock_profile("MUFG","fin_rates")
413
-
414
- wuliu=["002352.SZ","002468.SZ","2057.HK","600233.SS","002120.SZ","603056.SS","601598.SS","603967.SS","603128.SS"]
415
- peg=compare_snapshot(wuliu,"PEG")
416
-
417
- tickers=["601398.SS","601988.SS","601988.SS",'601288.SS','601328.SS','601658.SS','600036.SS','000001.SZ']
418
- isgr=compare_igr_sgr(tickers,axisamp=3)
419
- #==============================================================================
420
- tickers=["BABA","JD","VIPS",'PDD','AMZN','WMT','EBAY','SHOP','MELI']
421
- isgr=compare_igr_sgr(tickers)
422
-
423
- #==============================================================================
424
- tickers=["0883.HK","0857.HK","0386.HK",'XOM','2222.SR','OXY','BP','RDSA.AS']
425
- pm=compare_snapshot(tickers,'Profit Margin')
426
- roa=compare_snapshot(tickers,'ROA')
427
- roe=compare_snapshot(tickers,'ROE')
428
- pe=compare_snapshot(tickers,'Trailing PE',axisamp=1.8)
429
- #==============================================================================
430
- tickers=["601808.SS","600583.SS","600968.SS",'600871.SS','600339.SS','601857.SS','600028.SS','0883.HK']
431
- isgr=compare_igr_sgr(tickers)
432
-
433
- ticker='0883.HK'
434
- igr,sgr=calc_igr_sgr(ticker)
435
- #==============================================================================
436
- tat=compare_history(['AMZN','JD'],'Total Asset Turnover')
437
- fat=compare_history(['AMZN','JD'],'Fixed Asset Turnover')
438
- cfps_eps=compare_history(['BABA'],['Cashflow per Share','BasicEPS'])
439
-
440
- cr=compare_history(['BABA','JD'],'Cashflow per Share')
441
- cr=compare_history(['BABA','PDD'],'Cashflow per Share')
442
- cr=compare_history(['BABA','VIPS'],'Cashflow per Share')
443
-
444
- tickers=['600519.SS','000858.SZ','600779.SS','000596.SZ','603589.SS']
445
- df=compare_dupont(tickers,fsdate='2020-12-31',scale1 = 10,scale2 = 10)
446
-
447
-
448
- #==============================================================================
449
- cr=compare_history(['AAPL','MSFT'],'Current Ratio')
450
- cr=compare_history(['601808.SS','600871.SS'],'Current Ratio')
451
- cr=compare_history(['601808.SS','0883.HK'],'Current Ratio')
452
-
453
- cr=compare_history(['601808.SS'],['Current Ratio','Quick Ratio'])
454
-
455
-
456
- #==============================================================================
457
- cosl=compare_history('601808.SS',['Current Ratio','Quick Ratio'])
458
- cosl=compare_history('601808.SS',['Debt to Asset','Debt to Equity'])
459
- cosl=compare_history('601808.SS',['Debt to Asset','Debt to Equity'],twinx=True)
460
- tie=compare_history(['601808.SS'],'Times Interest Earned')
461
- itr=compare_history(['601808.SS','600871.SS'],'Inventory Turnover')
462
- rtr=compare_history(['601808.SS','600871.SS'],'Receivable Turnover')
463
-
464
- rtr=compare_history(['601808.SS','600871.SS'],'Total Asset Turnover')
465
- fat=compare_history(['601808.SS','600871.SS'],'Fixed Asset Turnover')
466
- cr=compare_history(['601808.SS','600871.SS'],'Current Ratio')
467
- qr=compare_history(['601808.SS','600871.SS'],'Quick Ratio')
468
- d2a=compare_history(['601808.SS','600871.SS'],'Debt to Asset')
469
-
470
- cfps=compare_history(['601808.SS','600871.SS'],'Cashflow per Share')
471
-
472
- dtoe=compare_snapshot(tickers,'Dbt to Asset')
473
-
474
- tickers=["0883.HK","0857.HK","0386.HK",'XOM','2222.SR','OXY','BP','RDSA.AS']
475
- dbi=compare_dupont(tickers,fsdate='latest',scale1 = 100,scale2 = 50)
476
-
477
- tickers=['601808.SS',"600339.SS",'600583.SS','SLB','HAL']
478
- dbi=compare_dupont(tickers,fsdate='latest',scale1 = 100,scale2 = 50)
479
-
480
- igr=compare_snapshot(tickers,'IGR')
481
- #==============================================================================
482
- tickers=["0883.HK","0857.HK","0386.HK",'XOM','2222.SR','OXY','BP','RDSA.AS']
483
- atr=compare_tax(tickers,graph=True)
484
- dbi=compare_dupont(tickers,fsdate='latest',scale1 = 100,scale2 = 10)
485
- ev2r=compare_snapshot(tickers,'EV to Revenue')
486
- ev2ebitda=compare_snapshot(tickers,'EV to EBITDA')
487
- price=compare_snapshot(tickers,'Current Price')
488
-
489
- tickers2=["0883.HK","0857.HK","0386.HK",'XOM','2222.SR','BP','RDSA.AS']
490
- fpe=compare_snapshot(tickers2,'Forward PE')
491
- pb=compare_snapshot(tickers,'Price to Book')
492
- roa=compare_snapshot(tickers,'ROA')
493
- roe=compare_snapshot(tickers,'ROE')
494
-
495
- pm=compare_snapshot(tickers,'ROE')
496
-
497
- tickerlist=['IBM','DELL','WMT']
498
- df=compare_dupont(tickerlist,fsdate='latest',scale1 = 100,scale2 = 10)
499
-
500
- tickerlist=['DELL','WMT']
501
- df=compare_dupont(tickerlist,fsdate='latest',scale1 = 100,scale2 = 10)
502
- #==============================================================================
503
- tickers_cn=['600398.SS','300005.SZ','002563.SZ','002193.SZ','002269.SZ']
504
- tickers_hk=['2331.HK','2020.HK','1368.HK','3998.HK','2313.HK']
505
- tickers=tickers_cn+tickers_hk
506
- gmdf=compare_dupont(tickers,fsdate='2020-12-31',scale1 = 10,scale2 = 10)
507
-
508
- #==============================================================================
509
- tickers=['AMZN','EBAY','SHOP','MELI','BABA','JD','VIPS','PDD']
510
- dtoe=compare_snapshot(tickers,'Debt to Asset')
511
- #==============================================================================
512
-
513
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
514
- tpe=compare_snapshot(leadings,'Trailing PE')
515
-
516
- mainleadings=['JNJ','PFE','MRK','VRTX','NVS','SNY']
517
- tests=['NBIX','REGN','PRGO']
518
- tpe=compare_snapshot(tests + mainleadings,'Trailing PE')
519
-
520
- #==============================================================================
521
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
522
- fpe=compare_snapshot(leadings,'Forward PE')
523
-
524
- mainleadings=['JNJ','PFE','VRTX','NVS','AMGN','SNY']
525
- tests=['NBIX','REGN','PRGO']
526
- fpe=compare_snapshot(tests + mainleadings,'Forward PE')
527
- #==============================================================================
528
- cp=compare_snapshot(tests+leadings,'Current Price')
529
- #==============================================================================
530
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
531
- ptob=compare_snapshot(leadings,'Price to Book')
532
-
533
- mainleadings=['JNJ','PFE','MRK','VRTX','NVS','AMGN']
534
- tests=['NBIX','REGN','PRGO']
535
- ptob=compare_snapshot(tests+mainleadings,'Price to Book')
536
- #==============================================================================
537
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
538
- evtoebitda=compare_snapshot(leadings,'EV to EBITDA')
539
-
540
- mainleadings=['JNJ','PFE','VRTX','NVS','AMGN','SNY']
541
- tests=['NBIX','REGN','PRGO']
542
- evtoebitda=compare_snapshot(tests + mainleadings,'EV to EBITDA')
543
- #==============================================================================
544
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
545
- evtoebitda=compare_snapshot(leadings,'PEG')
546
- #==============================================================================
547
- mainleadings=['MRK','LLY','VRTX','NVS','AMGN','SNY']
548
- tests=['NBIX','REGN','PRGO']
549
- peg=compare_snapshot(tests + mainleadings,'PEG')
550
- #==============================================================================
551
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
552
- ptos=compare_snapshot(leadings,'TTM Price to Sales')
553
- #==============================================================================
554
- mainleadings=['JNJ','PFE','MRK','LLY','AMGN','SNY']
555
- tests=['NBIX','REGN','PRGO']
556
- ptos=compare_snapshot(tests + mainleadings,'TTM Price to Sales')
557
- #==============================================================================
558
- leadings=['JNJ','PFE','MRK','LLY','VRTX','NVS','AMGN','SNY']
559
- evtorev=compare_snapshot(leadings,'EV to Revenue')
560
- #==============================================================================
561
- mainleadings=['JNJ','PFE','MRK','VRTX','AMGN','SNY']
562
- tests=['NBIX','REGN','PRGO']
563
- evtorev=compare_snapshot(tests + mainleadings,'EV to Revenue')
564
-
565
-
566
-
567
-
568
- #==============================================================================
569
- cfps_eps=compare_history('BABA',['Cashflow per Share','BasicEPS'])
570
- cfps_eps=compare_history('JD',['Cashflow per Share','BasicEPS'])
571
- cfps_eps=compare_history('PDD',['Cashflow per Share','BasicEPS'])
572
- cfps_eps=compare_history('VIPS',['Cashflow per Share','BasicEPS'])
573
-
574
- cfps_eps=compare_history('WMT',['Cashflow per Share','BasicEPS'])
575
-
576
- cfps_eps=compare_history('QCOM',['Cashflow per Share','BasicEPS'])
577
-
578
- cr=compare_history(['BABA','JD'],'Cashflow per Share')
579
- cr=compare_history(['BABA','PDD'],'Cashflow per Share')
580
- cr=compare_history(['BABA','VIPS'],'Cashflow per Share')
581
-
582
- tickers=['AMZN','EBAY','SHOP','MELI']
583
- cfps=compare_snapshot(tickers,'Cashflow per Share')
584
- cr=compare_history(['AMZN'],['Cashflow per Share','BasicEPS'])
585
- cr=compare_history(['EBAY'],['Cashflow per Share','BasicEPS'])
586
-
587
-
588
- #==============================================================================
589
- tickers=['AMZN','EBAY','SHOP','MELI','BABA','JD','VIPS','PDD']
590
- roa=compare_snapshot(tickers,'ROA')
591
-
592
- tat=compare_history(['AMZN','JD'],'Total Asset Turnover')
593
- fat=compare_history(['AMZN','JD'],'Fixed Asset Turnover')
594
- pper=compare_history(['AMZN','JD'],'PPE Residual')
595
-
596
- cr=compare_snapshot(tickers,'Current Ratio')
597
- qr=compare_snapshot(tickers,'Quick Ratio')
598
- dtoe=compare_snapshot(tickers,'Debt to Equity')
599
-
600
- pm=compare_snapshot(tickers,'Profit Margin')
601
- gm=compare_snapshot(tickers,'Gross Margin')
602
-
603
- gm=compare_snapshot(tickers,'EBITDA Margin')
604
- gm=compare_snapshot(tickers,'Operating Margin')
605
-
606
- roe=compare_snapshot(tickers,'ROE')
607
- teps=compare_snapshot(tickers,'Trailing EPS')
608
- rg=compare_snapshot(tickers,'Revenue Growth')
609
-
610
- rg=compare_snapshot(tickers,'Earnings Growth')
611
- rg=compare_snapshot(tickers,'Earnings Quarterly Growth')
612
-
613
- #==============================================================================
614
- tickers=['AMZN','EBAY','BABA','JD','VIPS']
615
- roa=compare_snapshot(tickers,'ROA')
616
- roe=compare_snapshot(tickers,'ROE')
617
- beta=compare_snapshot(tickers,'beta')
618
-
619
- tickers=['AMZN','EBAY','SHOP','BABA','JD','PDD','VIPS']
620
- cr=compare_snapshot(tickers,'Current Ratio')
621
- dtoe=compare_snapshot(tickers,'Debt to Equity')
622
- teps=compare_snapshot(tickers,'Trailing EPS')
623
- roe=compare_snapshot(tickers,'ROE')
624
- hpinst=compare_snapshot(['AAPL','MSFT','BRKB'],'Held Percent Institutions')
625
-
626
- #==============================================================================
627
- rates=get_stock_profile('AAPL',info_type='fin_rates')
628
-
629
- tickers=['AAPL','MSFT','WMT','FB','QCOM']
630
- cr=compare_snapshot(tickers,'Current Ratio')
631
- beta=compare_snapshot(tickers,'beta')
632
- dtoe=compare_snapshot(tickers,'Debt to Equity')
633
- dtoe=compare_snapshot(tickers,'?')
634
- teps=compare_snapshot(tickers,'Trailing EPS')
635
- tpe=compare_snapshot(tickers,'Trailing PE')
636
-
637
- tickers1=['AMZN','EBAY','GRPN','BABA','JD','PDD','VIPS']
638
- gm=compare_snapshot(tickers1,'Gross Margin')
639
- pm=compare_snapshot(tickers1,'Profit Margin')
640
-
641
- df1,df2=compare_history('AAPL','Current Ratio')
642
- df1,df2=compare_history('AAPL',['Current Ratio','Quick Ratio'])
643
- df1,df2=compare_history('AAPL',['BasicEPS','DilutedEPS'])
644
- df1,df2=compare_history('AAPL',['Current Ratio','BasicEPS'],twinx=True)
645
- df1,df2=compare_history('AAPL',['BasicPE','BasicEPS'])
646
- df1,df2=compare_history('AAPL',['BasicPE','BasicEPS'],twinx=True)
647
-
648
- df1,df2=compare_history(['AAPL','MSFT'],['BasicPE','BasicEPS'])
649
- df1,df2=compare_history(['AAPL','MSFT'],['BasicPE','BasicEPS'],twinx=True)
650
- df1,df2=compare_history(['AAPL','MSFT'],'BasicEPS',twinx=True)
651
-
652
- cr=compare_history(['INTL','QCOM'],'Current Ratio',twinx=True)
653
-
654
- cr=compare_history(['600519.SS','000002.SZ'],'Current Ratio',twinx=True)
655
- #==============================================================================
656
-
657
- Chinabanks = ["1398.HK","0939.HK","3988.HK","1288.HK"]
658
- USbanks=["BAC", "TD","PNC"]
659
- Japanbanks = ["8306.T","7182.T","8411.T"]
660
-
661
- esg=compare_snapshot(Chinabanks+USbanks+Japanbanks,'Total ESG')
662
- ep=compare_snapshot(Chinabanks+USbanks+Japanbanks,'Environment Score')
663
- csr=compare_snapshot(Chinabanks+USbanks+Japanbanks,'Social Score')
664
- emp=compare_snapshot(Chinabanks+USbanks+Japanbanks,'Employees')
665
- gov=compare_snapshot(Chinabanks+USbanks+Japanbanks,'Governance Score')
666
- roe=compare_snapshot(Chinabanks+USbanks+Japanbanks,'ROE')
667
-
668
-
669
- cnnr=['2330.TW','2317.TW','2474.TW','3008.TW','2454.TW']
670
- usnr=['SLB','COP','HAL','OXY','FCX']
671
- otns=['5713.T','1605.T','5020.T']
672
-
673
- esg=compare_snapshot(cnnr+usnr+otns,'Total ESG')
674
- ep=compare_snapshot(cnnr+usnr+otns,'Environment Score')
675
- csr=compare_snapshot(cnnr+usnr+otns,'Social Score')
676
- gov=compare_snapshot(cnnr+usnr+otns,'Governance Score')
677
-
678
-
679
- ep=compare_snapshot(['9988.HK','9618.HK','0700.HK'],'Environment Score')
680
-
681
- #==============================================================================
682
-
683
- market={'Market':('China','^HSI')}
684
- stocks={'0700.HK':3,'9618.HK':2,'9988.HK':1}
685
- portfolio=dict(market,**stocks)
686
-
687
- _,_,stocklist,_=decompose_portfolio(portfolio)
688
- collist=['symbol','totalEsg','environmentScore','socialScore','governanceScore']
689
- sust=pd.DataFrame(columns=collist)
690
- for t in stocklist:
691
- try:
692
- info=stock_info(t).T
693
- except:
694
- print("#Error(): esg info not available for",t)
695
- continue
696
- if (info is None) or (len(info)==0):
697
- print("#Error(): failed to get esg info for",t)
698
- continue
699
- sub=info[collist]
700
- sust=pd.concat([sust,sub])
701
-
702
-
703
-
704
-
705
-
706
-
707
-
708
-
709
-
710
-
711
-
712
-
713
-