siat 3.1.23__py3-none-any.whl → 3.2.1__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/capm_beta2.py CHANGED
@@ -85,7 +85,9 @@ if __name__=='__main__':
85
85
 
86
86
  reg_result,dretdf3=regression_capm(ticker,start2,end,RF,regtrddays)
87
87
 
88
- def regression_capm(ticker,start2,end,RF=0,regtrddays=252, \
88
+ def regression_capm(ticker,start2,end, \
89
+ adjust='', \
90
+ RF=0,regtrddays=252, \
89
91
  mktidx='auto',source='auto',ticker_type='auto'):
90
92
  """
91
93
  功能:进行CAPM回归,R-Rf=beta*(Rm-Rf),无截距项回归
@@ -100,8 +102,9 @@ def regression_capm(ticker,start2,end,RF=0,regtrddays=252, \
100
102
  print("*** DEBUG:",ticker,start2,end)
101
103
  #pricedf=get_price(ticker,start2,end,source=source)
102
104
  #pricedf=get_price_security(ticker,start2,end,source=source)
103
- pricedf,found=get_price_1ticker_mixed(ticker=ticker,fromdate=start2, \
104
- todate=end,source=source,ticker_type=ticker_type)
105
+ pricedf,found=get_price_1ticker_mixed(ticker=ticker,fromdate=start2,todate=end, \
106
+ adjust=adjust, \
107
+ source=source,ticker_type=ticker_type)
105
108
 
106
109
  if pricedf is None:
107
110
  print(" #Error(regression_capm): info of security",ticker_name(ticker,ticker_type),"not found or inaccessible")
@@ -124,8 +127,10 @@ def regression_capm(ticker,start2,end,RF=0,regtrddays=252, \
124
127
  mktidx=get_market_index_code(ticker)
125
128
 
126
129
  #marketdf=get_price(mktidx,start2,end,source=source)
127
- marketdf,found=get_price_1ticker_mixed(ticker=mktidx,fromdate=start2, \
128
- todate=end,source=source,ticker_type=ticker_type)
130
+ #大盘指数实际上无复权价?
131
+ marketdf,found=get_price_1ticker_mixed(ticker=mktidx,fromdate=start2,todate=end, \
132
+ adjust=adjust, \
133
+ source=source,ticker_type=ticker_type)
129
134
 
130
135
  if marketdf is None:
131
136
  print(" #Error(regression_capm): info of market index",mktidx,"not found or inaccessible")
@@ -137,7 +142,11 @@ def regression_capm(ticker,start2,end,RF=0,regtrddays=252, \
137
142
  dretdf1=pd.merge(marketdf1,pricedf1,how='inner',left_index=True,right_index=True)
138
143
 
139
144
  #准备CAPM回归文件
140
- dretname='Daily Ret'
145
+ if adjust == '':
146
+ dretname='Daily Ret'
147
+ else:
148
+ dretname='Daily Adj Ret'
149
+
141
150
  #计算日无风险利率
142
151
  RF_daily=RF / 365
143
152
 
@@ -207,7 +216,7 @@ if __name__=='__main__':
207
216
  beta1=get_capm_beta(ticker,start,end,RF,regtrddays)
208
217
  beta1.plot()
209
218
 
210
- def get_capm_beta(ticker,start,end,RF=0,regtrddays=252,mktidx='auto', \
219
+ def get_capm_beta(ticker,start,end,adjust='',RF=0,regtrddays=252,mktidx='auto', \
211
220
  source='auto',ticker_type='auto'):
212
221
  """
213
222
  功能:套壳函数regression_capm,仅返回滚动的贝塔系数,基于日收益率
@@ -217,6 +226,7 @@ def get_capm_beta(ticker,start,end,RF=0,regtrddays=252,mktidx='auto', \
217
226
  start2=date_adjust(start,adjust=-365/252 * regtrddays -31*2)
218
227
 
219
228
  reg_result,_=regression_capm(ticker=ticker,start2=start2,end=end, \
229
+ adjust=adjust, \
220
230
  RF=RF, \
221
231
  regtrddays=regtrddays,mktidx=mktidx, \
222
232
  source=source,ticker_type=ticker_type)
@@ -248,6 +258,7 @@ if __name__=='__main__':
248
258
  betas=compare_mticker_1beta(ticker,start,end)
249
259
 
250
260
  def compare_mticker_1beta(ticker,start,end, \
261
+ adjust='', \
251
262
  RF=0,regression_period=365, \
252
263
  graph=True,axhline_value=1,axhline_label='',facecolor='whitesmoke', \
253
264
  annotate=False,annotate_value=False, \
@@ -289,7 +300,7 @@ def compare_mticker_1beta(ticker,start,end, \
289
300
 
290
301
  #关闭print输出
291
302
  with HiddenPrints():
292
- df_tmp=get_capm_beta(t,start,end,RF,regtrddays,mktidx,source,ticker_type=tt)
303
+ df_tmp=get_capm_beta(t,start,end,adjust,RF,regtrddays,mktidx,source,ticker_type=tt)
293
304
 
294
305
  if df_tmp is None:
295
306
  break
@@ -366,6 +377,7 @@ if __name__=='__main__':
366
377
  betas=compare_1ticker_mRF(ticker,start,end,RF)
367
378
 
368
379
  def compare_1ticker_mRF(ticker,start,end, \
380
+ adjust='', \
369
381
  RF=[0,0.02,0.05], \
370
382
  regression_period=365, \
371
383
  graph=True,axhline_value=1,axhline_label='',facecolor='whitesmoke', \
@@ -406,7 +418,7 @@ def compare_1ticker_mRF(ticker,start,end, \
406
418
  for t in RF:
407
419
  #关闭print输出
408
420
  with HiddenPrints():
409
- df_tmp=get_capm_beta(ticker,start,end,t,regtrddays,mktidx,source,ticker_type=ticker_type)
421
+ df_tmp=get_capm_beta(ticker,start,end,adjust,t,regtrddays,mktidx,source,ticker_type=ticker_type)
410
422
 
411
423
  if df_tmp is None:
412
424
  break
@@ -484,6 +496,7 @@ if __name__=='__main__':
484
496
  betas=compare_1ticker_mregression_period(ticker,start,end,RF,regression_period)
485
497
 
486
498
  def compare_1ticker_mregression_period(ticker,start,end, \
499
+ adjust='', \
487
500
  RF=0, \
488
501
  regression_period=[183,365,730], \
489
502
  graph=True,axhline_value=1,axhline_label='',facecolor='whitesmoke', \
@@ -524,7 +537,7 @@ def compare_1ticker_mregression_period(ticker,start,end, \
524
537
 
525
538
  #关闭print输出
526
539
  with HiddenPrints():
527
- df_tmp=get_capm_beta(ticker,start,end,RF,regtrddays,mktidx,source,ticker_type=ticker_type)
540
+ df_tmp=get_capm_beta(ticker,start,end,adjust,RF,regtrddays,mktidx,source,ticker_type=ticker_type)
528
541
 
529
542
  if df_tmp is None:
530
543
  break
@@ -601,7 +614,9 @@ if __name__=='__main__':
601
614
 
602
615
  betas=compare_beta_security(ticker,start,end,RF)
603
616
 
604
- def compare_beta_security(ticker,start,end,RF=0,regression_period=365, \
617
+ def compare_beta_security(ticker,start,end, \
618
+ adjust='', \
619
+ RF=0,regression_period=365, \
605
620
  graph=True,facecolor='whitesmoke', \
606
621
  annotate=False,annotate_value=False, \
607
622
  mark_top=False,mark_bottom=False,mark_end=False, \
@@ -618,8 +633,10 @@ def compare_beta_security(ticker,start,end,RF=0,regression_period=365, \
618
633
  if isinstance(RF,list):
619
634
  RF=RF[0]
620
635
 
621
- df=compare_mticker_1beta(ticker,start,end,RF,regression_period, \
622
- graph,facecolor=facecolor, \
636
+ df=compare_mticker_1beta(ticker,start,end, \
637
+ adjust=adjust, \
638
+ RF=RF,regression_period=regression_period, \
639
+ graph=graph,facecolor=facecolor, \
623
640
  annotate=annotate,annotate_value=annotate, \
624
641
  mark_top=mark_top,mark_bottom=mark_bottom,mark_end=mark_end, \
625
642
  mktidx=mktidx,source=source, \
@@ -632,8 +649,10 @@ def compare_beta_security(ticker,start,end,RF=0,regression_period=365, \
632
649
  #情形2:1只证券,多个RF。时间区间要尽可能短,不然难以看出差异!
633
650
  if isinstance(RF,list):
634
651
  if len(RF) > 1:
635
- df=compare_1ticker_mRF(ticker,start,end,RF,regression_period, \
636
- graph,facecolor=facecolor, \
652
+ df=compare_1ticker_mRF(ticker,start,end, \
653
+ adjust=adjust, \
654
+ RF=RF,regression_period=regression_period, \
655
+ graph=graph,facecolor=facecolor, \
637
656
  annotate=annotate,annotate_value=annotate, \
638
657
  mark_top=mark_top,mark_bottom=mark_bottom,mark_end=mark_end, \
639
658
  mktidx=mktidx,source=source, \
@@ -647,8 +666,9 @@ def compare_beta_security(ticker,start,end,RF=0,regression_period=365, \
647
666
  if isinstance(regression_period,list):
648
667
  if len(regression_period) > 1:
649
668
  df=compare_1ticker_mregression_period(ticker,start,end, \
650
- RF,regression_period, \
651
- graph,facecolor=facecolor, \
669
+ adjust=adjust, \
670
+ RF=RF,regression_period=regression_period, \
671
+ graph=graph,facecolor=facecolor, \
652
672
  annotate=annotate,annotate_value=annotate, \
653
673
  mark_top=mark_top,mark_bottom=mark_bottom,mark_end=mark_end, \
654
674
  mktidx=mktidx,source=source, \
@@ -659,8 +679,10 @@ def compare_beta_security(ticker,start,end,RF=0,regression_period=365, \
659
679
  regression_period=regression_period[0]
660
680
 
661
681
  #情形4:1只证券,1个RF,1个回归天数?
662
- df=compare_mticker_1beta(ticker,start,end,RF,regression_period, \
663
- graph,facecolor=facecolor, \
682
+ df=compare_mticker_1beta(ticker,start,end, \
683
+ adjust=adjust, \
684
+ RF=RF,regression_period=regression_period, \
685
+ graph=graph,facecolor=facecolor, \
664
686
  annotate=annotate,annotate_value=annotate, \
665
687
  mark_top=mark_top,mark_bottom=mark_bottom,mark_end=mark_end, \
666
688
  mktidx=mktidx,source=source, \