B
    IcG                @   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'   Z(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d1 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  ZS )2Oneqsu    K线类 技术分析评分机制Nc                s2   t    t | _|   t | _td| _	d S )Nr   )
super__init__pd	DataFrameallstocklistinit_parameterr   onedbr   onedata)self	stockcodeparent)	__class__ $/Users/apple/one/k/oneclass/oneqs.pyr
      s    


zOneqs.__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'| _'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_YLZCZPnSpnsZpnsttlZ	newpnsttlZrefreshK_timeinterr   sigZhavelistxgresultqsresult)r   r   r   r   r      sT    &










zOneqs.init_parameterc             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.csvZ	utf_8_sigF)encodingindexzend get_divdata_fromdb)printr   
From_tableto_csv)r   r   Zmydivr   r   r   get_div_fromdbX   s
    
zOneqs.get_div_fromdbc             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
}|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   Zstock_basicr)   L)exchangeZlist_statusz	000001.SHu   上证综指)ts_codenameT)ignore_indexz	399006.SZu   创业板指z	399001.SZu   深圳成指i  r#   r   zXXXX corelist   qtyperthreadxgallZqsallr   	   z	TTL time:)timer   r   rX   rY   tsZpro_apiqueryappendr   r\   shapemathceilrangempPoolmapxg_all_for_mpziplenreplacenpinfr   	del_table
into_table)r   	starttimecorelistZpro	stockliststockqtyZ	qtyperjobZcoreqtyi	threadqtypoolrf   resultabr   r   r   r   	xg_all_mpc   sD    







zOneqs.xg_all_mpc       	      C   s^  t  }t  }| j}|||d  }td|jd  d}x| D ]
\}}|d | _t|| j | jdd  dkrtd| _n
td| _| j	| jd\| _
| _| _| _| _| _|   | | 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   rb   z.BJallr   r   r   r   r   r      rc   
reviseTimeCma30ma10spacePprofitPriskPr+   r,   r-   r.   r/   r0   r1   r2   r3   r4   ConfirmedJG	CurrentJGJGdoneQXJGQR)scoder   	stocknameri   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JGQRor9   r:   r;   r<   T)rd   )%r   r   r   r\   rm   iterrowsr   r   r   krI   rH   rG   rF   rE   rD   
cal_ma_allcal_qsrJ   rP   rK   rQ   rL   rR   rM   rS   rN   rT   rO   rU   r*   r9   r:   r;   r<   rl   r   )	r   nrX   rY   r~   r   r[   rowtmpr   r   r   rt      sx    

(6&0000 0 0 0 0 0 ((((((zOneqs.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   rf      <   Z   x      xg2022Zqs2022rh   zSdelete `xgall` from `xgall`,`xg2022` where `xgall`.`stockcode`=`xg2022`.`stockcode`rg   z	TTL time:)ri   r   r   rX   rY   read_csvr\   rm   drop_duplicatesrq   rr   rn   ro   rs   xg_2022_for_mpru   rp   rv   rl   rw   rx   ry   r   rz   r{   execute_sql)r   r|   r~   r   r   r   rf   r}   r   r   r   r   r   r   r   r   
xg_2022_mp   s:    








zOneqs.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   r  zstock qty =r   rh   r   r(   30   z.SZ6z.SH84z.BJr&   r   r   r   r   r   r   r   r   r   rc   r   r   r   r   r   r   r   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   r   r   r   r   )r   r   r   ri   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  r9   r:   r;   r<   i  T)rd   ))r   r   r$  r%  r\   rm   r  rv   r   r   r   r  rI   rH   rG   rF   rE   rD   r  r  rJ   rP   rK   rQ   rL   rR   rM   rS   rN   rT   rO   rU   r*   r9   r:   r;   r<   itemsroundrl   r   )r   r  rX   rY   r~   r[   stockr   r  r  keyvaluer   r   r   r&     s    
(,

,
6&0000 0 0 0 0 0 ((((((
zOneqs.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   rX   r  r   r   rl   r\   )r   ZnewlistZnewlisttr2  r1  r   r   r   xg_2022_after_mpZ  s    
zOneqs.xg_2022_after_mpc             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   r  lowr   r#   highr(   r'   r   )cal_ma_KrD   rE   rF   rG   rH   rI   rm   intr:   r;   r<   )r   Zttlkmdfr   r   r   r  h  s    
(4DzOneqs.cal_ma_allc             C   sd   |d  d d|d< |d  d d|d< |d  d d|d< |jd	d
}|S )Ncloser'      ma5r&   r   r  r   bfill)method)rollingmeanr0  fillna)r   kdatar   r   r   r7    s
    zOneqs.cal_ma_Kc             C   s   ||}|S )Nr   )r   Zdict1Zdict2resr   r   r   Z__Merge  s    zOneqs.__Mergec             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kkllxvr  r&   r   r   rh   r6  r5  r(   r         )rp   rm   )r   rB  ttlkr   Z	bcheckttlr  tmpkjr   r   r   cal_qs_KaiLuo  sp    <4$  86&
 ^^zOneqs.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   r  rH  rD  r5  r   rE  rG  r6  r(   )rp   )
r   rB  rK  r   ZLLZdisLLrM  r  ZHHZdisHHr   r   r   cal_qs_GGDD  s4    zOneqs.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 )NrE  r(   r   r:  volrD  r   rF  rO  rH  rG  )rp   r0  )r   rB  rK  r   ZTTLaZTTLvrM  r   r   r   cal_qs_kkllv  s<    

zOneqs.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   rH  rE  rO  rD  rF  rG  r(   r+   r,   r7   r8   )rp   rC   )	r   rB  rK  r+   r,   r8   r7   r   rM  r   r   r   cal_qs_QSmodule_NDGNKL  s4    



zOneqs.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   rH  rE  rO  rG  r-      rD  rF  r.      r(   r/      r0      r*   )rp   rm   rC   )r   rB  rK  r-   r.   r/   r0   ZKaidayZLuodayr   Zaddedr*   r   r   r   cal_qs_QSmodule_QSDDKaiGGLuo5  sX    











z"Oneqs.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-   r.   r/   r0   r*    r   g        r:  rH  r   r6  r5  rD  r#   r   g     8@g)\(?gGz?z%m-%d %H:%Mr(   r<  r   )coder   r=   r   r*   r-   r.   r/   r0   r   r   PLPr3   CHLPr   
outofrange
QSabnormalr<  r   r   ma5Pma10Pma30P
periodSuggr4   r   r+   r,   r1   r2   )rZ  r   r=   r   r1   r2   r3   r4   r5   r6   )rC   rp   r0  datetimestrftimenow)*r   r   rB  rK  r=   r+   r,   r-   r.   r/   r0   r*   Zperiodsuggestionr   r   r[  r3   r\  r4   r6   
closepricer1   r2   r5   ZDDCGorGGCD1locationZCHL1locationZHHHlocationZLLLlocationr   ZHHHZLLLZCHLlocationZLuolocationr  r   ZKailocationr]  r^  r   
revisetimeperiodQSZperiodQStimer   r   r   cal_qs_QSmodule_CHL1andCHLn  s@   














(

	





z Oneqs.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-   r.   r/   r0   r*   r1   r3   r2   r5   r4   r6   r:  r   Fr)   r   TrH  z-1z+1z-2z+2z+0z-0z=0r   r   r   ir  rI  r      r   ir(   gHzG?z+egq=
ףp?z-e)rC   r*   rA   minmaxr@   sumr0  rF   rp   r:  )r   rB  rK  r=   r+   r,   r-   r.   r/   r0   r*   r1   r3   r2   r5   r4   r6   rf  Z	goodspaceZinsidespaceZminchlZmaxchlZDoGfinishJGZDoG1finishJGrL  Znewma30r9  r   r   r   r   cal_qs_QSmessageE  s    
















 0


,



,@@zOneqs.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的点）
        r3   r.   r0   r*   r7   r8   r   g        ZJGVFXZJGAFXrY  rB   ZJGVr   r   rH  rE  r(   r5  r   r,  r6  r   r<  zJGVFX 9g?r*  7r-  z-i am here Z01r;  rO  1zlastAFX is z ||| nextAFX is r.  52r)  Z06)r   r   r   r   r   )rC   rp   abslogginginfoilocrk  rl  )6r   rB  rK  r=   rh  r3   r.   r0   r*   r7   r8   rg  r   ZKJdoner   r   r   r   Z
CurrentJGVZminlpercentZminllocationZmaxhpercentZmaxhlocationr   rM  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Oneqs.cal_jg_JGmodulec             C   s(   ||||d|d}| j j|dd| _ d S )Nr   )modulerV   reasonpriceperr=   T)rd   )rV   rl   )r   rz  rV   r{  r|  r=   Ztmppnsr   r   r   topns  s    zOneqs.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*   Pr/   r0   Sr.   r-   z-1z-2r*  r   rB   r   r   r+  r   r   z+1z+2r(   )r~  r?   r*   r8  )r   rh  rx  r=   Ztmpqsr   r   r   cal_qsjg_pns  s    
 ,&zOneqs.cal_qsjg_pnsc             C   s   x| j D ]}qW d S )N)r>   )r   r   r   r   r   cal_qs_pnsbyperiod  s    zOneqs.cal_qs_pnsbyperiodc             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 )Nr:  rH  c   )rZ  r   r=   r   r*   r-   r.   r/   r0   r   r   r[  r3   r\  r   r]  r^  r<  r   r   r_  r`  ra  rb  r4   r   r+   r,   r1   r2   )r   r   r   r   r   r   r$   )
rm   rN  rP  rR  rS  rX  ri  rn  ry  r  )r   rB  r   r=   rf  rh  rx  rK  r   r   r   r    sb    
 
zOneqs.cal_qs)N)__name__
__module____qualname____doc__r
   r   r_   r   rt   r(  r&  r4  r  r7  Z_Oneqs__MergerN  rP  rR  rS  rX  ri  rn  ry  r~  r  r  r  __classcell__r   r   )r   r   r      s:   <&H,]F &9 X    U	r   ),oneclass.onedbr   Zoneclass.onedatar   osrn   sysri   rejsonrc  requestswarningsru  xlrd	tracebacknumpyrx   pandasr   tusharerj   
sqlalchemyr   pymysqlmultiprocessingrq   	set_token
set_optionfilterwarningsdurtimedurting1FocusPerioduihandleplockshowtypehavelistseqr   	mysqlhostr   rX   rY   r   r   r   r   r   r   <module>   s    `

