
    6i                         d Z ddlZddlZddlZddlmc mZ ddlmc m	Z
 ddlmc mZ ddlmc mZ ddlmc mZ ddlmc mZ 	 	 ddZd ZdS )u[   
获取历史行情
@author: baostock.com
@group : baostock.com
@contact: baostock@163.com
    Nd3c           
      B    t          dt          j        | |||||          S )u   获取历史K线plus   ) __query_history_k_data_plus_pageconsBAOSTOCK_PER_PAGE_COUNT)codefields
start_dateend_date	frequency
adjustflags         D/usr/local/lib/python3.11/dist-packages/baostock/security/history.pyquery_history_k_data_plusr      s/     ,At/KTSY[e,4iM M M    c                    t          j                    }||dk    r)t          d           d|_        t          j        |_        |S t          |          t          j        k    rct          dt          t          j                  z   dz              dt          t          j                  z   dz   |_        t          j        |_        |S |
                                }|                    d          s|                    d          r*|dd	         
                                d
z   |dd         z   }||dk    r)d|_        t          j        |_        t          d           |S ||dk    rt          j        }||dk    r&t          j        dt          j                              }|dk    r|dk    rt!          j        |          rt!          j        |          rpt$          j                            |d          }	t$          j                            |d          }
|
|	k     r)t          d           t          j        |_        d|_        |S nt          d           dS ||dk    r)t          d           d|_        t          j        |_        |S ||dk    r)t          d           d|_        t          j        |_        |S d}	 t+          t,          d          }n9# t.          $ r, t          d           t          j        |_        d|_        |cY S w xY wdt          j        z   |z   t          j        z   t          |           z   t          j        z   t          |          z   t          j        z   |z   t          j        z   |z   t          j        z   |z   t          j        z   |z   t          j        z   |z   t          j        z   |z   }t5          j        t          j        t          |                    }t          j        |_        ||_        ||z   }t?          j         tC          |d                    }tE          j#        |t          j        z   t          |          z             }||$                                dk    rt          j%        |_        d|_        |S |dt          j&                 }|t          j&        d         }|'                    t          j                  }|'                    t          j                  }|d         |_(        |d         |_        |d         |_        t          j)        |j        k    r|d         |_*        |d         |_+        |d         |_,        |d         |_-        |.                    |d                    |d         |_/        |0                    |d                     |d	         |_1        |d!         |_2        |d"         |_3        |d#         |_4        |S )$u   获取历史K线，私有方法N u'   股票代码不能为空，请检查。u   股票代码应为u-   位，请检查。格式示例：sh.600000。shsz   	   .r      u'   指示简称不能为空，请检查。z%Y-%m-%du-   起始日期大于终止日期，请修改。u$   日期格式不正确，请修改。u6   数据类型（frequency）不可为空，请检查。u3   数据类型（frequency）不可为空，请检查u7   复权类型（adjustflag）不可为空，请检查。user_idzyou don't login.r   zutf-8)encodingu   网络接收错误。   r               
         )5rs
ResultDataprint	error_msgr   BSERR_PARAM_ERR
error_codelenSTOCK_CODE_LENGTHstrlowerendswithDEFAULT_START_DATEtimestrftime	localtimestrUtilis_valid_datedatetimestrptimeBSERR_START_BIGTHAN_ENDgetattrconx	ExceptionBSERR_NO_LOGINMESSAGE_SPLIT	msgheaderto_message_header!MESSAGE_TYPE_GETKDATAPLUS_REQUESTmsg_typemsg_bodyzlibcrc32bytessocksend_msgstripBSERR_RECVSOCK_FAILMESSAGE_HEADER_LENGTHsplitmsg_body_lengthBSERR_SUCCESSmethodr   cur_page_numper_page_countsetDatar
   	setFieldsr   r   r   r   )rP   rQ   r
   r   r   r   r   r   datastart_date_timeend_date_timer   rC   
msg_header	head_bodycrc32strreceive_data
header_arrbody_arrs                      r   r   r      s    =??D|trzz7888B.
4yyD***"S)?%@%@@Crrsss-D4J0K0KKN}}.::<<Dd 3t}}T22 3AaCy  3&ac2~2B.7888Z2--,
8r>>=T^-=-=>>RHNN ,, 	1Fx1P1P 	&/88J( (O$-66xLLM..EFFF"&">!P	 / 8999FIOOFGGGN.Z2--GHHHR.G$	**    !!!-+	 +T-??'IDL^^\""#%)%78:=n:M:MNPTPbceij#$&,-/3/ABDNO #$ '// 261CD GPP #	$ '1	1H ,.H? ?J :DMDMX%Iz%	G<<<==H=T-?!?#h--!OPPL|1133r9920a ::;JD6r9:H!!$"455J~~d011H &a=DqkDOa[DNT_,,qk{$QK&qkXa[!!!QK	x{###"1+ !""2,Ks   :K 3LL)NNr   r   )__doc__r7   r2   rD   baostock.common.contantscommoncontantsr   baostock.common.contextcontextr;   baostock.data.messageheaderrT   messageheaderr?   baostock.data.resultset	resultsetr&   baostock.util.socketutilutil
socketutilrG   baostock.util.stringutil
stringutilr5   r   r    r   r   <module>rm      s       ' ' ' ' ' ' ' ' ' & & & & & & & & & / / / / / / / / / $ $ $ $ $ $ $ $ $ ' ' ' ' ' ' ' ' ' * * * * * * * * * GK8;M M M Mn n n n nr   