B
    *c                @   s  d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlZd dlZd dlZed edd ed d\ZZZ Z!Z"Z#Z$d	\Z%Z&e' e' e'   a(Z)Z*G d
d dZ+dS )    )Onedb)OnedataN)create_engine88f6e67ec8a48922bbb531b95687625d99ee263940a07561ae95f4648zmode.chained_assignmentignore)gMbP?g      ?r   r   r      r   )z	300027.SSz119.45.95.223c                   s  e Zd ZdZde fdd	Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,dUdV Z-dWdX Z.dYdZ Z/d[d\ Z0d]d^ Z1d_d` Z2dadb Z3dcdd Z4  Z5S )fKdatau    K线类 技术分析评分机制Nc                s2   t    t | _|   t | _td| _	d S )Nr   )
super__init__pd	DataFrameallstocklistinit_parameterr   onedbr   onedata)self	stockcodeshowtypehavelistseqparent)	__class__ %/Users/apple/one/k/oneclass/kclass.pyr
      s    


zKdata.__init__c             C   s  d| _ d| _d| _d| _ddddddg| _d	d
ddddg| _d	d
ddddd| _ddddddg| _ddddddd| _ddddddd| _	ddddddd| _
ddddddd| _dddddddddddddddd| _t | _t | _t | _t | _t | _t | _i | _i | _i | _i | _i | _i | _i | _i | _i | _i | _i | _i | _ i | _!i | _"t | _#t | _$t | _%d | _&t'| _'t(| _(t)| _)d| _*t | _+t | _,t | _-d!S )"u   定义参数g        r   monthweekdaym30m5m1mwdtfo)r   r   r   r   r   r   d   2      
         g{Gz?g{Gz?g{Gz?g{Gz?g{Gzt?g{Gzd?r   g? )QSNDGNKLDDKaiGGLuoCHL1DDCGorGGCD1CHL
DDCGorGGCDDDCGorGGCD1ma30DDCGorGGCDma30GGdayDDdayi'  N).hpttlupttldownmstatusperiodperiodabp2abZQSKJdiffbypspacer,   JGkeypointr   r   kdata_mkdata_wkdata_dkdata_tkdata_fkdata_oQS_mQS_wQS_dQS_tQS_fQS_oJG_mJG_wJG_dJG_tJG_fJG_oZall_YLZCPnSpnspnsttl	newpnsttlZrefreshK_timeinterr   r   r   sighavelistxgresultqsresult)r   r   r   r   r      sX    &










zKdata.init_parameterc             C   s   |    d S )N)whole_process)r   r   r   r   runN   s    z	Kdata.runc             C   s$   |    |   |   |   d S )N)get_div	get_K_all
cal_ma_all
cal_qs_all)r   r   r   r   r`   P   s    zKdata.whole_processc             G   s$   t j||d}|d |  d S )N)targetargsT)	threadingThread	setDaemonstart)r   funcrg   Ztaskr   r   r   	thread_itU   s    
zKdata.thread_itc             C   s  t   }t | _t | _dg}t }|jdddd}|jdddgd	d
}|jdddgd	d
}|jdddgd	d
}|| _	t
| j	 | j	jd }d}t|| }x td|D ]}||d  qW t
d| d}	t|	}
t||	 }t
d| |
| j|}t| \}}x:tt|D ]*}| j|| | _| j|| | _q$W | jtjtj gd| _| jtjtj gd| _t }|d |d || jddd || jddd t
dt   |  d S )Nr   stock_basicr+   L)exchangelist_statusz	000001.SHu   上证综指)ts_codenameT)ignore_indexz	399006.SZu   创业板指z	399001.SZu   深圳成指r%   r   zXXXX corelist   qtyperthreadxgallZqsallr   	   z	TTL time:)timer   r   r^   r_   tspro_apiqueryappendr   printshapemathceilrangempPoolmapxg_all_for_mpziplenreplacenpinfr   	del_table
into_table)r   	starttimecorelistpro	stockliststockqtyZ	qtyperjobZcoreqtyi	threadqtypoolrv   resultabr   r   r   r   	xg_all_mpZ   sD    







zKdata.xg_all_mpc       	      C   sr  t  }t  }| j}|||d  }td|jd  d}x,| D ]\}}|d | _t|| j | jdd  dkrtd| _n
td| _y,| j	| jd\| _
| _| _| _| _| _W n   wFY nX |   | | j| jd	\| _| _| _| | j| jd
\| _| _| _| | j| jd\| _| _| _| | j| jd\| _| _| _| | j| jd\| _| _| _| | j
| jd\| _
| _| _t| jd	 | jd
 | jd | jd | jd | jd  | jdd | j|d | jd | jd | jd	 | jd
 | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd  | jd! | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd  | jd! | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd  | jd! | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd  | jd! | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd  | jd! | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd | jd  | jd! | jd" | jd# | jd$ | jd% | jd& | jd" | jd# | jd$ | jd% | jd& | jd" | jd# | jd$ | jd% | jd& | jd" | jd# | jd$ | jd% | jd& | jd" | jd# | jd$ | jd% | jd& | jd" | jd# | jd$ | jd% | jd& | j| j | j!| j"d'}|j#|d(d)}|j#| jd(d)}|j#| jd(d)}|j#| jd(d)}|j#| jd(d)}|j#| jd(d)}|j#| jd(d)}|d7 }| $  qFW ||fS )*Nr%   zstock qty =r   r   rr   z.BJallr   r   r   r   r   r      rs   
reviseTimeCma30ma10spacePprofitPriskPr-   r.   r/   r0   r1   r2   r3   r4   r5   r6   ConfirmedJG	CurrentJGJGdoneQXJGQR)scoder   	stocknamery   cQSmQSwQSdQStQSfQSoma30mma30wma30dma30tma30fma30oma10mma10wma10dma10tma10fma10ospacePmprofitPmriskPmNDGmNKLmDDmKaimGGmLuomCHL1mDDCGorGGCD1mCHLmDDCGorGGCDmspacePwprofitPwriskPwNDGwNKLwDDwKaiwGGwLuowCHL1wDDCGorGGCD1wCHLwDDCGorGGCDwspacePdprofitPdriskPdNDGdNKLdDDdKaidGGdLuodCHL1dDDCGorGGCD1dCHLdDDCGorGGCDdspacePtprofitPtriskPtNDGtNKLtDDtKaitGGtLuotCHL1tDDCGorGGCD1tCHLtDDCGorGGCDtspacePfprofitPfriskPfNDGfNKLfDDfKaifGGfLuofCHL1fDDCGorGGCD1fCHLfDDCGorGGCDfspacePoprofitPoriskPoNDGoNKLoDDoKaioGGoLuooCHL1oDDCGorGGCD1oCHLoDDCGorGGCDoConfirmedJGm
CurrentJGmJGdonemQXmJGQRmConfirmedJGw
CurrentJGwJGdonewQXwJGQRwConfirmedJGd
CurrentJGdJGdonedQXdJGQRdConfirmedJGt
CurrentJGtJGdonetQXtJGQRtConfirmedJGf
CurrentJGfJGdonefQXfJGQRfConfirmedJGo
CurrentJGoJGdoneoQXoJGQRor;   r<   r=   r>   T)rt   )%r   r   r   r~   r   iterrowsr   r   r   krK   rJ   rI   rH   rG   rF   rd   cal_qsrL   rR   rM   rS   rN   rT   rO   rU   rP   rV   rQ   rW   r,   r;   r<   r=   r>   r}   r   )	r   nr^   r_   r   r   indexrowtmpr   r   r   r      s~    

!,
6&0000 0 0 0 0 0 ((((((
zKdata.xg_all_for_mpc             C   s  t   }t | _t | _td}td|jd   |dg}td|jd   |jd }d}t	
|}t|| }td| dddd	d
dg}t| || j|}t| \}	}
x8tt|	D ](}| j|	| | _| j|
| | _qW | jtjtj gd| _| jtjtj gd| _t }|d |d || jddd || jddd |d || jddd tdt   |  d S )Nz./csv/2022.csvzformer qty = r   r   r   rv      <   Z   x      xg2022Zqs2022rx   zSdelete `xgall` from `xgall`,`xg2022` where `xgall`.`stockcode`=`xg2022`.`stockcode`rw   z	TTL time:)ry   r   r   r^   r_   read_csvr~   r   drop_duplicatesr   r   r   r   r   xg_2022_for_mpr   r   r   r}   r   r   r   r   r   r   execute_sql)r   r   r   r   r   r   rv   r   r   r   r   r   r   r   r   r   
xg_2022_mp   s:    








zKdata.xg_2022_mpc             C   s  t  }t  }t d}|dg}|||d  }td|jd  x| D ]\}}t|d dk r |d dd d	ks|d dd d
kr|d dd d |d< nr|d dd dkr|d dd d |d< nD|d dd dks|d dd dkr4|d dd d |d< qP|d dd |d< qPW d}x| D ]|\}}|d | _t|| j | jdd  dkrt	d| _
n
t	d| _
y,| j
| jd\| _| _| _| _| _| _W n   wHY nX |   | | j| jd\| _| _| _| | j| jd\| _| _| _| | j| jd\| _| _| _| | j| jd\| _| _| _| | j| jd\| _| _| _| | j| jd\| _| _| _t| j d | j d | j d | j d | j d | j d  y| jdd | j|d | jd | jd | j d | j d | j d | j d | j d | j d | jd | jd | jd | jd | jd | jd | jd  | jd  | jd  | jd  | jd  | jd  | jd! | jd" | jd# | jd$ | jd% | jd& | jd' | jd( | jd) | jd* | jd+ | jd, | jd- | jd! | jd" | jd# | jd$ | jd% | jd& | jd' | jd( | jd) | jd* | jd+ | jd, | jd- | jd! | jd" | jd# | jd$ | jd% | jd& | jd' | jd( | jd) | jd* | jd+ | jd, | jd- | jd! | jd" | jd# | jd$ | jd% | jd& | jd' | jd( | jd) | jd* | jd+ | jd, | jd- | jd! | jd" | jd# | jd$ | jd% | jd& | jd' | jd( | jd) | jd* | jd+ | jd, | jd- | jd! | jd" | jd# | jd$ | jd% | jd& | jd' | jd( | jd) | jd* | jd+ | jd, | jd- | jd. | jd/ | jd0 | jd1 | jd2 | jd. | jd/ | jd0 | jd1 | jd2 | jd. | jd/ | jd0 | jd1 | jd2 | jd. | jd/ | jd0 | jd1 | jd2 | jd. | jd/ | jd0 | jd1 | jd2 | jd. | jd/ | jd0 | jd1 | jd2 | j!| j"| j#| j$d3}	xB|	% D ]6\}
}y|d4kr t&|}||	|
< W n   Y nX qW |j'|	d5d6}W n   Y nX |j'| jd5d6}|j'| jd5d6}|j'| jd5d6}|j'| jd5d6}|j'| jd5d6}|j'| jd5d6}|d7 }| (  qHW ||fS )7Nz./csv/2022.csvr   r1  zstock qty =r   rx   r   r*   30   z.SZ6z.SH84z.BJr(   r   r   r   r   r   r   r   r   r   rs   r   r   r   r   r   r   r   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r   r   )r   r   r   ry   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   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   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   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  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=   r>   i  T)rt   ))r   r   r7  r8  r~   r   r*  r   r   r   r   r+  rK   rJ   rI   rH   rG   rF   rd   r,  rL   rR   rM   rS   rN   rT   rO   rU   rP   rV   rQ   rW   r,   r;   r<   r=   r>   itemsroundr}   r   )r   r-  r^   r_   r   r.  stockr   r/  r0  keyvaluer   r   r   r9  '  s    
(,

,
6&0000 0 0 0 0 0 ((((((
zKdata.xg_2022_for_mpc             C   s   t  }t  }xR| j D ]D\}}d|jks8d|jkrB||}d|jksVd|jkr||}qW td t| td t| d S )Nz-1abcz-1az-2zday -1abc and m30 -1abczm30 -1a or m30 -2:)r   r   r^   r*  r   r   r}   r~   )r   newlistZnewlisttrE  rD  r   r   r   xg_2022_after_mp  s    
zKdata.xg_2022_after_mpc             C   sb  t  }t }t| j | j}x| D ]\}}|d d d dksZ|d d d dkr||d d d d |d< ||}|d d d dkr|d d d d |d< ||}|d d d d	ks|d d d d
kr*|d d d d |d< ||}q*W t| xB| D ]6\}}|d | _|   td t| j	 | 
  qW tdt |  d S )Ncoder   r<  r=  r   z.SZr?  z.SHr@  rA  z.BJzin xg_havelistz	TTL time:)r   r   ry   r~   r]   r*  r}   r   ra   r[   r   )r   Zmycoder   r   r.  rD  r/  r   r   r   xg_havelist  s,    
(

(

zKdata.xg_havelistc             C   sz   | j jdddd | jjdddd | jjdddd | jjdddd | jjdddd | jjd	ddd td
 d S )Nz./kdata/kdata_m.csv	utf_8_sigT)encodingr.  z./kdata/kdata_w.csvz./kdata/kdata_d.csvz./kdata/kdata_t.csvz./kdata/kdata_f.csvz./kdata/kdata_o.csvzfake export K data done!)	rF   to_csvrG   rH   rI   rJ   rK   logginginfo)r   r   r   r   export  s    zKdata.exportc             C   s   t d d S )Nzfake show_log done!)rN  rO  )r   r   r   r   show_log  s    zKdata.show_logc             C   s4   t d t }|d}|jdddd t d d S )Nzstart get_divdata_fromdbzselect * from divdataz./csv/divdata.csvrK  F)rL  r.  zend get_divdata_fromdb)r~   r   
From_tablerM  )r   r   Zmydivr   r   r   get_div_fromdb  s
    
zKdata.get_div_fromdbc             C   s\   t d| _| j| jd | jk | _t | jd | jd< | jd| _| jjdd| _d S )Nz./csv/divdata.csvrI  dateF)	ascending)r   r7  divpdr   to_datetime	set_index
sort_index)r   r   r   r   rb     s
    zKdata.get_divc             C   s   x| j  D ]\}}|tjdd }||jd k r4P x|jjD ]}|dkr>|dkr>|jd ||f  |jd 8  < |jd ||f  |j	|j
d  7  < |jd ||f  d|jd  |j
d    < q>W qW |S )Nr   )minutesr   volumeamountr(   )rV  r*  datetime	timedeltar.  columnsvalueslocZbonuspriceZrationedpresent)r   kdatarE  valrT  fieldr   r   r   
wash_K_div  s      &6zKdata.wash_K_divc             C   sz   |    |   |   | jdd  | _| d| _| | j| _| d| _| | j| _| d| _| | j| _d S )Nir   r   r   )	get_K_Dget_K_wget_K_mrH   	get_K_TFOrI   rg  rJ   rK   )r   r   r   r   rc     s    zKdata.get_K_allc             C   sJ  d}| j dd   | j d d  }d| d}| |}tdd|}t|}|dks||d	ks||d
ks||d | d }n|d | d }t|}t	j
|ddddddgd| _| jddddg t	jd| jddddg< | jd t	jt| jd< t	| jd | jd< | jjdgdd | jd dd d| jd< d S )Nr   r   z8http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=z,day,1990-12-01,,2000,qfqz	,{(.+?)}]]sz399001sz399006sh000001dataZqfqdayr   rT  openclosehighlowvol)r_  r*   T)inplacec             S   s   | d S )Ni  r   )xr   r   r   <lambda>#      zKdata.get_K_D.<locals>.<lambda>   )r   lowergethtmlresubjsonloadsr   arrayr   r   rH   apply
to_numericrC  astypeintrW  rX  r   )r   my_kurlstockcodeurloriginaltxtgoodtxtmy_jsonarraykr   r   r   rh    s      


.zKdata.get_K_Dc             C   sF  | j dd   | j d d  }d| d}| |}tdd|}t|}|dksx|dksx|d	ksx|d
 | d }n|d
 | d }t|}t	j
|ddddddgd| _| jddddg t	jd| jddddg< | jd t	jt| jd< t	| jd | jd< | jjdgdd | jd dd d| jd< d S )Nrl  r   z8http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=z,week,1990-12-01,,2000,qfqz	,{(.+?)}]rm  rn  ro  rp  rq  Zqfqweekr   rT  rr  rs  rt  ru  rv  )r_  r*   T)rw  c             S   s   | d S )Ni  r   )rx  r   r   r   ry  :  rz  zKdata.get_K_w.<locals>.<lambda>r{  )r   r|  r}  r~  r  r  r  r   r  r   r   rG   r  r  rC  r  r  rW  rX  r   )r   r  r  r  r  r  r  r  r   r   r   ri  %  s     


.zKdata.get_K_wc             C   sF  | j dd   | j d d  }d| d}| |}tdd|}t|}|dksx|dksx|d	ksx|d
 | d }n|d
 | d }t|}t	j
|ddddddgd| _| jddddg t	jd| jddddg< | jd t	jt| jd< t	| jd | jd< | jjdgdd | jd dd d| jd< d S )Nrl  r   z8http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=z,month,1990-12-01,,2000,qfqz	,{(.+?)}]rm  rn  ro  rp  rq  Zqfqmonthr   rT  rr  rs  rt  ru  rv  )r_  r*   T)rw  c             S   s   | d S )Ni  r   )rx  r   r   r   ry  P  rz  zKdata.get_K_m.<locals>.<lambda>r{  )r   r|  r}  r~  r  r  r  r   r  r   r   rF   r  r  rC  r  r  rW  rX  r   )r   r  r  r  r  r  r  r  r   r   r   rj  <  s     


.zKdata.get_K_mc             C   sj   | j dd   | j d d  }td| j d d  d| _t| jd | jd< | jjdgdd d S )Nrl  r   zkdata/z_d.csvrT  T)rw  )r   r|  r   r7  rH   rW  rX  )r   r  r   r   r   get_K_D_csvR  s     zKdata.get_K_D_csvc             C   sj   | j dd   | j d d  }td| j d d  d| _t| jd | jd< | jjdgdd d S )Nrl  r   zkdata/z_t.csvrT  T)rw  )r   r|  r   r7  rI   rW  rX  )r   r  r   r   r   get_K_T_csvX  s     zKdata.get_K_T_csvc             C   sj   | j dd   | j d d  }td| j d d  d| _t| jd | jd< | jjdgdd d S )Nrl  r   zkdata/z_f.csvrT  T)rw  )r   r|  r   r7  rJ   rW  rX  )r   r  r   r   r   get_K_F_csv^  s     zKdata.get_K_F_csvc             C   sj   | j dd   | j d d  }td| j d d  d| _t| jd | jd< | jjdgdd d S )Nrl  r   zkdata/z_o.csvrT  T)rw  )r   r|  r   r7  rK   rW  rX  )r   r  r   r   r   get_K_O_csvd  s     zKdata.get_K_O_csvc             C   s  | j d d d}| j d d d}| j d d d}| j d d d}| j d d d}tj	|||||gdd	| _
| j
jd
dd| _
| j d  d}| j d  d}| j jd
 }| j d |d  d}	y(|	| || d  | _| jd| _W n   td Y nX | j d d d}
| j d d d}| j d d d}| j d d d}| j d d d}tj	|||||
gdd	| _| jjd
dd| _d S )Nrv  Mr*   rr  rs  rt  ru  r   )axisr   any)r  howr%   zcalculate self.hp errorzW-FRI)rH   resamplesumrC  firstlastmaxminr   concatrF   dropnar   r;   r~   rG   )r   ZmvolZmopenZmcloseZmhighZmlowZhhhZlllttlkcpZwvolZwopenZwcloseZwhighZwlowr   r   r   get_K_MWj  s.    zKdata.get_K_MWc             C   s   d}xB|dk rFyt j|ddj}|S  t jjk
rB   |d7 }Y qX qW |dkrftd| d| d |dkr|dkrt| d	| d
 dS )u    
        最多读取10次，每次等待3秒钟
        如果超过3次没有抓到K线数据，就把 i+url 输出到htmlerror.txt文件中
        每次程序开始运行的时候，清空 htmlerror.txt 文件
        r   r(   r{  )timeoutr   u	   尝试过u   次后，依然没有通过u   得到数据u
    次通过u    没有得到数据N)requestsgettext
exceptionsZRequestExceptionr~   )r   r  r   htmlr   r   r   r}    s    
zKdata.gethtmlc       
      C   s  | j dd   | j d d  }d| d| d}| |}tdd|}|dd  }t|}|d	 | | }t|}t	j
|d
dddddgd}	|	ddddg t	jd|	ddddg< |	d t	jt|	d< t	|	d
 |	d
< |	jd
gdd |	d dd d|	d< |	S )Nrl  r   z5http://ifzq.gtimg.cn/appstock/app/kline/mkline?param=,z$,,320&_var=m1_today&r=0.260880015116z	,{}(.+?)]rm  rx   rq  rT  rr  rs  rt  ru  rv  )r_  r*   T)rw  c             S   s   | d S )Ni  r   )rx  r   r   r   ry    rz  z!Kdata.get_K_TFO.<locals>.<lambda>r{  )r   r|  r}  r~  r  r  r  r   r  r   r   r  r  rC  r  r  rW  rX  r   )
r   r?   r  r  r  r  r  r  r  rd  r   r   r   rk    s      


zKdata.get_K_TFOc             C   s"  |  | j| _|  | j| _|  | j| _|  | j| _|  | j| _|  | j| _| jjd }|dkr| j}t||d |d k jd | d | _	t||d |d  d |d k  jd | d | _
|d |d  |d |d  ks|d |d	  |d |d	  krd	| _nd| _d S )
Nr   r2  ru  r   r%   rt  r*   r)   r   )cal_ma_KrF   rG   rH   rI   rJ   rK   r   r  r<   r=   r>   )r   Zttlkmdfr   r   r   rd     s    
(4DzKdata.cal_ma_allc             C   sd   |d  d d|d< |d  d d|d< |d  d d|d< |jd	d
}|S )Nrs  r)   r{  ma5r(   r   r1  r   bfill)method)rollingmeanrC  fillna)r   rd  r   r   r   r    s
    zKdata.cal_ma_Kc             C   s   ||}|S )Nr   )r   Zdict1Zdict2resr   r   r   Merge  s    zKdata.Mergec             C   s8  t  }|d| _| jjd | j_| jddddg | _ddd	d
g| j_| jd	 d | jd	< | jd	 d| jd	< d}d| jd< d| jd< d| jd< d| jd< d| jd< | jd | jd	  d | jd< | jd d| jd< | jjddddd| _| jjd | j_d| jd< d| jd< d| jd< | jj| jd< |   d S )Nzselect * from havelistr   u   代码u   成本u   数量u   名称rI  costqtyrs   r%   r   r{  g        %S1QS1B1B1QZamtr*   FT)r  byrU  rt   Q+-Zsn)r   rR  r]   r.  r_  rC  sort_valuesget_hq)r   r   Zinsertxr   r   r   get_havelist  s,    	







zKdata.get_havelistc       
      C   sh  d}xN| j  D ]@\}}|jd d dkr>|d |j d }q|d |j d }qW tj|ddj}|d	}x|D ]}t|d
krt|d}| j jd }xt	d|d D ]}	| j d |	 |d kr|d | j d |	< t
|d | j d |	< |d | j d |	< |d | j d |	< t
|d
 | j d |	< |d | j d |	< |d | j d |	< |d | j d |	< qW qtW d S )Nzhttp://qt.gtimg.cn/q=r   r?  shr  szr{  )r  ;r(   ~r   rI  r*       r  r'   r     r  rx   r  r  1   r  /   r  0   r  )r]   r*  rI  r  r  r  splitr   r   r   r  )
r   seqrE  haver  spspnspnnttljr   r   r   r    s*    


zKdata.get_hqc             C   s~  t  }|jdddd}|jd |_|d d }d|d< d|d	< d|d
< d|d< d}x\| D ]P\}}|jd d dkr|d |jd d  d }q^|d |jd d  d }q^W tj|ddj}|	d}x|D ]}t
|dkr|	d}	|jd }
xvtd|
d D ]d}|d | d d |	d kr|	d |d |< |	d |d	 |< |	d |d
 |< |	d |d |< qW qW t| d S )Nrn   r+   ro   )rp   rq   r   i   g        rs  percentZhighmaxZlowmaxzhttp://qt.gtimg.cn/q=r?  r  r   r  r  r{  )r  r  r(   r  r   rr   r*   r  r  r  )rz   r{   r|   r.  r*  rr   r  r  r  r  r   r   r   r~   )r   r   r   r  rE  rD  r  r  r  r  r  r  r   r   r   
get_hq_all$  s4    



zKdata.get_hq_allc             C   s   |dkr|    t| j |dkr|    | jjtd df | _| jd d dkr`| jd | _n>| jd d dks| jd d dkr| jd | _n| jd	 | _|   td
| j td| j |dkr|   d S )Nr   r*   r   r?  z.SHr@  rA  z.BJz.SZz[0;31;40m	stockcode:[0mzseq stockcoder{  )r  r~   r]   ilocr   r   ra   )r   r   r   r   r   showB  s     
$z
Kdata.showc             C   s  d|d< d|d< d|d< d|d< x$t d|d D ]}d}|d	 | |d	 |d
  kr@|d	 | |d	 |d
  k r@xpt dD ]d}|d ||  |d ||   d |d	 ||  kr|d	 ||  |d	 || d
  k r|d
 }qW |dkrd|d |< ||d |d  }||d |d	 k jd dkrDd|d |< q2|d	 | |d	 |d
  kr2|d	 | |d	 |d
  kr2xvt dD ]j}|d ||  |d ||   d |d	 ||  k r|d	 ||  |d	 || d
  kr|d
 }qW |dkrd
|d |< ||d |d  }||d |d	 k  jd dkr2d
|d |< q2W xt ddD ]}|| }|d	 | |d	 |d
  kr|d	 | |d	 |d
  k r|d |d
  |d	 |d
  krd|d |< P nl|d	 | |d	 |d
  krT|d	 | |d	 |d
  krT|d |d
  |d	 |d
  k rTd
|d |< P qTW x<t d|D ],}|d | d
krx~t |d
 |D ]l}|d | dkr|d
 }P |d | d
krv|d | |d | krd|d |< |}nd|d |< qvW n|d | dkrNx~t |d
 |D ]l}|d | d
kr*|d
 }P |d | dkr
|d | |d | k rhd|d |< |}nd|d |< q
W qNW |S )Nr   kkllkkllxg        kkllvkkllxvr1  r(   r   r   rx   rt  ru  r*   r         )r   r   )r   rd  r  r   Z	bcheckttlr+  tmpkr  r   r   r   cal_qs_KaiLuoV  sp    <4$  86&
 ^^zKdata.cal_qs_KaiLuoc       
      C   s  xt |d ddD ]r}|d | dkr|d | }d}xt |d ddD ]|}|d | dksh|dkrLx<t |d |dD ](}|d | |krz|| }|d | }qzW d|d || < ||d	 || < P qLW |d | dkr|d
 | }d}	xt |d ddD ]}|d | dks|dk rx@t |d |dD ],}|d
 | |kr0|| }	|d
 | }q0W d|d ||	 < ||d	 ||	 < P  qW qW |S )Nr   r1  r  r  ru  r   rl  r  r  rt  r*   )r   )
r   rd  r  r   ZLLZdisLLr  r+  ZHHZdisHHr   r   r   cal_qs_GGDD  s4    zKdata.cal_qs_GGDDc             C   s  x<t |D ].}|d | dkrd}d}xzt ||D ]l}||d | |d |   }||d |  }|d | dkr6|}|dkrd|d |< n|| |d |< P q6W |d | d	krd}d}x|t ||D ]n}||d | |d |   }||d |  }|d | d
kr|}|dkr&d|d |< n|| |d |< P qW qW |d d|d< |d d|d< |d d|d< |d d|d< |S )Nr  r*   r   rs  rv  r  r   r  rl  r  r  )r   rC  )r   rd  r  r   ZTTLaZTTLvr  r   r   r   cal_qs_kkllv  s<    

zKdata.cal_qs_kkllvc       	      C   s,  d }}d }}xt |d ddD ]}|d | dkr|}xRt |d ddD ]>}|d | dkrl|d | }|d | dkrL|d | }P qLW P q"|d | d	kr"|}xRt |d ddD ]>}|d | dkr|d | }|d | d	kr|d | }P qW P q"W || jd
< || jd< || jd< || jd< |S )Nr   r   r  r  rl  r  r  r  r*   r-   r.   r9   r:   )r   rE   )	r   rd  r  r-   r.   r:   r9   r   r  r   r   r   cal_qs_QSmodule_NDGNKL  s4    



zKdata.cal_qs_QSmodule_NDGNKLc             C   s  d } } } } }}xFt |d ddD ]2}	|d |	 dkr*|d |	 |d< |d |	 }P q*W |jd }
|
dkrzd|d< xFt |d ddD ]2}	|d	 |	 dkr|d
 |	 |d< |d
 |	 }P qW ||	 }|jd }
|
dkrd|d< xFt |d ddD ]2}	|d |	 dkr|d |	 |d< |d |	 }P qW |jd }
|
dkrHd|d< xJt |d ddD ]6}	|d	 |	 dkrZ|d
 |	 |d< |d
 |	 }P qZW ||	 }|jd }
|
dkrd|d< ||krd}nd}|| jd< || jd< || jd< || jd< || jd< |S )Nr   r   r  r  rl  r  r/      r  r  r0      r*   r1      r2      r,   )r   r   rE   )r   rd  r  r/   r0   r1   r2   ZKaidayZLuodayr   Zaddedr,   r   r   r   cal_qs_QSmodule_QSDDKaiGGLuo  sX    











z"Kdata.cal_qs_QSmodule_QSDDKaiGGLuoc       *      C   s  | j d }| j d }| j d }| j d }| j d }	| j d }
| j d }d}d	}d	}d	}d
}d	}d
}d
}|d d }d	}d	}d	}d	}d	}d	}d	}xt|d ddD ]}||d kr|d | }|d | }|}|}|d | |kr|d | }|}|d | |k r|d | }|}|d | dkr|}|}|} |d	krV|| d d d}nd	}xt|d | dD ]}!|d |! |d |! krl|d |! }|!}x8t|!| dD ](}"|d |" |k r|d |" }|"}qW |d | }xDt||dD ]4}"|d |" |kr|d |" }|d |" }|"}qW P qlW xjt|d |dD ]V}!|!|d krj|d |! }|d |! }|d |! |kr@|d |! }|d |! }q@W |d	kr|d |d  }|d |d  }P |d | dkr|}|}|}#|
| d d d}xt|d |#dD ]}!|d |! |d |! k r
|d |! }|!}x8t|!|#dD ](}"|d |" |krF|d |" }|"}qFW |d | }xDt||dD ]4}"|d |" |k r|d |" }|d |" }|"}qW P q
W xjt|d |dD ]V}!|!|d kr|d |! }|d |! }|d |! |k r|d |! }|d |! }qW |d	krb|d |d  }|d |d  }P qW |
| d d d}|d	kr|| d d d}nd}|d |d  d d d}||	d ks||d k rd}$nd	}$|	d	ks|d	ks|d	ks|
d	krd}%nd	}%|d	kr<|
| d d d}&nd	}&tjtj d}'y|d}|d}W n   Y nX || |||||||	|
||||||&|$||d d d|d d d|d d d||d d  d d d||d d  d d d||d d  d d d|||'||||d}(|| |||'d})|| j d< || j d< || j d< || j d< || j d < || j d!< ||(fS )"Nr-   r.   r/   r0   r1   r2   r,    r   g        rs  r  r   rt  ru  r  r%   r   g     8@g)\(?gGz?z%m-%d %H:%Mr*   r  r   )rI  r   r?   r   r,   r/   r0   r1   r2   r   r   PLPr5   CHLPr   
outofrange
QSabnormalr  r   r   ma5Pma10Pma30P
periodSuggr6   r   r-   r.   r3   r4   )rI  r   r?   r   r3   r4   r5   r6   r7   r8   )rE   r   rC  r]  strftimenow)*r   r   rd  r  r?   r-   r.   r/   r0   r1   r2   r,   Zperiodsuggestionr   r   r  r5   r  r6   r8   
closepricer3   r4   r7   ZDDCGorGGCD1locationZCHL1locationZHHHlocationZLLLlocationr   ZHHHZLLLZCHLlocationZLuolocationr+  r   ZKailocationr  r  r   
revisetimeperiodQSZperiodQStimer   r   r   cal_qs_QSmodule_CHL1andCHL>  s@   














(

	





z Kdata.cal_qs_QSmodule_CHL1andCHLc             C   s\  | j d }| j d }| j d }| j d }| j d }| j d }	| j d }
| j d }| j d	 }| j d
 }| j d }| j d }| j d }|d |d  }d}d}d| j|< |dkr|	| d| j|  krd}t||}t||}|dks|dkr|}||d| j|   krX||d| j|   k rXd}|
dkrD| j|  d7  < n| j|  d7  < n0|
dkrv| j|  d7  < n| j|  d7  < nj||d| j|   kr| j|  d7  < n>||d| j|   k r| j|  d7  < n| j|  d7  < |
dkr:t|||d| j|   k r.| j|  d7  < d}d}||krR|| dkrRd}||krn|| dkrnd}|sz|r| j|  d7  < |dkr||k r||d| j|   k r| j|  d7  < |dd  }|d  |d |d   }t|d  d!}y(||d" d# kr&| j|  d$7  < W n   Y nX n&|
dkr`t|||	d| j|   krt| j|  d7  < d}d}||k rd}||k rd}|s|r| j|  d7  < |dkr||kr||	d| j|   kr| j|  d7  < |dd  }|d  |d |d   }t|d  d!}y(||d" d# krP| j|  d$7  < W n   Y nX | jd%d  }yxjt	d&d dD ]Z}|j
| |j
|d   d'kr~|j
|d  |j
|d&   d'kr~| j|  d(7  < P q~W xjt	d&d dD ]Z}|j
| |j
|d   d)k r|j
|d  |j
|d&   d)k r| j|  d*7  < P qW W n   Y nX d S )+Nr-   r.   r/   r0   r1   r2   r,   r3   r5   r4   r7   r6   r8   rs  r   Fr+   r   Tr  z-1z+1z-2z+2z+0z-0z=0r   r   r   ir1  r  r      r!   ir*   gHzG?z+egq=
ףp?z-e)rE   r,   rC   r  r  rB   r  rC  rH   r   rs  )r   rd  r  r?   r-   r.   r/   r0   r1   r2   r,   r3   r5   r4   r7   r6   r8   r  Z	goodspaceZinsidespaceZminchlZmaxchlZDoGfinishJGZDoG1finishJGr  Znewma30r  r   r   r   r   cal_qs_QSmessage  s    
















 0


,



,@@zKdata.cal_qs_QSmessagec       6      C   s  |d }|d }|d }|d }| j d }	| j d }
|d }d|d	< d|d
< d|d< d|d< d}d}d}d}d}d}d}d}d}d}d}xt|d ddD ]}|d | dk
r*|d | |d |  }|}x@t||d dD ],}|d | |d |  }||k r|}|}qW d|d	 |< d|d |< |d | |d |< ||d krNP xt|d |d dD ]}|d | |d |d  k rd|d | }|d | }xZt|d |d dD ]B}||d | kr|}P ||d | k rd|d	 |< |}P qW qdW xt||d dD ]}|d	 | dkr|d | }|}d}xXt|d |d dD ]@}|d | |krx|d | }|}|d	 | dkrR|}P qRW ||d krd|d
 |< qW xt||d dD ]l}|d
 | dkrt|d | |d |  }t|d | |d |  } |d | |d | k r| d |k rd|d
 |< d}!x:t||d dD ]&}|d	 | dkrd|}"|!d }!P qdW x6t|ddD ]&}|d	 | dkr|}#|!d }!P qW |!dkr|d |" |d |# kr*|d	 |# dkryd|d |#< W n   Y nX nd|d	 |"< nd|d	 |"< qW xt|d |d dD ]}|d
 | dkrTt|d | |d |  }$t|d | |d |  }t|d | |d |  } |d | |d | ks|$|d k rpd|d |< d}||d k r
d}|d | |d |< xt||d dD ]:}|d	 | dkr0d|d |< |d | |d |< P q0W n|d | |d | ks|| d k rTd|d |< |d | |d |< xNt||d dD ]:}|d	 | dkrd|d |< |d | |d |< P qW qTW xt||d dD ]}|d	 | dkr xt|d |d dD ]}|d
 | dkrdP |d	 | dkrL|d | dkr|d | |d | k rd|d	 |< nd|d	 |< nd|d	 |< qLW q W xt|d |d dD ]}|d | }%|%dkrtd| d|%  |%dkrr|d |d  |d | kr^d}|d |d  }nd}|d |d  }|%dkr|d |d  |d | k rd}|d |d  }nd}|d |d  }|%dkr|d |d  |d | krd}|d |d  }nd}|d |d  }|%dkrh|d |d  |d | k rTd}|d |d  }nd}|d |d  }|%dkr|d |d  |d | krd }|d |d  }nd}|d |d  }||d |d < ||d |d < |%}P qW xjt|	|d dD ]V}|d | dkr|j|	|d!f  }&|j||d d!f  }'|'|&k rd}qW xt|d |d dD ]}|d | dk	s|d | dk	s|d | dk	rhx|t|d |d dD ]d}|d | dk	s|d | dk	s|d | dk	r|d | |d | k
rd}P nd}P 	qW P 	qhW P |d | d"kr|d | |d |  }|}xDt||d dD ]0}|d | |d |  }(|(|k
rh|}|(}
qhW d|d
 |< d#|d |< |d | |d |< ||d k
rP xt|d |d dD ]}|d | |d |d  k
r|d | })|d | }*xZt|d |d dD ]B}|*|d | k rZ|}P |)|d | kr>d|d
 |< |}P q>W 
qW d}xt||d dD ]}|d
 | dkr|d | }+|},xXt|d |d dD ]@}|d | |+k r|d | }+|},|d
 | dkr|}P qW ||d krd|d	 |,< qW xt||d dD ]p}|d	 | dkrTt|d | |d |  }-t|d | |d |  }.|d | |d | krT|.d |-krTd|d	 |< d}!x:t||d dD ]&}|d
 | dkr|}/|!d }!P qW x6t|ddD ]&}|d
 | dkr&|}0|!d }!P q&W |!dkrTtd$|0 d%|/  |d |/ |d |0 kr|d |0 d#krd|d
 |0< nd|d
 |/< nd|d
 |/< qTW xt|d |d dD ]}|d	 | dkrt|d | |d |  }1t|d | |d |  }-t|d | |d |  }.|d | |d | k sv|1|-d k rd&|d |< d}||d krd}2|d | |d |< xt||d dD ]:}|d
 | dkrd'|d |< |d | |d |< P qW n|d | |d | k s&|-|.d k rd(|d |< |d | |d |< xNt||d dD ]:}|d
 | dkrXd)|d |< |d | |d |< P qXW qW xt||d dD ]}|d
 | dkrxt|d |d dD ]}|d	 | dkrP |d
 | dkr|d | d#krL|d | |d | kr>d|d
 |< nd|d
 |< nd|d
 |< qW qW xt|d |d dD ]}|d | }%|%dkr||%d#kr|d |d  |d | k rd(}|d |d  }nd#}|d |d  }|%d(kr<|d |d  |d | kr(d)}|d |d  }nd(}|d |d  }|%d)kr|d |d  |d | k rzd&}|d |d  }nd)}|d |d  }|%d&kr|d |d  |d | krd'}|d |d  }nd&}|d |d  }|%d'kr2|d |d  |d | k rd*}|d |d  }nd'}|d |d  }||d |d < ||d |d < |%}P q|W xjt|
|d dD ]V}|d | d&krp|j|
|df  }3|j||d df  }4|4|3krpd}qpW xt|d |d dD ]}|d | d#ks|d | d)ks|d | d'krx|t|d |d dD ]d}|d | d#ksj|d | d)ksj|d | d'kr0|d | |d | k rd}P nd}P q0W P qW P qW |||||d+}5||5fS ),u  
        DD -2
        Kai -1
        GG 2
        Luo 1
        从后向前找，如果第一个找到-2，即当前在上涨趋势中
        1，下跌趋势中找底分型，
        2，两个底分型之间找最高点（或碰MA10或MA30的点）
        r5   r0   r2   r,   r9   r:   r   g        ZJGVFXZJGAFXr  rD   ZJGVr   r   r  r  r*   ru  r   r?  rt  r   r  zJGVFX 9g?r=  7r@  z-i am here Z01r{  rl  1zlastAFX is z ||| nextAFX is rA  52r<  Z06)r   r   r   r   r   )rE   r   absrN  rO  r  r  r  )6r   rd  r  r?   r  r5   r0   r2   r,   r9   r:   r  r   ZKJdoner   r   r   r   Z
CurrentJGVZminlpercentZminllocationZmaxhpercentZmaxhlocationr   r  ZminlpercentnewZlowhighZlowlowr+  ZcurrentHighZcurrentHighLocationZ	high2ma10Zhigh2ma5Zcomp_OKZnextVFXZlastVFXZ	high2ma30ZlastFXisZ	lowbeforeZlowafterZmaxhpercentnewZhighlowZhighhighZ
currentLowZcurrentLowLocationZlow2ma10Zlow2ma5ZnextAFXZlastAFXZlow2ma30ZXDKJZ
highbeforeZ	highafterperiodJGr   r   r   cal_jg_JGmodule  s   

 
(
(






 
66

 


(
(






 
66zKdata.cal_jg_JGmodulec             C   s(   ||||d|d}| j j|dd| _ d S )Nr   )modulerY   reasonrb  perr?   T)rt   )rY   r}   )r   r  rY   r   rb  r?   Ztmppnsr   r   r   topnsj  s    zKdata.topnsc             C   s~  |  ddd|d | j|  |  ddd|d | j|  |  ddd|d | j|  |  ddd|d | j|  | j| }d|ksd	|ksd
|kr|dkr|  ddd|d | j|  t|d dkr|d d
kr|dkr|dkr|  ddd|d | j|  d|ksd|krz|dkrz|  ddd|d | j|  t|d dkrz|dkrz|dkrz|  ddd|d | j|  d S )Nr,   Pr1   r2   Sr0   r/   z-1z-2r=  r   rD   r   r   r>  r   r   z+1z+2r*   )r  rA   r,   r  )r   r  r  r?   Ztmpqsr   r   r   cal_qsjg_pnsm  s    
 ,&zKdata.cal_qsjg_pnsc                s   j d dkrp j d  j d  d  jd krp j d  j d  j d  j d  j d  j d	  j d
 d _ jd dkr jd  jd  d  jd kr  j jd  jd  jd  jd  jd  jd	  jd
 d _ jd dkrh jd  jd  d  jd krh  j jd  jd  jd  jd  jd  jd	  jd
 d _ jd dkr jd  jd  d  jd kr  j jd  jd  jd  jd  jd  jd	  jd
 d _ jd dkrd jd  jd  d  jd krd  j jd  jd  jd  jd  jd  jd	  jd
 d _ jd dkr jd  jd  d  jd kr  j jd  jd  jd  jd  jd  jd	  jd
 d _  j j d  j	d  j	j
d d   j	d  j	j
d d  d _tjj jddgd}| jddid}d|d < |d  fd!d"|d < |d  d#|d < |jd d$d%}|jd&d'}|jd |_| _d S )(Nr0   r   r2   r   r   r1   r/   r  r   r   )ZmGGZmLuoZmDDZmKaiZmma5Zmma10Zmma30r   )ZwGGZwLuoZwDDZwKaiZwma5Zwma10Zwma30r   )ZdGGZdLuoZdDDZdKaiZdma5Zdma10Zdma30r   )ZtGGZtLuoZtDDZtKaiZtma5Ztma10Ztma30r   )ZfGGZfLuoZfDDZfKaiZfma5Zfma10Zfma30r   )ZoGGZoLuoZoDDZoKaiZoma5Zoma10Zoma30r   rt  ru  )r   Hro   r.  rF  )orientr_  rs   )r_  g        pctc                s   |  j d  d d S )Nr   r   r%   )rL   )rx  )r   r   r   ry    rz  z%Kdata.cal_qs_pnsall.<locals>.<lambda>r*   F)r  rU  T)drop)rL   rC   rX   rM   r  rN   rO   rP   rQ   rH   r   r   r   	from_dictreset_indexrenamer   rC  r  r.  ZPnSpd)r   Ztmppdr   )r   r   cal_qs_pnsall}  sP    "  " "$ "$ "$ "$ "BzKdata.cal_qs_pnsallc             C   s   x| j D ]}qW d S )N)r@   )r   r   r   r   r   cal_qs_pnsbyperiod  s    zKdata.cal_qs_pnsbyperiodc             C   s	  | j }d| jd kr$||d dk }d| jd krB||d dk }d| jd kr`||d dk }d| jd	 kr~||d d
k }d| jd kr||d dk }d| jd kr||d dk }| j| jd | jd d k }|jdd}|d d }|d d }||d |k |d |k@  }|jdd}t| | j | j d dk| j d dkB  }|dddg }|jdd}y| j | j d dk| j d dkB | j d dkB  }|jdd}y||d dk jd }W n   d}Y nX ||d dk jd }t||}y||d dk jd }	W n   d}	Y nX ||d dk jd }
t|	|
}	|||	d   }|dddg }|jdd}W n   t	
 }Y nX y| j | j d dk| j d dkB | j d dkB | j d dkB  }|jdd}y||d d!k jd }W n   d}Y nX ||d dk jd }t||}y||d d"k jd }	W n   d}	Y nX ||d dk jd }
t|	|
}	|||	d   }|dddg }|jdd}W n   t	
 }Y nX y| j | j d dk| j d dkB | j d dkB | j d d
kB | j d dkB  }|jdd}y||d d#k jd }W n   d}Y nX ||d dk jd }t||}y||d d$k jd }	W n   d}	Y nX ||d dk jd }
t|	|
}	|||	d   }|dddg }|jdd}W n   t	
 }Y nX y,| j | j d dk| j d dkB | j d dkB | j d d
kB | j d dkB | j d dkB  }|jdd}y||d d%k jd }W n   d}Y nX ||d dk jd }t||}y||d d&k jd }	W n   d}	Y nX ||d dk jd }
t|	|
}	|||	d   }|dddg }|jdd}W n   Y nX y:| j | j d dk| j d dkB | j d dkB | j d d
kB | j d dkB | j d dkB | j d dkB  }|jdd}y||d d'k jd }W n   d}Y nX ||d dk jd }t||}y||d d(k jd }	W n   d}	Y nX ||d dk jd }
t|	|
}	|||	d   }|dddg }|jdd}W n   Y nX t	j||||||gd d)}|d}||d d*k }|}|}|}|}|}d| jd kr||d |k |d |k@  }d| jd kr||d |k |d |k@  }d| jd kr2||d |k |d |k@  }d| jd	 kr^||d |k |d |k@  }d| jd kr||d |k |d |k@  }d| jd kr||d |k |d |k@  }t	j||||||gd d)}|d}|   t| j d+| jd  d,| jd  d-| jd  d.| jd	  d/| jd  d0| jd  d1}td2| d3 t| td2| d3 t| td2| d3 || _|| _d S )4Nr=  r   r?   r   r   r    r   r!   r   r"   r   r#   r   r$   rI  r   T)r	  r  r   r  rb  r  r+   r   r  ZGG_wr%   ZH_ZDD_wZL_r   ZGG_dZDD_dZGG_tZDD_tZGG_fZDD_fZGG_oZDD_o)r  Zfakez--M:z-------------W:z-------------D:z-------------T:z--------------F:z-------------O:z
----------z[0;31;40m	 z [0m)rY   r,   r]   r   r  r~   r.  r  r  r   r   r  r  r  rZ   r[   )r   ZnewpnsZnewhavelistZmaxpriceZminpriceZpnsmZpnswZstartxZstartx1ZendxZendx1ZpnsdZpnstZpnsfZpnsorZ   ZnewpnsmZnewpnswZnewpnsdZnewpnstZnewpnsfZnewpnsor[   Ztmpstrr   r   r   cal_pns  s6         "0



>



L



Z



h




      

NzKdata.cal_pnsc             C   s  |d d }|| ||dddddddddddddddddddddddddddd}dddddd}|j d }|dk r~|||fS | ||}| ||}| ||}| ||}| ||}| ||||\}}| ||| | ||||\}}| 	||| |||fS )Nrs  r  c   )rI  r   r?   r   r,   r/   r0   r1   r2   r   r   r  r5   r  r   r  r  r  r   r   r  r  r  r  r6   r   r-   r.   r3   r4   )r   r   r   r   r   r   r&   )
r   r  r  r  r  r  r  r  r  r  )r   rd  r   r?   r  r  r  r  r   r   r   r,  l  sb    "
 
zKdata.cal_qsc             C   s  |  | j| jd\| _| _| _|  | j| jd\| _| _| _|  | j| jd\| _| _	| _
|  | j| jd\| _| _| _|  | j| jd\| _| _| _|  | j| jd\| _| _| _|   |   | ddd| jd	 | jjd
 d  d | ddd| jd | jjd
 d  d | ddd| jd d t| jd | jd  d d d| jd< | j| jd d
k| jd dk@  }| j|jdd| _| j| jd d
k | jd dk@  }| j|jdd| _| jjdgdd| _| jd d | jd  | jd< |   d S )Nr   r   r   r   r   r   r+   r  rt  r   r   ro   ru  r   rb  r%   r  rY   r  F)keepr  )r  rU  r   _r?   )r,  rF   r   rL   rR   rG   rM   rS   rH   rN   rT   rI   rO   rU   rJ   rP   rV   rK   rQ   rW   r  r  r  r   rC  rY   r}   r8  r  r  )r   Zpns1r   r   r   re     s&    (((""zKdata.cal_qs_all)N)6__name__
__module____qualname____doc__r
   r   ra   r`   rm   r   r   r;  r9  rH  rJ  rP  rQ  rS  rb   rg  rc   rh  ri  rj  r  r  r  r  r  r}  rk  rd   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  re   __classcell__r   r   )r   r   r      sr   2(y, 
)L &9 X    U9 /Zr   ),oneclass.onedbr   Zoneclass.onedatar   osr   sysry   r~  r  r]  r  warningsrN  xlrd	tracebacknumpyr   pandasr   tusharerz   
sqlalchemyr   pymysqlmultiprocessingr   	set_token
set_optionfilterwarningsdurtimedurting1FocusPerioduihandleplockr   r   r   	mysqlhostr   r^   r_   r   r   r   r   r   r   <module>   s    `

