Files
NewStock/main/utils/__pycache__/utils.cpython-310.pyc

39 lines
2.7 KiB
Plaintext
Raw Normal View History

2025-04-28 11:02:52 +08:00
o
<00>`<60>g<00>@s<ddlZddlZddddgdfdd<06>Zdd<08>Zdd d<0E>ZdS)<10>N<>left<66>ts_code<64>
trade_datec Cs$g}|D]}|<08>d<01>r|<07>|dd<00><00>q|<07>|<08>qtj|||d<03>} | jD]}||vr:d|<08><00>}
| j||
idd<05>q&|durY| jD]}|dvrX|<06>d|<08><00>}
| j||
idd<05>qB|dur<>|js<>t|<04>d|<05><00><03>d|vr<>tj|dd d
<EFBFBD>|d<tj| dd d
<EFBFBD>| d<tj || ||d <0B>} | S| } | S) N<>_<>)<02>key<65>columnsT)rZinplace)rrz
merge on rz%Y%m%d)<01>format)<02>onZhow)
<EFBFBD>
startswith<EFBFBD>append<6E>pdZread_hdfr<00>renameZempty<74>print<6E> to_datetimeZmerge) Z h5_filenamerr<00>df<64>joinr
<00>prefixZprocessed_columnsZcol<6F>dataZnew_colZ merged_df<64>r<00>)E:\PyProject\NewStock\code\utils\utils.py<70>read_and_merge_h5_datas4
 

<02>
<02><04>rcCs<>t<00>|d<00>|d<t<00>|d<00>|d<|<01>ddg<02>}|<00>ddg<02>}tj||ddddd<05>}|<02>d<03><01><05><00><06>ddg}|d<00>|d<00>|<05> d<03>d<00><01>|d<|jdd<08>}|S) NrZin_daterZbackward)<04>byZleft_onZright_onZ directionZl2_codeT)<01>drop)
r r<00> sort_valuesZ
merge_asof<EFBFBD>groupbyZfirst<73> reset_indexZfillna<6E>mapZ set_index)rZ industry_dfZindustry_df_sortedZ df_sortedZmergedZmin_in_date_per_ts<74>resultrrr<00>merge_with_industry_data-s,<06>

<04><08> rr<00>ratio<69><00>?<3F>:<3A>0<EFBFBD><30>yE>cCs<>|jddgd<03>}t<01>|<00>d<01>d<00>| <00>|d<00>|d<t<01>|<00>d<01>d<00>d<06>|d<00>|d<|<00>d<01>dj|d<08><01><06>jd d
d <0B>|d <|d krU|d|d ||d<|S|dkrg|d||d |d<|Std<10><01>)u%
计算单只股票的风险调整收益。
参数:
- df: DataFrame包含 'ts_code' 和 'close' 列,按日期排序(假设 'trade_date' 已排序)。
- days: 预测未来多少天的收益默认1天。
- method: 'ratio'(收益/波动率) 或 'difference'(收益 - λ * 波动率)。
- lambda_: 风险惩罚系数,仅当 method='difference' 时有效。
- eps: 防止除零的小常数。
返回:
- df添加 'risk_adj_return' 列的 DataFrame表示风险调整后的收益。
rr)r<00>closeZ future_returnrZhistorical_return)ZwindowrT)<02>levelrZ
volatilityr Zrisk_adj_return<72>
differencez,Invalid method. Use 'ratio' or 'difference'.) r<00>np<6E>logr<00>shiftZrollingZstdr<00>
ValueError)rZdays<79>methodZlambda_Zepsrrr<00>calculate_risk_adjusted_returnRs(&
<EFBFBD><08><08>r+)rr r!r")Znumpyr&Zpandasr rrr+rrrr<00><module>s
(%