U
    m\eM                    @   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__ /home/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   定义参数        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   s$   t  }|d}|jdddd d S )Nzselect * from divdataz./csv/divdata.csvZ	utf_8_sigF)encodingindex)r   
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
}|| _	| j	j
d }d}t|| }td|D ]}||d  qtd| d}	t|	}
t||	 }td| |
| j|}t| \}}tt|D ]*}| j|| | _| j|| | _q| 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   深圳成指r%   r   zXXXX corelist   qtyperthreadxgallZqsallr   	   	TTL time:)timer   r   rZ   r[   tsZpro_apiqueryappendr   shapemathceilrangeprint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poolrh   resultabr   r   r   r   	xg_all_mpc   sB    






zOneqs.xg_all_mpc                 C   s  t  }t  }| j}|||d  }td|jd  d}| D ]\}}|d | _t|| j | jdd  dkrtd| _n
td| _z,| j	| jd\| _
| _| _| _| _| _W n   Y qBY nX | jd	  }| jd
  }	| jjd }
| jd |
d  }z(||	 ||	 d  | _| jd| _W n   td Y 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 }| '  qB||fS ).Nr%   stock qty =r   r   rc   .BJallhighlowclosecalculate self.hp errorr   r   r   r   r   r      rd   
reviseTimeCma30ma10spacePprofitPriskPr-   r.   r/   r0   r1   r2   r3   r4   r5   r6   ConfirmedJG	CurrentJGJGdoneQXJGQRscoder   	stocknamerl   cZQSmZQSwZQSdZQStZQSfZQSoZma30mZma30wZma30dZma30tZma30fZma30oZma10mZma10wZma10dZma10tZma10fZma10oZspacePmZprofitPmZriskPmZNDGmZNKLmZDDmZKaimZGGmZLuomZCHL1mZDDCGorGGCD1mZCHLmZDDCGorGGCDmZspacePwZprofitPwZriskPwZNDGwZNKLwZDDwZKaiwZGGwZLuowZCHL1wZDDCGorGGCD1wZCHLwZDDCGorGGCDwZspacePdZprofitPdZriskPdZNDGdZNKLdZDDdZKaidZGGdZLuodZCHL1dZDDCGorGGCD1dZCHLdZDDCGorGGCDdZspacePtZprofitPtZriskPtZNDGtZNKLtZDDtZKaitZGGtZLuotZCHL1tZDDCGorGGCD1tZCHLtZDDCGorGGCDtZspacePfZprofitPfZriskPfZNDGfZNKLfZDDfZKaifZGGfZLuofZCHL1fZDDCGorGGCD1fZCHLfZDDCGorGGCDfZspacePoZprofitPoZriskPoZNDGoZNKLoZDDoZKaioZGGoZLuooZCHL1oZDDCGorGGCD1oZCHLoZDDCGorGGCDoZConfirmedJGmZ
CurrentJGmZJGdonemZQXmZJGQRmZConfirmedJGwZ
CurrentJGwZJGdonewZQXwZJGQRwZConfirmedJGdZ
CurrentJGdZJGdonedZQXdZJGQRdZConfirmedJGtZ
CurrentJGtZJGdonetZQXtZJGQRtZConfirmedJGfZ
CurrentJGfZJGdonefZQXfZJGQRfZConfirmedJGoZ
CurrentJGoZJGdoneoZQXoZJGQRor;   r<   r=   r>   Tre   )(r   r   r   rt   rp   iterrowsr   r   r   krK   rJ   rI   rH   rG   rF   maxminr;   round
cal_ma_allcal_qsrL   rR   rM   rS   rN   rT   rO   rU   rP   rV   rQ   rW   r,   r<   r=   r>   ro   r   )r   nrZ   r[   r   r   r]   rowhhhlllttlkcptmpr   r   r   rx      s^   

,
6&                                                                                                      
zOneqs.xg_all_for_mpc                 C   s  t   }t | _t | _td}|dg}td|jd   |jd }d}t	
|}t|| }td| dddd	d
dg}t| || j|}t| \}	}
tt|	D ](}| j|	| | _| j|
| | _q| 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 )N./csv/2022.csvr   zformer qty = r   r   rh      <   Z   x      xg2022Zqs2022rj   zSdelete `xgall` from `xgall`,`xg2022` where `xgall`.`stockcode`=`xg2022`.`stockcode`ri   rk   )rl   r   r   rZ   r[   read_csvdrop_duplicatesrt   rp   ru   rv   rq   rr   rw   xg_2022_for_mpry   rs   rz   ro   r{   r|   r}   r   r~   r   execute_sql)r   r   r   r   r   r   rh   r   r   r   r   r   r   r   r   r   
xg_2022_mp   s8    








zOneqs.xg_2022_mpc                 C   s>  t  }t  }t d}|dg}|||d  }td|jd  | 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r2|d dd d |d< qN|d dd |d< qNd}| D ]\}}|d | _t|| j | jdd  dkrt	d| _
n
t	d| _
z,| j
| jd\| _| _| _| _| _| _W n   Y q@Y nX | jd  }	| jd  }
| jjd }| jd |d  }z(||
 |	|
 d  | _| jd| _W n   td Y 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  z~| 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d0 | jd1 | jd2 | 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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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 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"d( | j"d) | j"d* | j"d+ | j"d, | j"d- | j"d. | j"d/ | j"d0 | j"d1 | j"d2 | jd3 | jd4 | jd5 | jd6 | jd7 | jd3 | jd4 | jd5 | jd6 | jd7 | jd3 | jd4 | jd5 | jd6 | jd7 | jd3 | jd4 | jd5 | jd6 | jd7 | j!d3 | j!d4 | j!d5 | j!d6 | j!d7 | j#d3 | j#d4 | j#d5 | j#d6 | j#d7 | j| j%| j&| j'd8}|( D ]6\}}z|d9krt|}|||< W n   Y nX ql|j)|d:d;}W n   Y nX |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 }| *  q@||fS )<Nr   r   r   r   r   rj   r   r*   30   z.SZ6z.SH84r   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/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r   r   r   i  Tre   )+r   r   r   r   rt   rp   r   rz   r   r   r   r   rK   rJ   rI   rH   rG   rF   r   r   r;   r   r   r   rL   rR   rM   rS   rN   rT   rO   rU   rP   rV   rQ   rW   r,   r<   r=   r>   itemsro   r   )r   r   rZ   r[   r   r]   stockr   r   r   r   r   r   r   keyvaluer   r   r   r     s   
(,

,6&                                                                                                      

zOneqs.xg_2022_for_mpc                 C   s   t  }t  }| j D ]D\}}d|jks6d|jkr@||}d|jksTd|jkr||}qtd t| td t| d S )Nz-1abcz-1a-2zday -1abc and m30 -1abczm30 -1a or m30 -2:)r   r   rZ   r   r   r   ro   rt   )r   ZnewlistZnewlisttr   r   r   r   r   xg_2022_after_mpv  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   r   r   r%   r   r*   r)   r   )cal_ma_KrF   rG   rH   rI   rJ   rK   rp   intr<   r=   r>   )r   Zttlkmdfr   r   r   r     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 )Nr   r)      ma5r(   r   r   r   bfill)method)rollingmeanr   fillna)r   kdatar   r   r   r     s
    zOneqs.cal_ma_Kc                 C   s   ||}|S Nr   )r   Zdict1Zdict2resr   r   r   Z__Merge  s    zOneqs.__Mergec                 C   st  d|d< d|d< d|d< d|d< t d|d D ]}d}|d	 | |d	 |d
  kr8|d	 | |d	 |d
  k r8t dD ]d}|d ||  |d ||   d |d	 ||  kr||d	 ||  |d	 || d
  k r||d
 }q||dkrd|d |< ||d |d  }||d |d	 k jd dkr8d|d |< q.|d	 | |d	 |d
  kr.|d	 | |d	 |d
  kr.t dD ]j}|d ||  |d ||   d |d	 ||  k rx|d	 ||  |d	 || d
  krx|d
 }qx|dkrd
|d |< ||d |d  }||d |d	 k  jd dkr.d
|d |< q.t ddD ]}|| }|d	 | |d	 |d
  kr|d	 | |d	 |d
  k r|d |d
  |d	 |d
  krd|d |<  q6np|d	 | |d	 |d
  krD|d	 | |d	 |d
  krD|d |d
  |d	 |d
  k rDd
|d |<  q6qDt d|D ],}|d | d
krt |d
 |D ]p}|d | dkr|d
 } ql|d | d
krf|d | |d | krd|d |< |}nd|d |< qfn|d | dkr@t |d
 |D ]p}|d | d
kr|d
 } q@|d | dkr|d | |d | k r\d|d |< |}nd|d |< qq@|S )Nr   kkllkkllxr   kkllvkkllxvr   r(   r   r   rj   r   r   r*   r         )rs   rp   )r   r   r   r   Z	bcheckttlr   tmpkjr   r   r   cal_qs_KaiLuo  st    <4"
  86"
 ^^
zOneqs.cal_qs_KaiLuoc           
      C   sz  t |d ddD ]b}|d | dkr|d | }d}t |d ddD ]z}|d | dksb|dkrFt |d |dD ](}|d | |krr|| }|d | }qrd|d || < ||d	 || <  qqF|d | dkr|d
 | }d}	t |d ddD ]}|d | dks|dkrt |d |dD ],}|d
 | |kr || }	|d
 | }q d|d ||	 < ||d	 ||	 <  qqq|S )Nr   r   r   r   r   r   r   r   r   r*   )rs   )
r   r   r   r   ZLLZdisLLr   r   ZHHZdisHHr   r   r   cal_qs_GGDD  s4    zOneqs.cal_qs_GGDDc                 C   s  t |D ]*}|d | dkrd}d}t ||D ]n}||d | |d |   }||d |  }|d | dkr0|}|dkrd|d |< n|| |d |<  qq0|d | d	krd}d}t ||D ]p}||d | |d |   }||d |  }|d | d
kr|}|dkrd|d |< n|| |d |<  qqq|d d|d< |d d|d< |d d|d< |d d|d< |S )Nr   r*   r   r   volr   r   r   r   r   r   r   )rs   r   )r   r   r   r   ZTTLaZTTLvr   r   r   r   cal_qs_kkllv  s<    
	zOneqs.cal_qs_kkllvc           	      C   s(  d }}d }}t |d ddD ]}|d | dkr|}t |d ddD ]@}|d | dkrh|d | }|d | dkrH|d | } qqH qq |d | d	kr |}t |d ddD ]@}|d | dkr|d | }|d | d	kr|d | } qq qq || jd
< || jd< || jd< || jd< |S )Nr   r   r   r   r   r   r   r   r*   r-   r.   r9   r:   )rs   rE   )	r   r   r   r-   r.   r:   r9   r   r   r   r   r   cal_qs_QSmodule_NDGNKL<  s4    



zOneqs.cal_qs_QSmodule_NDGNKLc                 C   s  d } } } } }}t |d ddD ]4}	|d |	 dkr(|d |	 |d< |d |	 } q^q(|jd }
|
dkrxd|d< t |d ddD ]4}	|d	 |	 dkr|d
 |	 |d< |d
 |	 } qq||	 }|jd }
|
dkrd|d< t |d ddD ]6}	|d |	 dkr|d |	 |d< |d |	 } q(q|jd }
|
dkrDd|d< t |d ddD ]:}	|d	 |	 dkrT|d
 |	 |d< |d
 |	 } qqT||	 }|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   r   r   r/      r   r   r0      r*   r1      r2      r,   )rs   rp   rE   )r   r   r   r/   r0   r1   r2   ZKaidayZLuodayr   Zaddedr,   r   r   r   cal_qs_QSmodule_QSDDKaiGGLuoY  sX    












z"Oneqs.cal_qs_QSmodule_QSDDKaiGGLuoc           *      C   sx  | 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	}t|d ddD ]}||d kr|d | }|d | }|}|}|d | |kr|d | }|}|d | |k r|d | }|}|d | dkr|}|}|} |d	krR|| d d d}nd	}t|d | dD ]}!|d |! |d |! krf|d |! }|!}t|!| dD ](}"|d |" |k r|d |" }|"}q|d | }t||dD ]4}"|d |" |kr|d |" }|d |" }|"}q q"qft|d |dD ]V}!|!|d kr\|d |! }|d |! }|d |! |kr2|d |! }|d |! }q2|d	kr|d |d  }|d |d  } qR|d | dkr|}|}|}#|
| d d d}t|d |#dD ]}!|d |! |d |! k r|d |! }|!}t|!|#dD ](}"|d |" |kr6|d |" }|"}q6|d | }t||dD ]4}"|d |" |k rx|d |" }|d |" }|"}qx qqt|d |dD ]V}!|!|d kr|d |! }|d |! }|d |! |k r|d |! }|d |! }q|d	krJ|d |d  }|d |d  } qRq|
| 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}'z|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   r   r   r   r   r   r   r   r%   r   g     8@g)\(?gGz?z%m-%d %H:%Mr*   r   r   r   coder   r?   r   r,   r/   r0   r1   r2   r   r   PLPr5   CHLPr   
outofrange
QSabnormalr   r   r   Zma5PZma10PZma30PZ
periodSuggr6   r   r-   r.   r3   r4   )r   r   r?   r   r3   r4   r5   r6   r7   r8   )rE   rs   r   datetimestrftimenow)*r   r   r   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  sD   












(

!	





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!}z(||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!}z(||d" d# krP| j|  d$7  < W n   Y nX | jd%d  }zt	d&d dD ]^}|j
| |j
|d   d'kr||j
|d  |j
|d&   d'kr|| j|  d(7  <  qܐq|t	d&d dD ]^}|j
| |j
|d   d)k r|j
|d  |j
|d&   d)k r| j|  d*7  <  qHqW n   Y nX d S )+Nr-   r.   r/   r0   r1   r2   r,   r3   r5   r4   r7   r6   r8   r   r   Fr+   r   Tr   -1+1r   +2z+0z-0z=0r   r   r   ir   r   r      r!   ir*   gHzG?z+egq=
ףp?z-e)rE   r,   rC   r   r   rB   sumr   rH   rs   r   )r   r   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_QSmessagei  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}t|d ddD ]}|d | dk
r|d | |d |  }|}t||d dD ],}|d | |d |  }||k r|}|}qd|d	 |< d|d |< |d | |d |< ||d krJ q|t|d |d dD ]}|d | |d |d  k r^|d | }|d | }t|d |d dD ]J}||d | kr|} q^||d | k rd|d	 |< |} q^qq^t||d dD ]}|d	 | dkr|d | }|}d}t|d |d dD ]D}|d | |krp|d | }|}|d	 | dkrJ|} qqJ||d krd|d
 |< qt||d dD ]l}|d
 | dkrt|d | |d |  }t|d | |d |  } |d | |d | k r| d |k rd|d
 |< d}!t||d dD ]*}|d	 | dkrV|}"|!d }! qqVt|ddD ]*}|d	 | dkr|}#|!d }! qq|!dkr|d |" |d |# kr|d	 |# dkrzd|d |#< W n   Y nX nd|d	 |"< nd|d	 |"< qt|d |d dD ]}|d
 | dkrBt|d | |d |  }$t|d | |d |  }t|d | |d |  } |d | |d | ks|$|d k r^d|d |< d}||d k rd}|d | |d |< t||d dD ]>}|d	 | dkrd|d |< |d | |d |<  qqn|d | |d | ks|| d k rBd|d |< |d | |d |< t||d dD ]>}|d	 | dkrd|d |< |d | |d |<  qBqqBt||d dD ]}|d	 | dkr
t|d |d dD ]}|d
 | dkrP q
|d	 | dkr4|d | dkr|d | |d | k rd|d	 |< nd|d	 |< nd|d	 |< q4q
t|d |d dD ]}|d | }%|%dkrtd| d|%  |%dkrV|d |d  |d | krBd}|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rd}|d |d  }nd}|d |d  }|%dkrL|d |d  |d | k r8d}|d |d  }nd}|d |d  }|%dkr|d |d  |d | krd }|d |d  }nd}|d |d  }||d |d < ||d |d < |%} q̐qt|	|d dD ]V}|d | dkr|j|	|d!f  }&|j||d d!f  }'|'|&k rd}qt|d |d dD ]}|d | dk	s|d | dk	s|d | dk	rHt|d |d dD ]l}|d | dk	s|d | dk	s|d | dk	r|d | |d | k	rd} 
qn
d} 
q	q 
q	qH q||d | d"kr|d | |d |  }|}t||d dD ]0}|d | |d |  }(|(|k
rP|}|(}
qPd|d
 |< d#|d |< |d | |d |< ||d k
r q|t|d |d dD ]}|d | |d |d  k
r|d | })|d | }*t|d |d dD ]J}|*|d | k rD|} 
q|)|d | kr$d|d
 |< |} 
q֐q$
qd}t||d dD ]}|d
 | dkr|d | }+|},t|d |d dD ]D}|d | |+k r|d | }+|},|d
 | dkr|} qq||d krd|d	 |,< qt||d dD ]p}|d	 | dkr6t|d | |d |  }-t|d | |d |  }.|d | |d | kr6|.d |-kr6d|d	 |< d}!t||d dD ]*}|d
 | dkr|}/|!d }! qqt|ddD ]*}|d
 | dkr|}0|!d }! q2q|!dkr6td$|0 d%|/  |d |/ |d |0 kr|d |0 d#krd|d
 |0< nd|d
 |/< nd|d
 |/< q6t|d |d dD ]}|d	 | dkrt|d | |d |  }1t|d | |d |  }-t|d | |d |  }.|d | |d | k sR|1|-d k rd&|d |< d}||d krtd}2|d | |d |< t||d dD ]>}|d
 | dkrd'|d |< |d | |d |<  qrqn|d | |d | k s|-|.d k rd(|d |< |d | |d |< t||d dD ]>}|d
 | dkr2d)|d |< |d | |d |<  qq2qt||d dD ]}|d
 | dkrt|d |d dD ]}|d	 | dkr q|d
 | dkr|d | d#kr&|d | |d | krd|d
 |< nd|d
 |< nd|d
 |< qqt|d |d dD ]}|d | }%|%dkrN|%d#kr|d |d  |d | k rd(}|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 rLd&}|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 rd*}|d |d  }nd'}|d |d  }||d |d < ||d |d < |%} q2qNt|
|d dD ]V}|d | d&krB|j|
|df  }3|j||d df  }4|4|3krBd}qBt|d |d dD ]}|d | d#ks|d | d)ks|d | d'krt|d |d dD ]l}|d | d#ks6|d | d)ks6|d | d'kr|d | |d | k r\d} qjn
d} qjq qtq q|q|||||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   r   ZJGVFXZJGAFXr   rD   ZJGVr   r   r   r   r*   r   r   r   r   r   r   zJGVFX 9g?r   7r   z-i am here Z01r   r   1zlastAFX is z ||| nextAFX is r   52r   Z06r   r   r   r   r   )rE   rs   abslogginginfoilocr   r   )6r   r   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Oneqs.cal_jg_JGmodulec                 C   s(   ||||d|d}| j j|dd| _ d S )Nr   )modulerX   reasonpriceperr?   Tre   )rX   ro   )r   r  rX   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,   Pr1   r2   Sr0   r/   r   r   r   r   rD   r   r   r   r   r   r   r   r*   )r  rA   r,   r   )r   r   r	  r?   Ztmpqsr   r   r   cal_qsjg_pns  s    
 ,&zOneqs.cal_qsjg_pnsc                 C   s   | j D ]}qd S r   )r@   )r   r   r   r   r   cal_qs_pnsbyperiod  s    
zOneqs.cal_qs_pnsbyperiodc                 C   s  z|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dd}dddddd}|j d }|dk r|||fS | ||}| ||}| ||}| ||}| ||}| ||||\}}| ||| | ||||\}}| 	||| |||fS )Nr   r   c   r   r  r   r&   )
rp   r   r   r   r   r   r   r   r
  r  )r   r   r   r?   r   r   r	  r   r   r   r   r     sl     
 
zOneqs.cal_qs)N)__name__
__module____qualname____doc__r
   r   r`   r   rx   r   r   r   r   r   Z_Oneqs__Merger   r   r   r   r   r   r   r
  r  r  r  r   __classcell__r   r   r   r   r      s:   <&V,kF .9 X    U	r   ),oneclass.onedbr   Zoneclass.onedatar   osrq   sysrl   rejsonr   requestswarningsr  xlrd	tracebacknumpyr|   pandasr   tusharerm   
sqlalchemyr   pymysqlmultiprocessingru   	set_token
set_optionfilterwarningsdurtimedurting1FocusPerioduihandleplockshowtypehavelistseqr   	mysqlhostr   rZ   r[   r   r   r   r   r   r   <module>   s    `

