Files
NewStock/main/utils/__pycache__/factor.cpython-311.pyc

172 lines
58 KiB
Plaintext
Raw Normal View History

2025-04-28 11:02:52 +08:00
<EFBFBD>
<00>`<60><00><00>x<00>ddlZddlZddlZd<02>Zdd<04>Zd<05>Zd<06>Zd<07>Z d<08>Z
d <09>Z ddlZddlZd
<EFBFBD>Z d <0B>Z d <0C>Zd <0A>Zd<0E>ZdS)<10>Nc<00> <00>|<00>ddg<02><03><00>}|<00>dd<04><05><00>}|d<00>d<07><08><00><00><00><00><00>d d
<EFBFBD> <0B><00>|d <|d<00>d<07><08><00><00><00><00><00>d d
<EFBFBD> <0B><00>|d <|d<00>d<0F><08><00><00><00><00>|d<00>d<07><08><00><00><00><00>z dz
<00>d d
<EFBFBD><11><00>|d<|d<00>d<07><08><00><00><00><00><00>d d
<EFBFBD><11><00>}|d|k|d<|d<00>d<15><08><00><00><00><00><00>d d
<EFBFBD><11><00>}|d<00>d<15><08><00><00><00><00><00>d d
<EFBFBD><11><00>}|d|z
|z |d<|d|d|zzk|d<|d<00>d<15><08><00><00><00><00><00>d d
<EFBFBD><11><00>|d<|d<00>d<07><08><00><00><00><00><00>d d
<EFBFBD><11><00>}|d|k|d<d}|d||dzz|d<|d<00> <00><00>|d<|d|dz|d<tj |d<00><00>|d <|<01> d!<21><00><00>|d"<|dd|d"zk|d#<|d<00> <00><00><00>d<07><00><00><00><00>|d$<|d%|dd&g<00>d<10>'<27><00>z
|dz |d(<|dd&g<00> d<10>'<27><00>|d)z
|dz |d*<|<01> d+<2B><00><00>|d,<|<01> d-<2D><00><00>|d.<|<01> d/<2F><00><00>|d0<|<01> d1<64><00><00>|d2<|d0|d2z
|d3<|<01> d4<64><00><00>|d5<|<01> d6<64><00><00>|d7<|<01> d8<64><00><00>|d9<|d<00> d:<3A><00><00>|d;<|d<00> d<<3C><00><00>|d=<|d<00> d><3E><00><00>|d?<|d<00> d@<40><00><00>|dA<|d<00> dB<64><00><00>|dC<|d<00> dD<64><00><00>|dE<|d<00> dF<64><00><00>|dG<|d<00> dH<64><00><00>|dI<|dA|dGz |dJ<|dA|dEz |dK<|dG|dIz
|dL<|S)MN<4D>ts_code<64>
trade_date<EFBFBD><01>byF<79><01>
group_keys<EFBFBD>pct_chg<68><00><01>windowrT<><01>drop<6F> return_skew<65>return_kurtosis<69>vol<6F><00><00><02>levelr<00>volume_change_rate<74>cat_volume_breakout<75> turnover_rate<74><00>turnover_deviation<6F>cat_turnover_spike<6B> volume_ratio<69>avg_volume_ratio<69>cat_volume_ratio_breakout<75><00>?<3F>momentum_factor<6F>close<73>price_change_rate<74>resonance_factor<6F> log_closec<00><><00>tj|d<00>d<02><00><00><00><00>|j<00><03><00>S<00>Nr<00><00><01>index<65><05>pd<70>Series<65>rolling<6E>meanr*<00><01>xs <20>*E:\PyProject\NewStock\code\utils\factor.py<70><lambda>z&get_technical_factor.<locals>.<lambda>3<00>5<00><00>"<22>)<29>A<EFBFBD>e<EFBFBD>H<EFBFBD>,<2C>,<2C>R<EFBFBD>0<>0<>5<>5<>7<>7<>q<EFBFBD>w<EFBFBD>G<>G<>G<><00><00> vol_spike<6B> cat_vol_spike<6B> vol_std_5<5F>high<67>open<65><01>axis<69>up<75>low<6F>downc<00><><00>tjtj|dj|dj|djd<04><05><00>|j<00><06><00>S<00>Nr9r>r"<00><00><01>
timeperiodr)<00>r,r-<00>talib<69>ATR<54>valuesr*r0s r2r3z&get_technical_factor.<locals>.<lambda>=<00>F<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD><06>i<EFBFBD>&6<><01>%<25><08><0F><11>7<EFBFBD><1A>IZ<49>gi<67>j<>j<>j<>"#<23>'<27>+<2B>+<2B>+<2B>r5<00>atr_14c<00><><00>tjtj|dj|dj|djd<04><05><00>|j<00><06><00>S<00>Nr9r>r"<00>rCr)rEr0s r2r3z&get_technical_factor.<locals>.<lambda>A<00>F<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD><06>i<EFBFBD>&6<><01>%<25><08><0F><11>7<EFBFBD><1A>IZ<49>gh<67>i<>i<>i<>"#<23>'<27>+<2B>+<2B>+<2B>r5<00>atr_6c<00><><00>tjtj|dj|dj<00><00>|j<00><03><00>S<00>Nr"rr)<00>r,r-rF<00>OBVrHr*r0s r2r3z&get_technical_factor.<locals>.<lambda>G<00>2<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD><07>j<EFBFBD>&7<><11>5<EFBFBD><18><1F>I<>I<>QR<51>QX<51>Y<>Y<>Y<>r5<00>obvc<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>S<00>NrUrMrCr)<00>r,r-rF<00>SMArHr*r0s r2r3z&get_technical_factor.<locals>.<lambda>J<00>,<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD><05>h<EFBFBD>o<EFBFBD>!<21>D<>D<>D<>A<EFBFBD>G<EFBFBD>T<>T<>T<>r5<00>maobv_6<5F> obv-maobv_6c<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>S<00>Nr"rrCr)<00>r,r-rF<00>RSIrHr*r0s r2r3z&get_technical_factor.<locals>.<lambda>P<00>-<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD><07>j<EFBFBD>&7<>A<EFBFBD>F<>F<>F<>a<EFBFBD>g<EFBFBD>V<>V<>V<>r5<00>rsi_3c<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>S<00>Nr"rMrCr)r_r0s r2r3z&get_technical_factor.<locals>.<lambda>Srar5<00>rsi_6c<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>S<00>Nr"<00> rCr)r_r0s r2r3z&get_technical_factor.<locals>.<lambda>Vrar5<00>rsi_9c<00>8<00>||<00>d<01><00>z dz
S<00>Nr r<00><01>shiftr0s r2r3z&get_technical_factor.<locals>.<lambda>Z<00><00><00>a<EFBFBD>!<21>'<27>'<27>!<21>*<2A>*<2A>n<EFBFBD>q<EFBFBD>6H<36>r5<00>return_5c<00>8<00>||<00>d<01><00>z dz
S<00>N<>
rrlr0s r2r3z&get_technical_factor.<locals>.<lambda>[<00><00><00>q<EFBFBD>1<EFBFBD>7<EFBFBD>7<EFBFBD>2<EFBFBD>;<3B>;<3B><EFBFBD><11>7J<37>r5<00> return_10c<00>8<00>||<00>d<01><00>z dz
S<00>Nr(rrlr0s r2r3z&get_technical_factor.<locals>.<lambda>\rsr5<00> return_20c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>S<00>Nr r <00><03>
pct_changer.<00>stdr0s r2r3z&get_technical_factor.<locals>.<lambda>a<00>,<00><00>!<21>,<2C>,<2C>.<2E>.<2E>:P<>:P<>XY<58>:P<>:Z<>:Z<>:^<5E>:^<5E>:`<60>:`<60>r5<00> std_return_5c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>S<00>N<>r rzr0s r2r3z&get_technical_factor.<locals>.<lambda>b<00>,<00><00>1<EFBFBD><<3C><<3C>><3E>><3E>;Q<>;Q<>Y[<5B>;Q<>;\<5C>;\<5C>;`<60>;`<60>;b<>;b<>r5<00> std_return_15c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>S<00>N<>r rzr0s r2r3z&get_technical_factor.<locals>.<lambda>cr<>r5<00> std_return_25c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>S<00>N<>Zr rzr0s r2r3z&get_technical_factor.<locals>.<lambda>dr<>r5<00> std_return_90c<00><><00>|<00>d<01><00><00><00><00><00>d<02><03><00><00><00><00>S<00>Nrrr<>r <00>rmr{r.r|r0s r2r3z&get_technical_factor.<locals>.<lambda>e<00>:<00><00>Q<EFBFBD>W<EFBFBD>W<EFBFBD>R<EFBFBD>[<5B>[<5B>=S<>=S<>=U<>=U<>=]<5D>=]<5D>eg<65>=]<5D>=h<>=h<>=l<>=l<>=n<>=n<>r5<00>std_return_90_2<5F>std_return_5 / std_return_90<39>std_return_5 / std_return_25<32>std_return_90 - std_return_90_2)<0E> sort_values<65>groupbyr.<00>skew<65> reset_index<65>kurtr/<00>maxr|r{<00>np<6E>log<6F>apply<6C>min)<07>df<64>grouped<65>
max_volume<EFBFBD> mean_turnover<65> std_turnover<65>max_volume_ratio<69>alphas r2<00>get_technical_factorr<72>ss<00><00> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><10>j<EFBFBD>j<EFBFBD><19>u<EFBFBD>j<EFBFBD>5<>5<>G<EFBFBD><1F> <09>*<2A>2<>2<>!<21>2<><<3C><<3C>A<>A<>C<>C<>O<>O<>PQ<50>X\<5C>O<>]<5D>]<5D>B<EFBFBD>}<7D><15>#<23>I<EFBFBD>.<2E>6<>6<>a<EFBFBD>6<>@<40>@<40>E<>E<>G<>G<>S<>S<>TU<54>\`<60>S<>a<>a<>B<EFBFBD><18><19> <14>E<EFBFBD>N<EFBFBD> "<22> "<22>!<21> "<22> ,<2C> ,<2C> 1<> 1<> 3<> 3<> <13>E<EFBFBD>N<EFBFBD> "<22> "<22>!<21> "<22> ,<2C> ,<2C> 1<> 1<> 3<> 3<> 4<>67<36> 8<><11>k<EFBFBD><01><04>k<EFBFBD>%<25>%<25><07><1B><1C> <19><15><1E>'<27>'<27>q<EFBFBD>'<27>1<>1<>5<>5<>7<>7<>C<>C<>!<21>RV<52>C<>W<>W<>J<EFBFBD>!#<23>E<EFBFBD><19>Z<EFBFBD>!7<>B<EFBFBD><1C><1D><1C>O<EFBFBD>,<2C>4<>4<>A<EFBFBD>4<>><3E>><3E>C<>C<>E<>E<>Q<>Q<>XY<58>`d<>Q<>e<>e<>M<EFBFBD><1A>?<3F>+<2B>3<>3<>1<EFBFBD>3<>=<3D>=<3D>A<>A<>C<>C<>O<>O<>VW<56>^b<>O<>c<>c<>L<EFBFBD> "<22>?<3F> 3<>m<EFBFBD> C<>|<7C>S<>B<EFBFBD><1B><1C>!#<23>?<3F> 3<>m<EFBFBD>a<EFBFBD>,<2C>FV<46>6V<36> V<>B<EFBFBD><1B><1C>%<25>^<5E>4<><<3C><<3C>A<EFBFBD><<3C>F<>F<>K<>K<>M<>M<>Y<>Y<>`a<>hl<68>Y<>m<>m<>B<EFBFBD><19><1A><1F>~<7E>.<2E>6<>6<>a<EFBFBD>6<>@<40>@<40>D<>D<>F<>F<>R<>R<>YZ<59>ae<61>R<>f<>f<><14>')<29>.<2E>'9<><L<>'L<>B<EFBFBD>"<22>#<23> <10>E<EFBFBD><1E>3<>4<>u<EFBFBD>r<EFBFBD>BV<42>?W<>7W<37>W<>B<EFBFBD><18><19>&<26>g<EFBFBD>.<2E>9<>9<>;<3B>;<3B>B<EFBFBD><1A><1B><1F><0E>/<2F>"<22>5H<35>2I<32>I<>B<EFBFBD><19><1A><19>f<EFBFBD>R<EFBFBD><07>[<5B>)<29>)<29>B<EFBFBD>{<7B>O<EFBFBD><1D>m<EFBFBD>m<EFBFBD>G<>G<><06><06>B<EFBFBD>{<7B>O<EFBFBD><1D>U<EFBFBD>)<29>a<EFBFBD>"<22>[<5B>/<2F>&9<>9<>B<EFBFBD><EFBFBD><17><18><15>i<EFBFBD>*<2A>*<2A>,<2C>,<2C>4<>4<>Q<EFBFBD>7<>7<>;<3B>;<3B>=<3D>=<3D>B<EFBFBD>{<7B>O<EFBFBD><12>6<EFBFBD>
<EFBFBD>R<EFBFBD><17>&<26> 1<>2<>6<>6<>A<EFBFBD>6<>><3E>><3E>><3E>"<22>W<EFBFBD>+<2B>M<>B<EFBFBD>t<EFBFBD>H<EFBFBD><14>g<EFBFBD>v<EFBFBD>&<26>'<27>+<2B>+<2B><11>+<2B>3<>3<>b<EFBFBD><15>i<EFBFBD>?<3F>2<EFBFBD>g<EFBFBD>;<3B>N<>B<EFBFBD>v<EFBFBD>J<EFBFBD><1B>=<3D>=<3D> +<2B> +<2B><06><06>B<EFBFBD>x<EFBFBD>L<EFBFBD><1A>-<2D>-<2D> +<2B> +<2B><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD> <18> <0A> <0A>Y<>Y<><06><06>B<EFBFBD>u<EFBFBD>I<EFBFBD><1C>M<EFBFBD>M<EFBFBD>T<>T<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD><1B>5<EFBFBD> <09>B<EFBFBD>y<EFBFBD>M<EFBFBD>1<>B<EFBFBD>}<7D><15><1A>-<2D>-<2D>V<>V<><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD><1A>-<2D>-<2D>V<>V<><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD><1A>-<2D>-<2D>V<>V<><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD>
<1D>W<EFBFBD>%<25>+<2B>+<2B>,H<>,H<>I<>I<>B<EFBFBD>z<EFBFBD>N<EFBFBD><1D>g<EFBFBD>&<26>,<2C>,<2C>-J<>-J<>K<>K<>B<EFBFBD>{<7B>O<EFBFBD><1D>g<EFBFBD>&<26>,<2C>,<2C>-J<>-J<>K<>K<>B<EFBFBD>{<7B>O<EFBFBD>
!<21><17>)<29>/<2F>/<2F>0`<60>0`<60>a<>a<>B<EFBFBD>~<7E><16>!<21>'<27>*<2A>0<>0<>1b<31>1b<31>c<>c<>B<EFBFBD><EFBFBD><17>!<21>'<27>*<2A>0<>0<>1b<31>1b<31>c<>c<>B<EFBFBD><EFBFBD><17>!<21>'<27>*<2A>0<>0<>1b<31>1b<31>c<>c<>B<EFBFBD><EFBFBD><17>#<23>G<EFBFBD>,<2C>2<>2<>3n<33>3n<33>o<>o<>B<EFBFBD><18><19>*,<2C>N<EFBFBD>);<3B>b<EFBFBD><1F>>Q<>)Q<>B<EFBFBD>%<25>&<26>)+<2B>N<EFBFBD>);<3B>b<EFBFBD><1F>>Q<>)Q<>B<EFBFBD>%<25>&<26>-/<2F><EFBFBD>,?<3F>"<22>EV<45>BW<42>,W<>B<EFBFBD>(<28>)<29> <0A>Ir5Tc<00><><00>|<00>ddg<02><03><00>}|<00>dd<04><05><00>}|d<00>d<07><00><00>|d<|d<00>d <09><00><00>|d
<|d<00>d <0B><00><00>|d <|d<00>d <0A><00><00>|d<|d<00>d<0F><00><00>|d<|d
<00>d<11><00><00>|d<|d <00>d<13><00><00>|d<|d<00>d<15><00><00>|d<|rN|ddk|d<|d|dk|d<|d|dk|d<|d|dk|d<|d|dz|dz|dz|d<|d|dz
tj|ddz|ddzz<00><00>z |d<|<00>dd<04><05><00>d<00>dd<1F> <20><00>|d!<|<00>dd<04><05><00>d<00>dd<1F> <20><00>|d"<|<00>dd<04><05><00>d<00>dd<1F> <20><00>|d#<|S)$NrrrFrr"c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>S<00>Nr rCr)<00>r,r-rF<00>EMArHr*r0s r2r3z get_act_factor.<locals>.<lambda>w<00>(<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD>h<EFBFBD>1<EFBFBD>=<3D>=<3D>=<3D>Q<EFBFBD>W<EFBFBD>M<>M<>M<>r5<00>_ema_5c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>S<00>N<> rCr)r<>r0s r2r3z get_act_factor.<locals>.<lambda>z<00>(<00><00>"<22>)<29>E<EFBFBD>I<EFBFBD>a<EFBFBD>h<EFBFBD>2<EFBFBD>><3E>><3E>><3E>a<EFBFBD>g<EFBFBD>N<>N<>N<>r5<00>_ema_13c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>S<00>Nr(rCr)r<>r0s r2r3z get_act_factor.<locals>.<lambda>}r<>r5<00>_ema_20c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>S<00>N<><rCr)r<>r0s r2r3z get_act_factor.<locals>.<lambda><3E>r<>r5<00>_ema_60c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz S<00>Nr<00>d<00>fffff<66>L@<40>2<00>r<><00>arctanrmr0s r2r3z get_act_factor.<locals>.<lambda><3E><00>2<00><00>"<22>)<29>Q<EFBFBD><11><17><17><11><1A><1A>^<5E>a<EFBFBD>/<2F>3<EFBFBD>6<>7<>7<>$<24>><3E><12>C<>r5<00> act_factor1c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz S<00>Nrr<>r<><00>(r<>r0s r2r3z get_act_factor.<locals>.<lambda><3E>r<>r5<00> act_factor2c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz S<00>Nrr<>r<><00>r<>r0s r2r3z get_act_factor.<locals>.<lambda><3E>r<>r5<00> act_factor3c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz S<00>Nrr<>r<>rrr<>r0s r2r3z get_act_factor.<locals>.<lambda><3E>r<>r5<00> act_factor4r<00>cat_af1<66>cat_af2<66>cat_af3<66>cat_af4<66> act_factor5r<00> act_factor6T<36><02> ascending<6E>pct<63>rank_act_factor1<72>rank_act_factor2<72>rank_act_factor3)r<>r<>r<>r<><00>sqrt<72>rank)r<><00>catr<74>s r2<00>get_act_factorr<72>qs<><00><00> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><10>j<EFBFBD>j<EFBFBD><19>u<EFBFBD>j<EFBFBD>5<>5<>G<EFBFBD><1A>7<EFBFBD>#<23>)<29>)<29>M<>M<><06><06>B<EFBFBD>x<EFBFBD>L<EFBFBD><1C>G<EFBFBD>$<24>*<2A>*<2A>N<>N<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD><1C>G<EFBFBD>$<24>*<2A>*<2A>N<>N<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD><1C>G<EFBFBD>$<24>*<2A>*<2A>N<>N<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD>
 <20><08>)<29>/<2F>/<2F>C<>C<><06><06>B<EFBFBD>}<7D><15> <20> <09>*<2A>0<>0<>C<>C<><06><06>B<EFBFBD>}<7D><15> <20> <09>*<2A>0<>0<>C<>C<><06><06>B<EFBFBD>}<7D><15> <20> <09>*<2A>0<>0<>C<>C<><06><06>B<EFBFBD>}<7D><15> <0B>><3E><1A>=<3D>)<29>A<EFBFBD>-<2D><02>9<EFBFBD> <0A><1A>=<3D>)<29>B<EFBFBD>}<7D>,=<3D>=<3D><02>9<EFBFBD> <0A><1A>=<3D>)<29>B<EFBFBD>}<7D>,=<3D>=<3D><02>9<EFBFBD> <0A><1A>=<3D>)<29>B<EFBFBD>}<7D>,=<3D>=<3D><02>9<EFBFBD> <0A><1B>=<3D>)<29>B<EFBFBD>}<7D>,=<3D>=<3D><02>=<3D>@Q<>Q<>TV<54>Wd<57>Te<54>e<>B<EFBFBD>}<7D><15><1B>M<EFBFBD>*<2A>R<EFBFBD> <0A>-><3E>><3E>"<22>'<27>
<EFBFBD>=<3D><19>Q<EFBFBD><1E><12>M<EFBFBD>!2<>a<EFBFBD>!7<>7<>C9<>C9<>9<>B<EFBFBD>}<7D><15> <20>Z<EFBFBD>Z<EFBFBD> <0C><15>Z<EFBFBD>G<>G<> <0A>V<>[<5B>[<5B>fk<66>qu<71>[<5B>v<>v<>B<EFBFBD><19><1A><1F>Z<EFBFBD>Z<EFBFBD> <0C><15>Z<EFBFBD>G<>G<> <0A>V<>[<5B>[<5B>fk<66>qu<71>[<5B>v<>v<>B<EFBFBD><19><1A><1F>Z<EFBFBD>Z<EFBFBD> <0C><15>Z<EFBFBD>G<>G<> <0A>V<>[<5B>[<5B>fk<66>qu<71>[<5B>v<>v<>B<EFBFBD><19><1A> <0A>Ir5c<00>,<00>|d|dz |d<|d|dz |d<|d|dz |d<|d|dz
|dz |d <|d|d
z
|dz |d <tj|d <00><00>|d <|S)N<>
buy_lg_vol<EFBFBD>
net_mf_vol<EFBFBD>active_buy_volume_large<67> buy_elg_vol<6F>active_buy_volume_big<69>
buy_sm_vol<EFBFBD>active_buy_volume_small<6C> sell_lg_vol<6F>buy_lg_vol_minus_sell_lg_vol<6F> sell_elg_vol<6F>buy_elg_vol_minus_sell_elg_vol<6F>circ_mv<6D> log(circ_mv))r<>r<>)r<>s r2<00>get_money_flow_factorr<72><00>s<><00><00>$&<26>|<7C>$4<>r<EFBFBD>,<2C>7G<37>$G<>B<EFBFBD> <20>!<21>"$<24>]<5D>"3<>b<EFBFBD><1C>6F<36>"F<>B<EFBFBD><1E><1F>$&<26>|<7C>$4<>r<EFBFBD>,<2C>7G<37>$G<>B<EFBFBD> <20>!<21>*,<2C>\<5C>*:<3A>R<EFBFBD> <0A>=N<>*N<>RT<52>Ua<55>Rb<52>)b<>B<EFBFBD>%<25>&<26>,.<2E>}<7D>,=<3D><02>><3E>@R<>,R<>VX<56>Ye<59>Vf<56>+f<>B<EFBFBD>'<27>(<28><1B><16><02>9<EFBFBD> <0A>.<2E>.<2E>B<EFBFBD>~<7E><16> <0A>Ir5c<00>R<00>|<00>ddg<02><03><00>}|<00>d<01><00>}d<04>}d<05>}d<06>}d<07>}d}d }d}||d
|d |<06><00>|d <||d |<08><00>|d <|||d|<07><00><00><00>|d<d|d z|dz|d<tj|d
|dk|d|dz
|d
|dz
z d<14><00>|d<|<01>d<16><00><00><00>dd<17><18><00>|d<|<00>dd<1A><1B><00>d<00>dd<17><1C><00>|d<|d<00>d<1D><00><00>|d<|<00>dd<1A><1B><00>d<00>dd<17><1C><00>|d<|S)Nrrrc<00>R<00>|<00>|<02><00><00>|<01><00>S<00>N<>r.<00>cov<6F>r1<00>yr s r2<00>rolling_covariancez,get_alpha_factor.<locals>.rolling_covariance<63><00>"<00><00><10>y<EFBFBD>y<EFBFBD><16> <20> <20>$<24>$<24>Q<EFBFBD>'<27>'<27>'r5c<00>,<00>|<00>|<01><00>Sr<><00><01>diff<66><02>series<65>periods r2<00>deltazget_alpha_factor.<locals>.delta<74><00><00><00><15>{<7B>{<7B>6<EFBFBD>"<22>"<22>"r5c<00>.<00>|<00>d<01><02><00>S<00>NT)r<><00>r<><00>r<>s r2r<>zget_alpha_factor.<locals>.rank<6E><00><00><00><15>{<7B>{<7B>t<EFBFBD>{<7B>$<24>$<24>$r5c<00>P<00>|<00>|<01><00><00><00><00>Sr<><00>r.r|<00>r<>r s r2<00>stddevz get_alpha_factor.<locals>.stddev<65><00> <00><00><15>~<7E>~<7E>f<EFBFBD>%<25>%<25>)<29>)<29>+<2B>+<2B>+r5r r(r9<00>volumer<65><00> delta_covr"<00> _rank_stddev<65><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alpha_22_improvedr>r:r<00> alpha_003c<00>j<00>|d<00>d<02><00><00>|d<00><00>S<00>Nr"r r<00>r.<00>corrr0s r2r3z"get_alpha_factor.<locals>.<lambda><3E><00>*<00><00>a<EFBFBD><07>j<EFBFBD>.@<40>.@<40><11>.C<>.C<>.H<>.H<><11>5<EFBFBD><18>.R<>.R<>r5Tr<00> alpha_007Frr<>c<00><><00>|<00>d<01><00><00><00><00>|<00>d<02><00><00><00><00>z
S<00>Nr r(<00>r.<00>sumr0s r2r3z"get_alpha_factor.<locals>.<lambda><3E><00>=<00><00>1<EFBFBD>9<EFBFBD>9<EFBFBD>Q<EFBFBD><<3C><<3C>;K<>;K<>;M<>;M<>PQ<50>PY<50>PY<50>Z\<5C>P]<5D>P]<5D>Pa<50>Pa<50>Pc<50>Pc<50>;c<>r5<00> alpha_013)r<>r<>r<><00>wherer<65>r<>r<><00> transform) r<>r<>r<>r<>r<>r<00>window_high_volume<6D>window_close_stddev<65> period_deltas r2<00>get_alpha_factorr<00>s<><00><00> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><10>j<EFBFBD>j<EFBFBD><19>#<23>#<23>G<EFBFBD>(<28>(<28>(<28>#<23>#<23>#<23>%<25>%<25>%<25>,<2C>,<2C>,<2C><1B><16><1C><17><14>L<EFBFBD>"<22>"<22>2<EFBFBD>f<EFBFBD>:<3A>r<EFBFBD>(<28>|<7C>=O<>P<>P<>B<EFBFBD>u<EFBFBD>I<EFBFBD><1B>e<EFBFBD>B<EFBFBD>u<EFBFBD>I<EFBFBD>|<7C>4<>4<>B<EFBFBD>{<7B>O<EFBFBD><1D><14>f<EFBFBD>f<EFBFBD>R<EFBFBD><07>[<5B>2E<32>F<>F<>G<>G<>B<EFBFBD>~<7E><16> <20>2<EFBFBD>k<EFBFBD>?<3F>2<>R<EFBFBD><0E>5G<35>G<>B<EFBFBD><1A><1B><19>h<EFBFBD>r<EFBFBD>&<26>z<EFBFBD>R<EFBFBD><05>Y<EFBFBD>6<> "<22>7<EFBFBD> <0B>b<EFBFBD><16>j<EFBFBD> 8<>R<EFBFBD><06>Z<EFBFBD>"<22>U<EFBFBD>)<29>=S<>T<> <20>"<22>"<22>B<EFBFBD>{<7B>O<EFBFBD>
<1E>m<EFBFBD>m<EFBFBD>$R<>$R<>S<>S<>_<>_<>fg<66>nr<6E>_<>s<>s<>B<EFBFBD>{<7B>O<EFBFBD><18>j<EFBFBD>j<EFBFBD><1C>%<25>j<EFBFBD>@<40>@<40><1B>M<>R<>R<>]a<>gk<67>R<>l<>l<>B<EFBFBD>{<7B>O<EFBFBD><1E>g<EFBFBD>&<26>0<>0<>1c<31>1c<31>d<>d<>B<EFBFBD>{<7B>O<EFBFBD><18>j<EFBFBD>j<EFBFBD><1C>%<25>j<EFBFBD>@<40>@<40><1B>M<>R<>R<>]a<>gk<67>R<>l<>l<>B<EFBFBD>{<7B>O<EFBFBD> <0A>Ir5c<00><><00><02>|<00>ddg<02><03><00>}|<00>dd<04><05><00>}|d|dk<00>t<00><00>|d<|d|d k<00>t<00><00>|d
<|d<00>d d <0C> <0A><00><00><00><00><00>dd<0F><10><00>|d<|d
<00>d d <0C> <0A><00><00><00><00><00>dd<0F><10><00>|d<d<13><00>|d<00><00>fd<14><08><00><00>dd<0F><10><00>|d<|S)NrrrFrr"<00>up_limit<69> cat_up_limit<69>
down_limit<EFBFBD>cat_down_limitrrr<00>r <00> min_periodsrTr<00>up_limit_count_10d<30>down_limit_count_10dc<00>^<00>||<00>||<00><00><00>k<00><00><00><00><00><00><00><00>dzz}||<00>||<00><00><00>k<00><00><00><00><00><00><00><00>dzz}||fS<00>u4
计算连续涨停/跌停天数。
r<00>r<>rm<00>cumsum<75>cumcount<6E>r<><00>consecutive_up<75>consecutive_downs r2<00>calculate_consecutive_limitsz6get_limit_factor.<locals>.calculate_consecutive_limits<74><00><><00><00> <20>6<EFBFBD>><3E>><3E>6<EFBFBD>V<EFBFBD>\<5C>\<5C>^<5E>^<5E>3K<33>2S<32>2S<32>2U<32>2U<32>#V<>#V<>#_<>#_<>#a<>#a<>de<64>#e<>f<><0E>!<21>V<EFBFBD>^<5E>^<5E>V<EFBFBD>v<EFBFBD>|<7C>|<7C>~<7E>~<7E>5M<35>4U<34>4U<34>4W<34>4W<34>%X<>%X<>%a<>%a<>%c<>%c<>fg<66>%g<>h<><18><1D>/<2F>/<2F>/r5c<00>&<00><01><00>|<00><00>dS<00>Nr<00><00>r1r0s <20>r2r3z"get_limit_factor.<locals>.<lambda><3E><00><00><><00>.<2E>.<2E>q<EFBFBD>1<>1<>!<21>4<>r5<00>consecutive_up_limit)r<>r<><00>astype<70>intr.rr<>r<>)r<>r<>r0s @r2<00>get_limit_factorr:<00>sw<00><><00> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><11>j<EFBFBD>j<EFBFBD><19>u<EFBFBD>j<EFBFBD>5<>5<>G<EFBFBD><1D>W<EFBFBD>+<2B><12>J<EFBFBD><1E>7<>?<3F>?<3F><03>D<>D<>B<EFBFBD>~<7E><16><1E>w<EFBFBD>K<EFBFBD>2<EFBFBD>l<EFBFBD>+;<3B>;<3B>C<>C<>C<EFBFBD>H<>H<>B<EFBFBD><17><18> '<27>~<7E>6<>><3E>><3E>b<EFBFBD>VW<56>><3E>X<>X<>\<5C>\<5C>^<5E>^<5E>j<>j<>qr<71>pt<70> k<01> v<01> v<01>B<EFBFBD><1B><1C>!(<28>)9<>!:<3A>!B<>!B<>"<22>Z[<5B>!B<>!\<5C>!\<5C>!`<60>!`<60>!b<>!b<>!n<>!n<>uv<75>tx<74>"o<01>"z<01>"z<01>B<EFBFBD><1D><1E>0<>0<>0<>")<29><1E>!8<>!><3E>!><3E>4<>4<>4<>4<>"<06>"<06><11>k<EFBFBD><01><04>k<EFBFBD>%<25>%<25><07><1D><1E> <0E>Ir5c<00><><00>|<00>ddg<02><03><00>}|<00>dd<04><05><00>}|d|dz
|d|d z
z |d
<|d |d z
|d |d z
z |d<|d|d z
|d |d z
z |d<|dd|d|d z
|d|d z
z z
z|d<tj|d |dk|ddkzdd<16><00>|d<|d<00>d<19><00><00>|d<d<1B>}|<01>|<02><00>|d<d<1D>}|<01>|<03><00>|d<|d|d z
|dz |d<d|d z |d|dz
z|d!<|d<00>d"<22><00><00>|d#<|d#|d<00>d$<24><00><00>z |d%<|<01>d&<26><00><00>|d'<|d |dk|dd(kz|d)d*kz|d+<|d|d z
d|d,<00>d-<2D><00><00>z z|d.<|<00>d#gd/d0<64>1<EFBFBD><00>|S)2NrrrFr<00>
cost_85pct<EFBFBD>
cost_15pct<EFBFBD>his_high<67>his_low<6F> ctrl_strengthr"<00> cost_5pct<63>
cost_50pct<EFBFBD> low_cost_dev<65>
cost_95pct<EFBFBD> asymmetryrr<00> lock_factorrrr<00> vol_break<61>
weight_avgc<00>,<00>|<00>d<01><00>S<00>Nr <00>r{r0s r2r3z%get_cyp_perf_factor.<locals>.<lambda><00><00><00>a<EFBFBD>l<EFBFBD>l<EFBFBD>1<EFBFBD>o<EFBFBD>o<EFBFBD>r5<00> weight_roc5c<00><><00>|d<00><00><00>}|d<00><00><00>}|<01>d<03><00><00>|<02><00>S<00>Nr"rHrr<00>r{r.r<00><03>group<75> roc_close<73>
roc_weights r2<00> rolling_corrz)get_cyp_perf_factor.<locals>.rolling_corr<00>O<00><00><19>'<27>N<EFBFBD>-<2D>-<2D>/<2F>/<2F> <09><1A><<3C>(<28>3<>3<>5<>5<>
<EFBFBD><18> <20> <20><12>$<24>$<24>)<29>)<29>*<2A>5<>5<>5r5<00>price_cost_divergencec <00>^<00>|d|d|d}}}tj||z
tjt||<03><00><00>z
<00><00>t||<03><00><00>z
<00><00><00><00><00><00>}|<04>d<04><00><00><00><00>S)Nr9r>r"rB)r<><00>maximum<75>absrmr.r/)rRr9r>r"<00>trs r2<00>calc_atrz%get_cyp_perf_factor.<locals>.calc_atrs<><00><00> <20><16>=<3D>%<25><05>,<2C><05>g<EFBFBD><0E>5<EFBFBD>c<EFBFBD><04> <0F>Z<EFBFBD><04>s<EFBFBD>
<EFBFBD><1A>
<EFBFBD>3<EFBFBD>t<EFBFBD>e<EFBFBD>k<EFBFBD>k<EFBFBD>m<EFBFBD>m<EFBFBD>';<3B>#<<3C>#<<3C>#&<26>s<EFBFBD>U<EFBFBD>[<5B>[<5B>]<5D>]<5D>':<3A>#;<3B>#;<3B>=<3D>=<3D>><3E>><3E><02><12>z<EFBFBD>z<EFBFBD>"<22>~<7E>~<7E>"<22>"<22>$<24>$<24>$r5rJ<00> cost_atr_adjr<6A><00>smallcap_concentrationc<00>P<00>|<00>d<01><00><00><00><00>S<00>Nr(rr0s r2r3z%get_cyp_perf_factor.<locals>.<lambda>-<00><00><00>q<EFBFBD>y<EFBFBD>y<EFBFBD><12>}<7D>}<7D>?P<>?P<>?R<>?R<>r5<00> weight_std20c<00>P<00>|<00>d<01><00><00><00><00>Sr`<00>r.r/r0s r2r3z%get_cyp_perf_factor.<locals>.<lambda>.<00>"<00><00>Z[<5B>Zc<5A>Zc<5A>df<64>Zg<5A>Zg<5A>Zl<5A>Zl<5A>Zn<5A>Zn<5A>r5<00>cost_stabilityc<00><><00>|d<00>|d<00><00><00>d<03><00><00><00><00>S<00>Nr"rDr <00><03>gtr.r<00><01>gs r2r3z%get_cyp_perf_factor.<locals>.<lambda>1<00>5<00><00><11>7<EFBFBD><1A><1D><1D>q<EFBFBD><1C><EFBFBD>9W<39>9W<39>9_<39>9_<39>`a<>9b<39>9b<39>9f<39>9f<39>9h<39>9h<39>r5<00>high_cost_break_days<79><00>?<3F> winner_rate<74>ffffff<66>?<3F>cat_golden_resonancerc<00>P<00>|<00>d<01><00><00><00><00>S<00>Nrrrdr0s r2r3z%get_cyp_perf_factor.<locals>.<lambda>:<00><00><00>1<EFBFBD>9<EFBFBD>9<EFBFBD>R<EFBFBD>=<3D>=<3D>3E<33>3E<33>3G<33>3G<33>r5<00>liquidity_riskT<6B>ignore<72><03>columns<6E>inplace<63>errors)r<>r<>r<>rr<>rr)r<>r<>rUr\s r2<00>get_cyp_perf_factorr|s<><00><00> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><11>j<EFBFBD>j<EFBFBD><19>u<EFBFBD>j<EFBFBD>5<>5<>G<EFBFBD><1D>l<EFBFBD>+<2B>b<EFBFBD><1C>.><3E>><3E>2<EFBFBD>j<EFBFBD>><3E>TV<54>W`<60>Ta<54>Ca<43>b<>B<EFBFBD><EFBFBD><17><1C>W<EFBFBD>+<2B><02>;<3B><0F>7<>B<EFBFBD>|<7C><L<>r<EFBFBD>R]<5D><EFBFBD><^<5E>_<>B<EFBFBD>~<7E><16><19>,<2C>'<27>"<22>\<5C>*:<3A>:<3A>r<EFBFBD>,<2C>?O<>RT<52>U`<60>Ra<52>?a<>b<>B<EFBFBD>{<7B>O<EFBFBD><1A>?<3F>+<2B> <0A><12>L<EFBFBD>!<21>B<EFBFBD>{<7B>O<EFBFBD>3<><02>:<3A><0E><12>I<EFBFBD><1D>8V<38>W<> W<>Y<01>B<EFBFBD>}<7D><15><19>h<EFBFBD><02>7<EFBFBD> <0B>b<EFBFBD><1C>.><3E> ><3E>2<EFBFBD>n<EFBFBD>CU<43>XY<58>CY<43>Z<>\]<5D>_`<60>a<>a<>B<EFBFBD>{<7B>O<EFBFBD><1F> <0C>-<2D>3<>3<>4M<34>4M<34>N<>N<>B<EFBFBD>}<7D><15>6<>6<>6<>
#*<2A>-<2D>-<2D> <0C>"=<3D>"=<3D>B<EFBFBD><1E><1F>%<25>%<25>%<25><1B>=<3D>=<3D><18>*<2A>*<2A>B<EFBFBD>x<EFBFBD>L<EFBFBD><1C>\<5C>*<2A>R<EFBFBD> <0B>_<EFBFBD><<3C><02>8<EFBFBD> <0C>L<>B<EFBFBD>~<7E><16>%&<26><02>9<EFBFBD> <0A>$5<>"<22>\<5C>:J<>R<EFBFBD>P\<5C>M]<5D>:]<5D>#^<5E>B<EFBFBD><1F> <20>!<21><1C>.<2E>4<>4<>5R<35>5R<35>S<>S<>B<EFBFBD>~<7E><16><1D>n<EFBFBD>-<2D><07> <0C>0E<30>0O<30>0O<30>Pn<50>Pn<50>0o<30>0o<30>o<>B<EFBFBD><17><18>")<29><1D><1D>/h<>/h<>!i<>!i<>B<EFBFBD><1D><1E>$&<26>g<EFBFBD>;<3B><12>L<EFBFBD>1A<31>#A<>#%<25>n<EFBFBD>#5<><03>#;<3B>#=<3D>#%<25>m<EFBFBD>#4<>s<EFBFBD>#:<3A>#<<3C>B<EFBFBD><1D><1E>
<1F>|<7C>,<2C>r<EFBFBD>+<2B><EFBFBD>><3E> <0A><07><05><0E>(<28>(<28>)G<>)G<>H<>H<> H<>J<01>B<EFBFBD><17><18><07>G<EFBFBD>G<EFBFBD>^<5E>$<24>d<EFBFBD>8<EFBFBD>G<EFBFBD>D<>D<>D<> <0A>Ir5c<00><00>|<00>ddg<02><03><00>}|<00>dd<04><05><00>}|d|dz |d<|d |dz |d
<|dd |dz z|d <|d |dz |d <|d|dz |d<|d|dz|dz |d<|d<00>d<11><12><00><00><00><00><00>dd<14><15><00>|d<|<01>d<17><00><00><00>dd<14><15><00>|d<|d <00>d<11><19><00><00>dd<14><15><00>|d<|<01>d<1B><00><00><00>dd<14><15><00>|d<|S)u+
计算多个因子并生成最终的综合因子。
参数:
df (pd.DataFrame): 包含 ts_code, trade_date, turnover_rate, pe_ttm, pb, ps, circ_mv, volume_ratio, vol 等列的数据框。
返回:
pd.DataFrame: 包含新增因子和最终综合因子的数据框。
rrrFrrr<><00>mv_turnover_ratior<00>mv_adjusted_volumer<00>mv_weighted_turnover<65>nonlinear_mv_volumer<00>mv_volume_ratio<69> mv_momentumr(r rTr<00> turnover_stdc<00>$<00>|d|dz S<00>Nr<4E>r<>r4r0s r2r3z get_mv_factors.<locals>.<lambda>e<00><00><00>!<21>N<EFBFBD>2C<32>a<EFBFBD> <09>l<EFBFBD>2R<32>r5<00> mv_volatility<74><01>periods<64> volume_growthc<00>$<00>|d|dz S<00>Nr<4E>r<>r4r0s r2r3z get_mv_factors.<locals>.<lambda>i<00><00><00>a<EFBFBD><0F>.@<40>1<EFBFBD>Y<EFBFBD><<3C>.O<>r5<00> mv_growth)r<>r<>r.r|r<>r<>r{)r<>r<>s r2<00>get_mv_factorsr<73>As<><00><00>
<0C><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><11>j<EFBFBD>j<EFBFBD><19>u<EFBFBD>j<EFBFBD>5<>5<>G<EFBFBD>!<21><1F>1<>B<EFBFBD>y<EFBFBD>M<EFBFBD>A<>B<EFBFBD><1A><1B> "<22>%<25>y<EFBFBD>2<EFBFBD>i<EFBFBD>=<3D>8<>B<EFBFBD><1B><1C>"$<24>O<EFBFBD>!4<><01>B<EFBFBD>y<EFBFBD>M<EFBFBD>8I<38>!J<>B<EFBFBD><1D><1E>!#<23>5<EFBFBD> <09>B<EFBFBD>y<EFBFBD>M<EFBFBD> 9<>B<EFBFBD><1C><1D><1F>~<7E>.<2E><12>I<EFBFBD><1D>><3E>B<EFBFBD><18><19><1B>?<3F>+<2B>b<EFBFBD><1E>.@<40>@<40>2<EFBFBD>i<EFBFBD>=<3D>P<>B<EFBFBD>}<7D><15>!<21><1F>1<>9<>9<><12>9<>D<>D<>H<>H<>J<>J<>V<>V<>]^<5E>ei<65>V<>j<>j<>B<EFBFBD>~<7E><16>!<21>-<2D>-<2D>(R<>(R<>S<>S<>_<>_<>fg<66>nr<6E>_<>s<>s<>B<EFBFBD><EFBFBD><17>"<22>%<25>.<2E>3<>3<>B<EFBFBD>3<>?<3F>?<3F>K<>K<>RS<52>Z^<5E>K<>_<>_<>B<EFBFBD><EFBFBD><17><1D>m<EFBFBD>m<EFBFBD>$O<>$O<>P<>P<>\<5C>\<5C>cd<63>ko<6B>\<5C>p<>p<>B<EFBFBD>{<7B>O<EFBFBD> <0E>Ir5c<00><00><0F><10>|j<00><00><00>dd<00><00>|<00>ddg<02><03><00>}|<00>dd<04><05><00>}|d<00>d<07><00>|dz
|dz |d <|d
<00>d <0B> <0C><00><00><00><00><00>d d<0E><0F><00>|d<|d
<00>d <0B> <0C><00><00><00><00><00>d d<0E><0F><00>|d<|d<00>d<13> <0C><00><00> <00><00>|d<00>d<14> <0C><00><00> <00><00>z dz
<00>d d<0E><16><00>|d<|d<00>d <0B> <0C><00><00>
<00><00><00>d d<0E><16><00>}|d|k|d<|d<00>d<1A> <0C><00><00> <00><00><00>d d<0E><16><00>}|d<00>d<1A> <0C><00><00> <00><00><00>d d<0E><16><00>}|d|z
|z |d<|d|d|zzk|d<|d<00>d<1A> <0C><00><00> <00><00><00>d d<0E><16><00>|d<|d<00>d <0B> <0C><00><00>
<00><00><00>d d<0E><16><00>}|d|k|d<|<01> d <20><00><00>|d!<|d<00> <00><00><00>d <0B><00><00> <00><00>|d"<|<01> d#<23><00><00>|d$<|<01> d%<25><00><00>|d&<|<01> d'<27><00><00>|d(<|<01> d)<29><00><00>|d*<|<01> d+<2B><00><00>|d,<|<01> d-<2D><00><00>|d.<|<01> d/<2F><00><00>|d0<|d<00> d1<64><00><00>|d2<|d<00> d3<64><00><00>|d4<|d<00> d5<64><00><00>|d6<|d<00> d7<64><00><00>|d8<|d<00> d9<64><00><00>|d:<|d<00> d;<3B><00><00>|d<<|d<00> d=<3D><00><00>|d><|d<00> d?<3F><00><00>|d@<|d<00> dA<64><00><00>|dB<|d<00> dC<64><00><00>|dD<|d<00> dE<64><00><00>|dF<|d<00> dG<64><00><00>|dH<|dB<00> dI<64><00><00>|dJ<|dD<00> dK<64><00><00>|dL<|dF<00> dM<64><00><00>|dN<|dH<00> dO<64><00><00>|dP<|<00>dd<04><05><00>dJ<00>dd<0E>Q<EFBFBD><00>|dR<|<00>dd<04><05><00>dL<00>dd<0E>Q<EFBFBD><00>|dS<|<00>dd<04><05><00>dN<00>dd<0E>Q<EFBFBD><00>|dT<tj|dU<00><00>|dV<dW<64>}dX<64>}dY<64>}dZ<64>} d }
d[} d } ||d\|d|
<EFBFBD><00>|d]<||d]| <0C><00>|d^<|| |d| <0B><00><00><00>|d_<d|d^z|d_z|d`<tj|d\|dak|d|dz
|d\|daz
z d <0A><00>|db<|<01> dc<64><00><00><00>d d<0E><16><00>|dd<|<00>dd<04><05><00>dd<00>dd<0E>Q<EFBFBD><00>|dd<|d<00>de<64><00><00>|df<|<00>dd<04><05><00>df<00>dd<0E>Q<EFBFBD><00>|df<|d|dgk|dh<|d|dik|dj<|dh<00>dd<15>k<EFBFBD><00><00><00><00><00>d d<0E><16><00>|dl<|dj<00>dd<15>k<EFBFBD><00><00><00><00><00>d d<0E><16><00>|dm<dn<64><00>|dh<00> <00>fdo<64><08><00><00>d d<0E><16><00>|dp<tj|d|dqk|ddkzdd <0A><00>|dr<|ds<00> dt<64><00><00>|du<dv<64>} |<01> | <0A><00>|dw<d|dUz |dq|dxz
z|dy<|ds<00> dz<64><00><00>|d{<|d{|ds<00>d|<7C><00><00>z |d}<|<01> d~<7E><00><00>|d<|d<>|d<>z
d|d<00>d<><64><00><00>z z|d<><|d<00>d[<5B> <0C><00><00> <00><00><00>d d<0E><16><00>|d<><|<01> d<><64><00><00><00>d d<0E><16><00>|d<><|d<00> d[<5B><><EFBFBD><00><00>d d<0E><16><00>|d<><|<01> d<><64><00><00><00>d d<0E><16><00>|d<><|<00>d{gdd<><64><EFBFBD><EFBFBD><00><00>fd<><64>|j<00><00><00>dd<00>D<00><00>}||fS)<29>NrrrFrr:r
r"<00> gap_next_openr
r r rTrrrrrrrrrrrrrrrrrrc<00><><00>tj|d<00>d<02><00><00><00><00>|j<00><03><00>Sr'r+r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r4r5r6r8c<00><><00>tjtj|dj|dj|djd<04><05><00>|j<00><06><00>SrArEr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rIr5rJc<00><><00>tjtj|dj|dj|djd<04><05><00>|j<00><06><00>SrLrEr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rNr5rOc<00><><00>tjtj|dj|dj<00><00>|j<00><03><00>SrQrRr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rTr5rUc<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>SrWrXr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rZr5r[c<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>Sr^r_r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rar5rbc<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>Srdr_r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rar5rec<00>v<00>tjtj|djd<02><03><00>|j<00><04><00>Srgr_r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rar5ric<00>8<00>||<00>d<01><00>z dz
Srkrlr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rnr5roc<00>8<00>||<00>d<01><00>z dz
Srqrlr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rsr5rtc<00>8<00>||<00>d<01><00>z dz
Srvrlr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>rsr5rwc<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>Sryrzr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r}r5r~c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>Sr<>rzr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>Sr<>rzr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>v<00>|<00><00><00><00>d<01><02><00><00><00><00>Sr<>rzr0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00><><00>|<00>d<01><00><00><00><00><00>d<02><03><00><00><00><00>Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>j<00>tjtj|jd<01><02><00>|j<00><03><00>Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>c<00>n<00>tj||<00>d<01><00>z dz
dz<00><00>dzdz Sr<>r<>r0s r2r3z$get_rolling_factor.<locals>.<lambda><3E>r<>r5r<>r<>r<>r<>r<>r<>r<>c<00>R<00>|<00>|<02><00><00>|<01><00>Sr<>r<>r<>s r2r<>z.get_rolling_factor.<locals>.rolling_covariance<63>r<>r5c<00>,<00>|<00>|<01><00>Sr<>r<>r<>s r2r<>z!get_rolling_factor.<locals>.delta<74>r<>r5c<00>.<00>|<00>d<01><02><00>Sr<>r<>rs r2r<>z get_rolling_factor.<locals>.rank<6E>rr5c<00>P<00>|<00>|<01><00><00><00><00>Sr<>rrs r2rz"get_rolling_factor.<locals>.stddev<65>rr5r(r9r<>rr r r>r c<00>j<00>|d<00>d<02><00><00>|d<00><00>Srrr0s r2r3z$get_rolling_factor.<locals>.<lambda> rr5rc<00><><00>|<00>d<01><00><00><00><00>|<00>d<02><00><00><00><00>z
Srrr0s r2r3z$get_rolling_factor.<locals>.<lambda>rr5rr r!r"r#r$r&r'c<00>^<00>||<00>||<00><00><00>k<00><00><00><00><00><00><00><00>dzz}||<00>||<00><00><00>k<00><00><00><00><00><00><00><00>dzz}||fSr)r*r-s r2r0z8get_rolling_factor.<locals>.calculate_consecutive_limitsr1r5c<00>&<00><01><00>|<00><00>dSr3r4r5s <20>r2r3z$get_rolling_factor.<locals>.<lambda>%r6r5r7r<rGrHc<00>,<00>|<00>d<01><00>SrJrKr0s r2r3z$get_rolling_factor.<locals>.<lambda>*rLr5rMc<00><><00>|d<00><00><00>}|d<00><00><00>}|<01>d<03><00><00>|<02><00>SrOrPrQs r2rUz(get_rolling_factor.<locals>.rolling_corr,rVr5rWr=r^c<00>P<00>|<00>d<01><00><00><00><00>Sr`rr0s r2r3z$get_rolling_factor.<locals>.<lambda>6rar5rbc<00>P<00>|<00>d<01><00><00><00><00>Sr`rdr0s r2r3z$get_rolling_factor.<locals>.<lambda>7rer5rfc<00><><00>|d<00>|d<00><00><00>d<03><00><00><00><00>Srhrirks r2r3z$get_rolling_factor.<locals>.<lambda>:rmr5rnrDrAc<00>P<00>|<00>d<01><00><00><00><00>Srtrdr0s r2r3z$get_rolling_factor.<locals>.<lambda>>rur5rvr<>c<00>$<00>|d|dz Sr<>r4r0s r2r3z$get_rolling_factor.<locals>.<lambda>Br<>r5r<>r<>r<>c<00>$<00>|d|dz Sr<>r4r0s r2r3z$get_rolling_factor.<locals>.<lambda>Fr<>r5r<>rwrxc<00><00><01>g|]}|<01>v<01>|<01><02> Sr4r4<00><03>.0<EFBFBD>col<6F> old_columnss <20>r2<00>
<listcomp>z&get_rolling_factor.<locals>.<listcomp>I<00>#<00><><00>S<>S<>S<>3<EFBFBD>C<EFBFBD>{<7B><R<><R<>3<EFBFBD><R<><R<><Rr5)ry<00>tolistr<74>r<>rmr.r<>r<>r<>r/r<>r|r<>r{r<>r<>r<>rrrr)r<>r<>r<>r<>r<>r<>r<>r<>r<>rrrrrU<00> new_columnsr0r<>s @@r2<00>get_rolling_factorr<72>s<> <00><><EFBFBD><00><14>*<2A>#<23>#<23>%<25>%<25>a<EFBFBD>a<EFBFBD>a<EFBFBD>(<28>K<EFBFBD> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD><10>j<EFBFBD>j<EFBFBD><19>u<EFBFBD>j<EFBFBD>5<>5<>G<EFBFBD><1D>f<EFBFBD>:<3A>+<2B>+<2B>B<EFBFBD>/<2F>/<2F>"<22>W<EFBFBD>+<2B>=<3D><12>G<EFBFBD><1B>L<>B<EFBFBD><EFBFBD><17><1F> <09>*<2A>2<>2<>!<21>2<><<3C><<3C>A<>A<>C<>C<>O<>O<>PQ<50>X\<5C>O<>]<5D>]<5D>B<EFBFBD>}<7D><15>#<23>I<EFBFBD>.<2E>6<>6<>a<EFBFBD>6<>@<40>@<40>E<>E<>G<>G<>S<>S<>TU<54>\`<60>S<>a<>a<>B<EFBFBD><18><19> <14>E<EFBFBD>N<EFBFBD> "<22> "<22>!<21> "<22> ,<2C> ,<2C> 1<> 1<> 3<> 3<> <13>E<EFBFBD>N<EFBFBD> "<22> "<22>"<22> "<22> -<2D> -<2D> 2<> 2<> 4<> 4<> 5<>78<37> 9<><11>k<EFBFBD><01><04>k<EFBFBD>%<25>%<25><07><1B><1C> <19><15><1E>'<27>'<27>q<EFBFBD>'<27>1<>1<>5<>5<>7<>7<>C<>C<>!<21>RV<52>C<>W<>W<>J<EFBFBD>!#<23>E<EFBFBD><19>Z<EFBFBD>!7<>B<EFBFBD><1C><1D><1C>O<EFBFBD>,<2C>4<>4<>A<EFBFBD>4<>><3E>><3E>C<>C<>E<>E<>Q<>Q<>XY<58>`d<>Q<>e<>e<>M<EFBFBD><1A>?<3F>+<2B>3<>3<>1<EFBFBD>3<>=<3D>=<3D>A<>A<>C<>C<>O<>O<>VW<56>^b<>O<>c<>c<>L<EFBFBD> "<22>?<3F> 3<>m<EFBFBD> C<>|<7C>S<>B<EFBFBD><1B><1C>!#<23>?<3F> 3<>m<EFBFBD>a<EFBFBD>,<2C>FV<46>6V<36> V<>B<EFBFBD><1B><1C>%<25>^<5E>4<><<3C><<3C>A<EFBFBD><<3C>F<>F<>K<>K<>M<>M<>Y<>Y<>`a<>hl<68>Y<>m<>m<>B<EFBFBD><19><1A><1F>~<7E>.<2E>6<>6<>a<EFBFBD>6<>@<40>@<40>D<>D<>F<>F<>R<>R<>YZ<59>ae<61>R<>f<>f<><14>')<29>.<2E>'9<><L<>'L<>B<EFBFBD>"<22>#<23><1D>m<EFBFBD>m<EFBFBD>G<>G<><06><06>B<EFBFBD>{<7B>O<EFBFBD><19><15>i<EFBFBD>*<2A>*<2A>,<2C>,<2C>4<>4<>Q<EFBFBD>7<>7<>;<3B>;<3B>=<3D>=<3D>B<EFBFBD>{<7B>O<EFBFBD><1B>=<3D>=<3D> +<2B> +<2B><06><06>B<EFBFBD>x<EFBFBD>L<EFBFBD><1A>-<2D>-<2D> +<2B> +<2B><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD> <18> <0A> <0A>Y<>Y<><06><06>B<EFBFBD>u<EFBFBD>I<EFBFBD><1C>M<EFBFBD>M<EFBFBD>T<>T<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD><1A>-<2D>-<2D>V<>V<><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD><1A>-<2D>-<2D>V<>V<><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD><1A>-<2D>-<2D>V<>V<><06><06>B<EFBFBD>w<EFBFBD>K<EFBFBD>
<1D>W<EFBFBD>%<25>+<2B>+<2B>,H<>,H<>I<>I<>B<EFBFBD>z<EFBFBD>N<EFBFBD><1D>g<EFBFBD>&<26>,<2C>,<2C>-J<>-J<>K<>K<>B<EFBFBD>{<7B>O<EFBFBD><1D>g<EFBFBD>&<26>,<2C>,<2C>-J<>-J<>K<>K<>B<EFBFBD>{<7B>O<EFBFBD>
!<21><17>)<29>/<2F>/<2F>0`<60>0`<60>a<>a<>B<EFBFBD>~<7E><16>!<21>'<27>*<2A>0<>0<>1b<31>1b<31>c<>c<>B<EFBFBD><EFBFBD><17>!<21>'<27>*<2A>0<>0<>1b<31>1b<31>c<>c<>B<EFBFBD><EFBFBD><17>!<21>'<27>*<2A>0<>0<>1b<31>1b<31>c<>c<>B<EFBFBD><EFBFBD><17>#<23>G<EFBFBD>,<2C>2<>2<>3n<33>3n<33>o<>o<>B<EFBFBD><18><19><1B>7<EFBFBD>#<23>)<29>)<29>M<>M<><06><06>B<EFBFBD>x<EFBFBD>L<EFBFBD><1C>G<EFBFBD>$<24>*<2A>*<2A>N<>N<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD><1C>G<EFBFBD>$<24>*<2A>*<2A>N<>N<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD><1C>G<EFBFBD>$<24>*<2A>*<2A>N<>N<><06><06>B<EFBFBD>y<EFBFBD>M<EFBFBD>
 <20><08>)<29>/<2F>/<2F>C<>C<><06><06>B<EFBFBD>}<7D><15> <20> <09>*<2A>0<>0<>C<>C<><06><06>B<EFBFBD>}<7D><15> <20> <09>*<2A>0<>0<>C<>C<><06><06>B<EFBFBD>}<7D><15> <20> <09>*<2A>0<>0<>C<>C<><06><06>B<EFBFBD>}<7D><15>
 <20>Z<EFBFBD>Z<EFBFBD> <0C><15>Z<EFBFBD>G<>G<> <0A>V<>[<5B>[<5B>fk<66>qu<71>[<5B>v<>v<>B<EFBFBD><19><1A><1F>Z<EFBFBD>Z<EFBFBD> <0C><15>Z<EFBFBD>G<>G<> <0A>V<>[<5B>[<5B>fk<66>qu<71>[<5B>v<>v<>B<EFBFBD><19><1A><1F>Z<EFBFBD>Z<EFBFBD> <0C><15>Z<EFBFBD>G<>G<> <0A>V<>[<5B>[<5B>fk<66>qu<71>[<5B>v<>v<>B<EFBFBD><19><1A><1B><16><02>9<EFBFBD> <0A>.<2E>.<2E>B<EFBFBD>~<7E><16>(<28>(<28>(<28>#<23>#<23>#<23>%<25>%<25>%<25>,<2C>,<2C>,<2C><1B><16><1C><17><14>L<EFBFBD>"<22>"<22>2<EFBFBD>f<EFBFBD>:<3A>r<EFBFBD>%<25>y<EFBFBD>:L<>M<>M<>B<EFBFBD>u<EFBFBD>I<EFBFBD><1B>e<EFBFBD>B<EFBFBD>u<EFBFBD>I<EFBFBD>|<7C>4<>4<>B<EFBFBD>{<7B>O<EFBFBD><1D><14>f<EFBFBD>f<EFBFBD>R<EFBFBD><07>[<5B>2E<32>F<>F<>G<>G<>B<EFBFBD>~<7E><16> <20>2<EFBFBD>k<EFBFBD>?<3F>2<>R<EFBFBD><0E>5G<35>G<>B<EFBFBD><1A><1B><18>h<EFBFBD>r<EFBFBD>&<26>z<EFBFBD>R<EFBFBD><05>Y<EFBFBD>6<> "<22>7<EFBFBD> <0B>b<EFBFBD><16>j<EFBFBD> 8<>R<EFBFBD><06>Z<EFBFBD>"<22>U<EFBFBD>)<29>=S<>T<> <20>"<22>"<22>B<EFBFBD>{<7B>O<EFBFBD><1E>m<EFBFBD>m<EFBFBD>$R<>$R<>S<>S<>_<>_<>fg<66>nr<6E>_<>s<>s<>B<EFBFBD>{<7B>O<EFBFBD><18>j<EFBFBD>j<EFBFBD><1C>%<25>j<EFBFBD>@<40>@<40><1B>M<>R<>R<>]a<>gk<67>R<>l<>l<>B<EFBFBD>{<7B>O<EFBFBD><1D>g<EFBFBD>&<26>0<>0<>1c<31>1c<31>d<>d<>B<EFBFBD>{<7B>O<EFBFBD><18>j<EFBFBD>j<EFBFBD><1C>%<25>j<EFBFBD>@<40>@<40><1B>M<>R<>R<>]a<>gk<67>R<>l<>l<>B<EFBFBD>{<7B>O<EFBFBD><1C>W<EFBFBD>+<2B><12>J<EFBFBD><1E>7<>B<EFBFBD>~<7E><16><1E>w<EFBFBD>K<EFBFBD>2<EFBFBD>l<EFBFBD>+;<3B>;<3B>B<EFBFBD><17><18>&<26>~<7E>6<>><3E>><3E>b<EFBFBD>VW<56>><3E>X<>X<>\<5C>\<5C>^<5E>^<5E>j<>j<>qr<71>pt<70> k<01> v<01> v<01>B<EFBFBD><1B><1C>!(<28>)9<>!:<3A>!B<>!B<>"<22>Z[<5B>!B<>!\<5C>!\<5C>!`<60>!`<60>!b<>!b<>!n<>!n<>uv<75>tx<74>"o<01>"z<01>"z<01>B<EFBFBD><1D><1E>0<>0<>0<>")<29><1E>!8<>!><3E>!><3E>4<>4<>4<>4<>"<06>"<06><11>k<EFBFBD><01><04>k<EFBFBD>%<25>%<25><07><1D><1E><19>h<EFBFBD><02>7<EFBFBD> <0B>b<EFBFBD><1C>.><3E> ><3E>2<EFBFBD>n<EFBFBD>CU<43>XY<58>CY<43>Z<>\]<5D>_`<60>a<>a<>B<EFBFBD>{<7B>O<EFBFBD><1F> <0C>-<2D>3<>3<>4M<34>4M<34>N<>N<>B<EFBFBD>}<7D><15>6<>6<>6<>
#*<2A>-<2D>-<2D> <0C>"=<3D>"=<3D>B<EFBFBD><1E><1F>$%<25><02>9<EFBFBD> <0A>$5<>"<22>\<5C>:J<>R<EFBFBD>P\<5C>M]<5D>:]<5D>#^<5E>B<EFBFBD><1F> <20>!<21><1C>.<2E>4<>4<>5R<35>5R<35>S<>S<>B<EFBFBD>~<7E><16><1D>n<EFBFBD>-<2D><07> <0C>0E<30>0O<30>0O<30>Pn<50>Pn<50>0o<30>0o<30>o<>B<EFBFBD><17><18>")<29><1D><1D>/h<>/h<>!i<>!i<>B<EFBFBD><1D><1E><1F>|<7C>,<2C>r<EFBFBD>+<2B><EFBFBD>><3E> <0A><07><05><0E>(<28>(<28>)G<>)G<>H<>H<> H<>J<01>B<EFBFBD><17><18>!<21><1F>1<>9<>9<><12>9<>D<>D<>H<>H<>J<>J<>V<>V<>]^<5E>ei<65>V<>j<>j<>B<EFBFBD>~<7E><16>!<21>-<2D>-<2D>(R<>(R<>S<>S<>_<>_<>fg<66>nr<6E>_<>s<>s<>B<EFBFBD><EFBFBD><17>"<22>%<25>.<2E>3<>3<>B<EFBFBD>3<>?<3F>?<3F>K<>K<>RS<52>Z^<5E>K<>_<>_<>B<EFBFBD><EFBFBD><17><1D>m<EFBFBD>m<EFBFBD>$O<>$O<>P<>P<>\<5C>\<5C>cd<63>ko<6B>\<5C>p<>p<>B<EFBFBD>{<7B>O<EFBFBD><06>G<EFBFBD>G<EFBFBD>^<5E>$<24>d<EFBFBD>8<EFBFBD>G<EFBFBD>D<>D<>D<>S<>S<>S<>S<>"<22>*<2A>"3<>"3<>"5<>"5<>a<EFBFBD>a<EFBFBD>a<EFBFBD>"8<>S<>S<>S<>K<EFBFBD> <0A>{<7B>?<3F>r5c<00>P <00><04>|j<00><00><00>dd<00><00>|<00>ddg<02><03><00>}d}|d||dzz|d<|d|d z|d
<tj|d <00><00>|d <|d d|dzk|d<|d|d dg<00>d<13><14><00>z
|d z |d<|d dg<00>d<13><14><00>|dz
|d z |d<|d|dz
|d<|d|dz |d<|d|dz |d<|d|d z
|d!<|d"d#k|d$<|d%|d"k|d&<|d'|d%k|d(<|d)|d'k|d*<|d"|d%z|d'z|d)z|d+<|d"|d%z
tj|d"dz|d%dzz<00><00>z |d,<|d-|d.z |d/<|d0|d.z |d1<|d2|d.z |d3<|d-|d4z
|d.z |d5<|d0|d6z
|d.z |d7<tj|d8<00><00>|d9<|d:|d;z
|d<|d=z
z |d><|d |d?z
|d@|d?z
z |dA<|dB|d@z
|d@|d?z
z |dC<|dDd|dB|d?z
|d<|d=z
z z
z|dE<|d |d:k|ddkz|dF<|dB|d?z
|dGz |dH<d|d8z |d:|d;z
z|dI<|d |dJk|ddKkz|dLdMkz|dN<|dD|d8z |dO<|d |d8z |dP<|dDd|d8z z|dQ<|d |d8z |dR<|d|d8z |dS<|dD|dz|d8z |dT<dU<64>|jD<00><00>}|<00>|dVdW<64>X<EFBFBD><00><00>fdY<64>|j<00><00><00>dd<00>D<00><00>}||fS)ZNrrrr rrr!rr
r$r"r%rrr6r7r9r:rr;r=r>r?rUr[r\r~r<>r<>r<>r<>r<>r<>r<>rr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<r=r>r?r@rArBrCrDrErrF<00> cat_vol_breakrJr]r^rHrorprqrrr~rr<>r<>r<>r<>c<00><<00>g|]}|<01>d<00><00><00>|<01><02>S)<01>_)<01>
startswith<EFBFBD>r<>r<>s r2r<>z%get_simple_factor.<locals>.<listcomp><3E>s)<00><00>E<>E<>E<>C<EFBFBD><13><1E><1E><03>1D<31>1D<31>E<>C<EFBFBD>E<>E<>Er5Trwrxc<00><00><01>g|]}|<01>v<01>|<01><02> Sr4r4r<>s <20>r2r<>z%get_simple_factor.<locals>.<listcomp><3E>r<>r5) ryr<>r<>r<>r<>r<>r<>r<>r)r<>r<><00> drop_columnsr<73>r<>s @r2<00>get_simple_factorr<72>Ns<><00><><00><14>*<2A>#<23>#<23>%<25>%<25>a<EFBFBD>a<EFBFBD>a<EFBFBD>(<28>K<EFBFBD> <0B><1E><1E>I<EFBFBD>|<7C>4<><1E> 5<> 5<>B<EFBFBD> <0F>E<EFBFBD><1E>3<>4<>u<EFBFBD>r<EFBFBD>BV<42>?W<>7W<37>W<>B<EFBFBD><18><19><1F><0E>/<2F>"<22>Y<EFBFBD>-<2D>?<3F>B<EFBFBD><19><1A><18>f<EFBFBD>R<EFBFBD><07>[<5B>)<29>)<29>B<EFBFBD>{<7B>O<EFBFBD><1C>U<EFBFBD>)<29>a<EFBFBD>"<22>[<5B>/<2F>&9<>9<>B<EFBFBD><EFBFBD><17><12>6<EFBFBD>
<EFBFBD>R<EFBFBD><17>&<26> 1<>2<>6<>6<>A<EFBFBD>6<>><3E>><3E>><3E>"<22>W<EFBFBD>+<2B>M<>B<EFBFBD>t<EFBFBD>H<EFBFBD><14>g<EFBFBD>v<EFBFBD>&<26>'<27>+<2B>+<2B><11>+<2B>3<>3<>b<EFBFBD><15>i<EFBFBD>?<3F>2<EFBFBD>g<EFBFBD>;<3B>N<>B<EFBFBD>v<EFBFBD>J<EFBFBD><1A>5<EFBFBD> <09>B<EFBFBD>y<EFBFBD>M<EFBFBD>1<>B<EFBFBD>}<7D><15>*,<2C>N<EFBFBD>);<3B>b<EFBFBD><1F>>Q<>)Q<>B<EFBFBD>%<25>&<26>)+<2B>N<EFBFBD>);<3B>b<EFBFBD><1F>>Q<>)Q<>B<EFBFBD>%<25>&<26>-/<2F><EFBFBD>,?<3F>"<22>EV<45>BW<42>,W<>B<EFBFBD>(<28>)<29><16>}<7D>%<25><01>)<29>B<EFBFBD>y<EFBFBD>M<EFBFBD><16>}<7D>%<25><02>=<3D>(9<>9<>B<EFBFBD>y<EFBFBD>M<EFBFBD><16>}<7D>%<25><02>=<3D>(9<>9<>B<EFBFBD>y<EFBFBD>M<EFBFBD><16>}<7D>%<25><02>=<3D>(9<>9<>B<EFBFBD>y<EFBFBD>M<EFBFBD><1B>=<3D>)<29>B<EFBFBD>}<7D>,=<3D>=<3D><02>=<3D>@Q<>Q<>TV<54>Wd<57>Te<54>e<>B<EFBFBD>}<7D><15><1B>M<EFBFBD>*<2A>R<EFBFBD> <0A>-><3E>><3E>"<22>'<27>
<EFBFBD>=<3D><19>Q<EFBFBD><1E><12>M<EFBFBD>!2<>a<EFBFBD>!7<>7<>C9<>C9<>9<>B<EFBFBD>}<7D><15>%'<27>|<7C>$4<>r<EFBFBD>,<2C>7G<37>$G<>B<EFBFBD> <20>!<21>"$<24>]<5D>"3<>b<EFBFBD><1C>6F<36>"F<>B<EFBFBD><1E><1F>$&<26>|<7C>$4<>r<EFBFBD>,<2C>7G<37>$G<>B<EFBFBD> <20>!<21>*,<2C>\<5C>*:<3A>R<EFBFBD> <0A>=N<>*N<>RT<52>Ua<55>Rb<52>)b<>B<EFBFBD>%<25>&<26>,.<2E>}<7D>,=<3D><02>><3E>@R<>,R<>VX<56>Ye<59>Vf<56>+f<>B<EFBFBD>'<27>(<28><1B><16><02>9<EFBFBD> <0A>.<2E>.<2E>B<EFBFBD>~<7E><16><1D>l<EFBFBD>+<2B>b<EFBFBD><1C>.><3E>><3E>2<EFBFBD>j<EFBFBD>><3E>TV<54>W`<60>Ta<54>Ca<43>b<>B<EFBFBD><EFBFBD><17><1C>W<EFBFBD>+<2B><02>;<3B><0F>7<>B<EFBFBD>|<7C><L<>r<EFBFBD>R]<5D><EFBFBD><^<5E>_<>B<EFBFBD>~<7E><16><19>,<2C>'<27>"<22>\<5C>*:<3A>:<3A>r<EFBFBD>,<2C>?O<>RT<52>U`<60>Ra<52>?a<>b<>B<EFBFBD>{<7B>O<EFBFBD><1A>?<3F>+<2B> <0A><12>L<EFBFBD>!<21>B<EFBFBD>{<7B>O<EFBFBD>3<><02>:<3A><0E><12>I<EFBFBD><1D>8V<38>W<> W<>Y<01>B<EFBFBD>}<7D><15><1E>g<EFBFBD>;<3B><12>L<EFBFBD>)9<>9<>b<EFBFBD><1E>>P<>ST<53>>T<>U<>B<EFBFBD><EFBFBD><17><1C>\<5C>*<2A>R<EFBFBD> <0B>_<EFBFBD><<3C><02>8<EFBFBD> <0C>L<>B<EFBFBD>~<7E><16>%&<26><02>9<EFBFBD> <0A>$5<>"<22>\<5C>:J<>R<EFBFBD>P\<5C>M]<5D>:]<5D>#^<5E>B<EFBFBD><1F> <20>#%<25>g<EFBFBD>;<3B><12>L<EFBFBD>1A<31>#A<>#%<25>n<EFBFBD>#5<><03>#;<3B>#=<3D>#%<25>m<EFBFBD>#4<>s<EFBFBD>#:<3A>#<<3C>B<EFBFBD><1D><1E>!<21><1F>1<>B<EFBFBD>y<EFBFBD>M<EFBFBD>A<>B<EFBFBD><1A><1B>!<21>%<25>y<EFBFBD>2<EFBFBD>i<EFBFBD>=<3D>8<>B<EFBFBD><1B><1C>!#<23>O<EFBFBD>!4<><01>B<EFBFBD>y<EFBFBD>M<EFBFBD>8I<38>!J<>B<EFBFBD><1D><1E> "<22>5<EFBFBD> <09>B<EFBFBD>y<EFBFBD>M<EFBFBD> 9<>B<EFBFBD><1C><1D><1E>~<7E>.<2E><12>I<EFBFBD><1D>><3E>B<EFBFBD><18><19><1A>?<3F>+<2B>b<EFBFBD><1E>.@<40>@<40>2<EFBFBD>i<EFBFBD>=<3D>P<>B<EFBFBD>}<7D><15>E<>E<>2<EFBFBD>:<3A>E<>E<>E<>L<EFBFBD><06>G<EFBFBD>G<EFBFBD>L<EFBFBD>$<24>x<EFBFBD>G<EFBFBD>@<40>@<40>@<40>S<>S<>S<>S<>"<22>*<2A>"3<>"3<>"5<>"5<>a<EFBFBD>a<EFBFBD>a<EFBFBD>"8<>S<>S<>S<>K<EFBFBD> <0A>{<7B>?<3F>r5c<00>r<00>|<00>d<01><00>}|d|dz
|dz dz|d<|d<00><00><00>}|<01>|dkd<06><00>}|<01>|dkd<06><00> }|<02>d<07><08><00><00><00><00>}|<03>d<07><08><00><00><00><00>}||z }ddd |zz z
|d
<|d<00>d d <0C> <0A><00><00><00><00>}|d<00>dd <0C> <0A><00><00><00><00>}||z
|d<|d<00>dd <0C> <0A><00><00><00><00>|d<|d|dz
|d<|d<00>d<13><00><00>|d<|d<00>d<15><08><00><00><00><00>|d<|d<00>d<15><08><00><00><00><00>|d<|d|dz
|dz dz|d<|d<00>d<15><08><00><00><00><00>|d<|d<00>d<15><08><00><00><00><00>|d<|d|dz
|dz dz|d<|S)uQ
计算四个指标当日涨跌幅、5日移动平均、RSI、MACD。
rr"<00> pre_closer<65><00> daily_returnrrBr rr`<00> F)<02>span<61>adjust<73><00>MACDrh<00> Signal_line<6E> MACD_histc<00><00>|dkrdndS)Nrrr4r0s r2r3z&calculate_indicators.<locals>.<lambda><3E>s<00><00>Q<EFBFBD><11>U<EFBFBD>U<EFBFBD><01><01><01>r5<00>up_ratior(<00> up_ratio_20dr<00> volume_meanr<00>
volatility<EFBFBD>amount<6E> amount_mean<61>amount_change_rate)r<>r<>rr.r/<00>ewmr<6D>r|) r<>r<><00>gain<69>loss<73>avg_gain<69>avg_loss<73>rs<72>ema12<31>ema26s r2<00>calculate_indicatorsr<73><00>s<><00><00>
<0C><1E><1E> <0C> %<25> %<25>B<EFBFBD><1C>W<EFBFBD>+<2B><02>;<3B><0F>7<>2<EFBFBD>k<EFBFBD>?<3F>J<>S<EFBFBD>P<>B<EFBFBD>~<7E><16> <0E>w<EFBFBD>K<EFBFBD> <1C> <1C> <1E> <1E>E<EFBFBD> <10>;<3B>;<3B>u<EFBFBD>q<EFBFBD>y<EFBFBD>!<21> $<24> $<24>D<EFBFBD> <11>K<EFBFBD>K<EFBFBD><05><01> <09>1<EFBFBD> %<25> %<25> %<25>D<EFBFBD><13>|<7C>|<7C>2<EFBFBD>|<7C>&<26>&<26>+<2B>+<2B>-<2D>-<2D>H<EFBFBD><13>|<7C>|<7C>2<EFBFBD>|<7C>&<26>&<26>+<2B>+<2B>-<2D>-<2D>H<EFBFBD> <11>H<EFBFBD> <1C>B<EFBFBD><13>s<EFBFBD>a<EFBFBD>"<22>f<EFBFBD>~<7E>&<26>B<EFBFBD>u<EFBFBD>I<EFBFBD> <0F>w<EFBFBD>K<EFBFBD>O<EFBFBD>O<EFBFBD><12>E<EFBFBD>O<EFBFBD> 2<> 2<> 7<> 7<> 9<> 9<>E<EFBFBD> <0E>w<EFBFBD>K<EFBFBD>O<EFBFBD>O<EFBFBD><12>E<EFBFBD>O<EFBFBD> 2<> 2<> 7<> 7<> 9<> 9<>E<EFBFBD><16><15><1D>B<EFBFBD>v<EFBFBD>J<EFBFBD><1A>6<EFBFBD>
<EFBFBD><0E><0E>A<EFBFBD>e<EFBFBD><0E><<3C><<3C>A<>A<>C<>C<>B<EFBFBD>}<7D><15><18><16>j<EFBFBD>2<EFBFBD>m<EFBFBD>#4<>4<>B<EFBFBD>{<7B>O<EFBFBD><18><0E>'<27>-<2D>-<2D>.I<>.I<>J<>J<>B<EFBFBD>z<EFBFBD>N<EFBFBD><1B>J<EFBFBD><1E>/<2F>/<2F>r<EFBFBD>/<2F>:<3A>:<3A>?<3F>?<3F>A<>A<>B<EFBFBD>~<7E><16><1B>5<EFBFBD> <09>)<29>)<29><12>)<29>4<>4<>9<>9<>;<3B>;<3B>B<EFBFBD>}<7D><15> "<22>5<EFBFBD> <09>B<EFBFBD>}<7D>,=<3D> =<3D><12>M<EFBFBD>AR<41>R<>UX<55>X<>B<EFBFBD><1B><1C><1A>.<2E>)<29>1<>1<><12>1<><<3C><<3C>@<40>@<40>B<>B<>B<EFBFBD>|<7C><14><1B>8<EFBFBD> <0C>,<2C>,<2C>B<EFBFBD>,<2C>7<>7<><<3C><<3C>><3E>><3E>B<EFBFBD>}<7D><15> "<22>8<EFBFBD> <0C>r<EFBFBD>-<2D>/@<40> @<40>B<EFBFBD>}<7D>DU<44>U<>X[<5B>[<5B>B<EFBFBD><1B><1C> <0A>Ir5c<00><00>tj|d<01><02><00>}tj|dd<04><05><00>|d<|<01>d<03><00>}g}|d<00><00><00>D]J}||d|k<00><00><00>}t |<04><00>}|<02>|<04><00><00>Ktj|d<07><08><00>}|<05> ddgd <09>d
<EFBFBD> <0B><00>}d <0C>|j
D<00><00>|_
|<06> <00><00>}|S) N<>
index_data)<01>keyr<00>%Y%m%d<><01>formatrT)<01> ignore_index)
r<EFBFBD>r`r<>r<>r<>r<>rr<>r<>r<><00>last)r*ryrH<00>aggfuncc<00>4<00>g|]}|d<00>d|d<00><00><03><02>S)rr<>rr4r<>s r2r<>z-generate_index_indicators.<locals>.<listcomp><3E>s.<00><00>I<>I<>I<><13>3<EFBFBD>q<EFBFBD>6<EFBFBD>,<2C>,<2C>C<EFBFBD><01>F<EFBFBD>,<2C>,<2C>I<>I<>Ir5) r,<00>read_hdf<64> to_datetimer<65><00>unique<75>copyr<79><00>append<6E>concat<61> pivot_tableryr<>)<07> h5_filenamer<65><00> df_indicatorsr<00>df_index<65>df_all_indicators<72>df_finals r2<00>generate_index_indicatorsr<73><00>s-<00><00> <0B><1B>[<5B>l<EFBFBD> 3<> 3<> 3<>B<EFBFBD><19>~<7E>b<EFBFBD><1C>&6<>x<EFBFBD>H<>H<>H<>B<EFBFBD>|<7C><14> <0B><1E><1E> <0C> %<25> %<25>B<EFBFBD><17>M<EFBFBD><15>i<EFBFBD>=<3D>'<27>'<27>)<29>)<29>'<27>'<27><07><15>b<EFBFBD><19>m<EFBFBD>w<EFBFBD>.<2E>/<2F>4<>4<>6<>6<><08>'<27><08>1<>1<><08><15><1C><1C>X<EFBFBD>&<26>&<26>&<26>&<26><1B> <09>-<2D>d<EFBFBD>C<>C<>C<><15>!<21>,<2C>,<2C><1A><19>5<>5<>5<><17> -<2D><06><06>H<EFBFBD>J<01>I<><08>8H<38>I<>I<>I<>H<EFBFBD><14><17>#<23>#<23>%<25>%<25>H<EFBFBD> <13>Or5c<00>n<00>tj|dgd<02><01><03><00>}|<01>ddg<02><06><00>}|<01><00><00>}tj|dd<07><08><00>|d<|<01>dd <09>
<EFBFBD><00>}|<02>d <0B><00><00>|d <|d <00>d<0E><00><00>|d<|d <00>d<10><00><00>|d<t|d <09><12><00>}|<01>ddg<02><06><00>}|<01>d<05><00>d<00>d<13><00><00>|d<|<01>d<05><00>d<00>d<15><00><00>|d<|<01> gd<17><01><18><00>}|<01>
d<19>|j D<00><00><00><18><00>}|<01>
ddi<01><18><00>}|S)N<>sw_daily) rrr:r"r9r><00>pe<70>pbr)r<>ryrrrr<>r<>Frc<00><><00>tjtj|dj|dj<00><00>|j<00><03><00>SrQrRr0s r2r3z$read_industry_data.<locals>.<lambda><3E>rTr5rUr"c<00>8<00>||<00>d<01><00>z dz
Srkrlr0s r2r3z$read_industry_data.<locals>.<lambda><3E>s<00><00><11>Q<EFBFBD>W<EFBFBD>W<EFBFBD>Q<EFBFBD>Z<EFBFBD>Z<EFBFBD><1E>RS<52>AS<41>r5roc<00>8<00>||<00>d<01><00>z dz
Srvrlr0s r2r3z$read_industry_data.<locals>.<lambda><3E>s<00><00>!<21>a<EFBFBD>g<EFBFBD>g<EFBFBD>b<EFBFBD>k<EFBFBD>k<EFBFBD>/<2F>TU<54>BU<42>r5rw)r<>c<00>.<00>|<00>d<01><02><00>Sr<>r<>r0s r2r3z$read_industry_data.<locals>.<lambda><00><00><00>!<21>&<26>&<26>T<EFBFBD>&<26>"<22>"<22>r5<00>return_5_percentilec<00>.<00>|<00>d<01><02><00>Sr<>r<>r0s r2r3z$read_industry_data.<locals>.<lambda>rr5<00>return_20_percentile)r:r"r9r>rrr)ryc<00>"<00>i|] }|dv<01>|d|<01><00><02><02> S))rr<00> industry_r4r<>s r2<00>
<dictcomp>z&read_industry_data.<locals>.<dictcomp> s.<00><00>q<>q<>q<>C<EFBFBD>C<EFBFBD>Wp<57>Lp<4C>Lp<4C><13>'<27>#<23>'<27>'<27>Lp<4C>Lp<4C>Lpr5<00> cat_l2_code) r,r<>r<><00>reindexr<78>r<>r<>r<>rr<00>renamery)r<><00> industry_datar<61>s r2<00>read_industry_datar<00>s<><00><00><16>K<EFBFBD> <0B><1A>F<06>F<06>F<06><07><07><07>M<EFBFBD>"<22>-<2D>-<2D>)<29>\<5C>1J<31>-<2D>K<>K<>M<EFBFBD>!<21>)<29>)<29>+<2B>+<2B>M<EFBFBD>"$<24>.<2E><1D>|<7C>1L<31>U]<5D>"^<5E>"^<5E>"^<5E>M<EFBFBD>,<2C><1F><1B>#<23>#<23>I<EFBFBD>%<25>#<23>@<40>@<40>G<EFBFBD>"<22>=<3D>=<3D>Y<>Y<><06><06>M<EFBFBD>%<25><18>!(<28><07> 0<> 6<> 6<>7S<37>7S<37> T<> T<>M<EFBFBD>*<2A><1D>!(<28><17>!1<>!7<>!7<>8U<38>8U<38>!V<>!V<>M<EFBFBD>+<2B><1E>"<22>=<3D>e<EFBFBD><<3C><<3C><<3C>M<EFBFBD>!<21>-<2D>-<2D>,<2C> <09>1J<31>-<2D>K<>K<>M<EFBFBD>,9<>+@<40>+@<40><1C>+N<>+N<>z<EFBFBD>+Z<>+d<>+d<>"<22>"<22>,$<24>,$<24>M<EFBFBD>'<27>(<28>,9<>,A<>,A<>,<2C>,O<>,O<>P[<5B>,\<5C>,f<>,f<>"<22>"<22>-$<24>-$<24>M<EFBFBD>(<28>)<29>!<21>&<26>&<26>/b<>/b<>/b<>&<26>c<>c<>M<EFBFBD>!<21>(<28>(<28>q<>q<>=<3D>3H<33>q<>q<>q<>)<29>s<01>s<01>M<EFBFBD>"<22>(<28>(<28>)<29>]<5D>1K<31>(<28>L<>L<>M<EFBFBD> <18>r5)T)<11>numpyr<79>rF<00>pandasr,r<>r<>r<>rr:r|r<>r<>r<>r<>r<>rr4r5r2<00><module>rs<00><01><12><12><12><12> <0C> <0C> <0C> <0C><13><13><13><13>h<0E>h<0E>h<0E>V0<0E>0<0E>0<0E>0<0E>f
<0E>
<0E>
<0E>)<0E>)<0E>)<0E>X$<0E>$<0E>$<0E>N:<0E>:<0E>:<0E>z7<0E>7<0E>7<0E>t<13><12><12><12> <0C> <0C> <0C> <0C>L<1B>L<1B>L<1B>^N<1B>N<1B>N<1B>b%<0E>%<0E>%<0E>P<14><14><14>>&<19>&<19>&<19>&<19>&r5