
    fi@                        d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 dddd	d
dddZg dZdej        dej        fdZdedej        fdZd0dedej        fdZd0dedej        fdZd0dedej        fdZd0dedej        fdZd0dedej        fdZd1dededej        fdZedk    r[ ed          Z ed             ee            ed          Z ed!            ee            ed          Z ed"            ee            ed          Z ed#            ee            ed$          Z ed%            ee            edd&          Z ed'            ee            edd(&          Z ed)            ee            edd*&          Z ed+            ee            edd,&          Z ed-            ee            edd.&          Z ed/            ee           dS dS )2uy  
Date: 2026/2/20 10:00
Desc: 期货结算信息
期货交易所结算参数数据
- 中金所: 结算参数(保证金、手续费等) - 已实现
- 郑商所: 结算参数 - 已实现
- 上期所: 结算参数 - 已实现
- 广期所: 结算参数 - 已实现
- 上能中心: 结算参数 - 已实现
- 大商所: 待解决(网站反爬虫保护，所有接口返回412错误)
    N)StringIO)consheadersz.application/json, text/javascript, */*; q=0.01zzh-CN,zh;q=0.9,en;q=0.8z0application/x-www-form-urlencoded; charset=UTF-8zhttp://www.gfex.com.cnz,http://www.gfex.com.cn/gfex/rjycs/ywcs.shtmlzuMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36XMLHttpRequest)AcceptzAccept-LanguagezContent-TypeOriginRefererz
User-AgentzX-Requested-With)datesymbolvarietysettle_pricelong_margin_ratioshort_margin_ratiospec_long_margin_ratiospec_short_margin_ratiohedge_long_margin_ratiohedge_short_margin_ratiotrade_fee_ratioclose_today_fee_ratiodelivery_fee_ratiois_single_marketsingle_market_dayslimit_ratioposition_limittrade_limitrise_limit_ratefall_limit_ratedfreturnc                 "   | j         rt          j        t                    S i dg ddg ddg ddg d	d
g ddg ddg ddg ddg ddg ddddgdddgdddgdg ddddgd g d!d"g d#}d$D ]E}|| j        vr:|d%k    r/d&| j        v r&| d&         j                            d'd()          | d%<   @d*| |<   F|                                D ].\  }}|| j        vr |D ]}|| j        v r| |         | |<    nd*| |<   /| t                   S )+u   
    统一结算参数字段，将各交易所的字段映射到统一字段
    :param df: 原始DataFrame
    :type df: pandas.DataFrame
    :return: 统一格式的DataFrame
    :rtype: pandas.DataFrame
    columnsr   )r   SETTLEMENTPRICEu   当日结算价r   )r   margin_ratioSPECLONGMARGINRATIOspecBuyRatespec_buy_rater   )r   SPECSHORTMARGINRATIOhedgeBuyRatehedge_buy_rater   )r   r&   r(   r   )r   r)   r+   r   )r   HEDGLONGMARGINRATIOr+   r   )r   HEDGSHORTMARGINRATIOr(   r   )r   TRADEFEERATIOu   交易手续费r   )r   TTRADEFEERATIOu   日内平今仓交易手续费r   )r   COMMODITYDELIVFEERATIOu   交割手续费r   u   是否单边市r   u   连续单边市天数r   u   涨跌停板(%)r   )r   u   日持仓限额clientBuyPosiQuotaclient_buy_posi_quotar   u   交易限额r   )r   riseLimitRater   r   )r   	fallLimit
fall_limit)r   r   r   r   r   ([A-Za-z]+)F)expandN)emptypd	DataFrameSETTLE_OUTPUT_COLUMNSr#   strextractitems)r   field_mappingcoltarget_fieldpossible_sourcessources         I/usr/local/lib/python3.11/dist-packages/akshare/futures/futures_settle.py_normalize_settle_columnsrE   ;   sK    
x ;|$9::::NNN 	yyy 	nnn	
 	!"d"d"d 	"#h#h#h 	"#g#g#g 	#$i$i$i 	RRR 	 !n!n!n 	aaa 	/1BC 	35LM 	'89 	nnn  	~6!" 	RRR#$ 	III%M, -  bj  iH
$:$: "8 0 8 8PU 8 V V93 +8*=*=*?*? ( (&&rz))* ( (RZ''')&zB|$E ( $(<  #$$    textc                    |                                                      d          }t          |          dk     rt          j                    S d |d                             d          D             }d |dd         D             }g }|D ]k}d |                    d          D             }t          |          t          |          k    r*|                    |dt          |                              lt          j        ||	          S )
u   
    解析管道符分隔的数据
    :param text: 原始文本数据
    :type text: str
    :return: 解析后的DataFrame
    :rtype: pandas.DataFrame
    
   c                 6    g | ]}|                                 S  strip.0r@   s     rD   
<listcomp>z$_parse_pipe_data.<locals>.<listcomp>}   s     :::ssyy{{:::rF      |c                 :    g | ]}|                                 |S rL   rM   )rP   lines     rD   rQ   z$_parse_pipe_data.<locals>.<listcomp>~   s%    ===4

=$===rF   Nc                 6    g | ]}|                                 S rL   rM   rO   s     rD   rQ   z$_parse_pipe_data.<locals>.<listcomp>   s     666ssyy{{666rF   r"   )rN   splitlenr9   r:   append)rG   linesr#   
data_lines	data_listrU   rows          rD   _parse_pipe_datar^   r   s     JJLLt$$E
5zzA~~|~~::eAhnnS&9&9:::G==59===JI 1 166djjoo666s88s7||##S#g,,/000<	73333rF   20260119r   c                    | t          j        |           nt          j                                        }|                    d          } d| dd          | dd          d| dd          d|  d}t          j        |t          	          }d
|_	        |j
        dk    rt          j                    S |j                                                            d          s	d|j        v rt          j                    S 	 t          j        t#          |j                  d          }n#  t          j                    cY S xY w|j        d         dk     rt          j                    S g d|_        ||d                                                  }||d         j                            ddd                   }|d         j                            d          |d<   | |d<   |g d         }|S )u.  
    中国金融期货交易所-结算参数
    http://www.cffex.com.cn/jscs/
    :param date: 结算参数日期 format：YYYY-MM-DD 或 YYYYMMDD 或 datetime.date对象，默认为当前交易日
    :type date: str or datetime.date
    :return: 结算参数数据
    :rtype: pandas.DataFrame
    N%Y%m%dz http://www.cffex.com.cn/sj/jscs/      /   z_1.csvr   gbk   <u   要查看的页面不存在rR   )skiprowsr      )r   r   r   r   r   r   r   z^[A-Z]+FT)naregexz([A-Z]+)r   r   )r   r   r   r   r   r   r   r   )r   convert_datedatetimer   todaystrftimerequestsgetr   encodingstatus_coder9   r:   rG   rN   
startswithread_csvr   shaper#   notnar<   containsr=   r   dayurlrdata_dfs        rD   futures_settle_cffexr      s    &*%5$
D
!
!
!8=;N;N;P;PC<<!!D
[T"1"X
[tAaCy
[
[4!9
[
[t
[
[
[CS'***AAJ}|~~v||~~  %% )F!&)P)P|~~+hqv..;;;|~~}Q!|~~  GO gh'--//0Ggh'+44uD 5 * * +G *.66{CCGIGFO	K 	K 	KG Ns   9(D" "D9c                    | t          j        |           nt          j                                        }|                    d          } d| dd          d|  d}t          j        |t                    }d|_	        |j
        d	k    rt          j                    S 	 t          |j                  }n#  t          j                    cY S xY w|j        d
         dk     rt          j                    S g d|_        ||d                                                  }||d         j                            dd                    }|d         j                            d          |d<   | |d<   |g d         }|S )uD  
    郑州商品交易所-结算参数
    http://www.czce.com.cn/cn/jysj/jscs/H077003003index_1.htm
    :param date: 结算参数日期 format：YYYY-MM-DD 或 YYYYMMDD 或 datetime.date对象，默认为当前交易日
    :type date: str or datetime.date
    :return: 结算参数数据
    :rtype: pandas.DataFrame
    Nra   z0http://www.czce.com.cn/cn/DFSStaticFiles/Future/rb   rd   z/FutureDataClearParams.txtr   zutf-8rg   r   rj   )r   r   r   r   r%   r   	trade_feefee_typedelivery_feeclose_today_feer   r   r   u   小计|合计|总计F)rk   r6   r   r   )r   r   r   r   r   r   r%   r   r   r   r   r   r   r   )r   rm   rn   r   ro   rp   rq   rr   r   rs   rt   r9   r:   r^   rG   rw   r#   rx   r<   ry   r=   rz   s        rD   futures_settle_czcer      s    &*%5$
D
!
!
!8=;N;N;P;PC<<!!D
hT"1"X
h
h
h
h
hCS'***AAJ}|~~"16**|~~}Q!|~~  GO
 gh'--//0Gwx(,556LQV5WWWXG *.66~FFGIGFO	= 	= 	=G
 Ns   B1 1Cc                    | t          j        |           nt          j                                        }|                    d          } d}ddi}t          j        ||t                    }|j	        dk    rt          j                    S |j                                                            d          sd	|j        dd
         v rt          j                    S 	 |                                }|                    d          dk    rt          j                    S |                    dg           }n#  t          j                    cY S xY w|st          j                    S d |D             }|st          j                    S t          j        |          }g d|_        |d         j                            d          |d<   | |d<   |g d         }|S )u7  
    广州期货交易所-结算参数
    http://www.gfex.com.cn/gfex/rjycs/ywcs.shtml
    :param date: 结算参数日期 format：YYYY-MM-DD 或 YYYYMMDD 或 datetime.date对象，默认为当前交易日
    :type date: str or datetime.date
    :return: 结算参数数据
    :rtype: pandas.DataFrame
    Nra   zAhttp://www.gfex.com.cn/u/interfacesWebTtQueryTradPara/loadDayList
trade_type0)datar   rg   z<scriptfunctiond   coder   c                 B    g | ]}d |                     dd          v|S )-
contractId )rr   )rP   items     rD   rQ   z'futures_settle_gfex.<locals>.<listcomp>   s:     M M Mc,1K1K&K&K&K&K&KrF   )r   r(   spec_buyr+   	hedge_buyr   
rise_limitr5   agent_tot_buy_posi_quotaself_tot_buy_posi_quotar2   self_tot_buy_ser_limitclient_buy_ser_limitr   r   r6   r   r   )r   r   r   r(   r   r+   r   r   r   r5   r   r   r2   )r   rm   rn   r   ro   rp   rq   postgfex_headersrt   r9   r:   rG   rN   ru   jsonrr   r#   r<   r=   )r   r{   r|   payloadr}   	json_datar\   r~   s           rD   futures_settle_gfexr      s    &*%5$
D
!
!
!8=;N;N;P;PC<<!!D
MCS!Gc>>>A}|~~v||~~  ++ zQVDSD\/I/I|~~FFHH	==  C''<>>!MM&"--		|~~ |~~M M"M M MI |~~l9%%G  GO !*.66~FFGIGFO	Y 	Y 	YG
 Ns   ?D2 D2 2E	c                 t   | t          j        |           nt          j                                        }|                    d          } d|  d}t          j        |t           j                  }|j	        dk    rt          j                    S 	 |                                }|                    dg           }n#  t          j                    cY S xY w|st          j                    S t          j        |          }g d|_        |d	         j                            d
          |d<   | |d<   |g d         }|S )uH  
    上海期货交易所-结算参数
    https://www.shfe.com.cn/reports/tradedata/dailyandweeklydata/
    :param date: 结算参数日期 format：YYYY-MM-DD 或 YYYYMMDD 或 datetime.date对象，默认为当前交易日
    :type date: str or datetime.date
    :return: 结算参数数据
    :rtype: pandas.DataFrame
    Nra   z:https://www.shfe.com.cn/data/tradedata/future/dailydata/js.datr   rg   o_cursorr   r   r   delivery_fee_unitr   r   r   
product_idproduct_nameclose_today_fee_unittrade_fee_unitr   r   uni_directionr   is_close_todayr   r6   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm   rn   r   ro   rp   rq   rr   shfe_headersrt   r9   r:   r   r#   r<   r=   r   r{   r|   r}   	data_jsonr\   r~   s          rD   futures_settle_shfer     sC    &*%5$
D
!
!
!8=;N;N;P;PC<<!!D
Qt
Q
Q
QCS$"3444A}|~~FFHH	MM*b11		|~~ |~~l9%%G  GO !*.66~FFGIGFO	G 	G 	GG
 N   *B: :Cc                 t   | t          j        |           nt          j                                        }|                    d          } d|  d}t          j        |t           j                  }|j	        dk    rt          j                    S 	 |                                }|                    dg           }n#  t          j                    cY S xY w|st          j                    S t          j        |          }g d|_        |d	         j                            d
          |d<   | |d<   |g d         }|S )uG  
    上海国际能源交易中心-结算参数
    https://www.ine.cn/reports/businessdata/prmsummary/
    :param date: 结算参数日期 format：YYYY-MM-DD 或 YYYYMMDD 或 datetime.date对象，默认为当前交易日
    :type date: str or datetime.date
    :return: 结算参数数据
    :rtype: pandas.DataFrame
    Nra   z5https://www.ine.cn/data/tradedata/future/dailydata/jsr   r   rg   r   r   r   r6   r   r   r   r   r   s          rD   futures_settle_iner   5  sC    &*%5$
D
!
!
!8=;N;N;P;PC<<!!D
L$
L
L
LCS$"3444A}|~~FFHH	MM*b11		|~~ |~~l9%%G  GO !*.66~FFGIGFO	G 	G 	GG
 Nr   CFFEXmarketc                    |                                 dk    rt          |           }n|                                 dk    rt          |           }n|                                 dk    rt          |           }n||                                 dk    rt	          |           }nT|                                 dk    rt          |           }n,t          d|            t          j        t                    S t          |          }|S )u  
    期货交易所结算参数
    :param date: 结算日期 format：YYYY-MM-DD 或 YYYYMMDD 或 datetime.date对象，默认为当前交易日
    :type date: str or datetime.date
    :param market: 交易所代码: CFFEX-中金所, CZCE-郑商所, SHFE-上期所, DCE-大商所, INE-上能中心, GFEX-广期所
    :type market: str
    :return: 结算参数数据（统一格式）
    :rtype: pandas.DataFrame
    r   CZCESHFEGFEXINEzUnsupported market: r"   )upperr   r   r   r   r   printr9   r:   r;   rE   )r   r   r   temp_dfs       rD   futures_settler   ]  s     ||~~  !$''	6	!	! &&	6	!	! &&	6	!	! &&	5	 	 %%-V--...|$9::::'++GNrF   __main__)r   u   === 中金所结算参数 ===u   
=== 郑商所结算参数 ===u   
=== 上期所结算参数 ===u   
=== 广期所结算参数 ===20250117u!   
=== 上能中心结算参数 ===)r   r   u   
=== 通用接口-CFFEX ===r   u   
=== 通用接口-CZCE ===r   u   
=== 通用接口-SHFE ===r   u   
=== 通用接口-GFEX ===r   u   
=== 通用接口-INE ===)r_   )r_   r   )__doc__rn   pandasr9   rq   ior   akshare.futuresr   akshare.utils.consr   r   r;   r:   rE   r<   r^   r   r   r   r   r   r   __name__futures_settle_cffex_dfr   futures_settle_czce_dffutures_settle_shfe_dffutures_settle_gfex_dffutures_settle_ine_dffutures_settle_dfrL   rF   rD   <module>r      s'  
 
                         & & & & & & ?0F&= J(    04%", 4%2< 4% 4% 4% 4%n43 42< 4 4 4 4** *s *BL * * * *Z$ $c $2< $ $ $ $N/ /c /2< / / / /d% %c %2< % % % %P% %S %", % % % %P  3 R\    6 z22
CCC	E
)***	E
!"""00jAAA	E
+,,,	E
 !!!00jAAA	E
+,,,	E
 !!!00jAAA	E
+,,,	E
 !!!..J???	E
.///	E
   &JwGGG	E
()))	E
&JvFFF	E
'(((	E
&JvFFF	E
'(((	E
&JvFFF	E
'(((	E
&JuEEE	E
&'''	E
O rF   