
    fiG                     L   d Z ddlZddlZddlZddlZddlZi 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i dd d!d!d"d#d$dd%d%d&d&d'd(d)d*d+d,d-d-d.d.d/d/d0d0d1d2d3d4d5d6d7di d8d9d:d:d;d<d=dd>d>d?d@dAdAdBdCdDdDdEdEdFdGdHdIdJdJdKdLdMdMdNddOdPi dQdQdRdSdTddUdUdVddWdWdXdYdZdZd[dd\d\d]d]d^d^d_d_d`dadbdcdddddedfdgdhdidjdkdldmdddnddodpZdqdrdsdtdudvdtdwdxdydz
Zd{Zd|Z	dxd}d~ddddZ
dddsdtduddtdwdddydZddrdsdudddddd	ZdZdZdZdZdZdZdZdZdZdZg dg dg dg dg ddZg Zd e                                D              ddudddddxdddd
ZddiZdqdrdsdddddduddxddZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5 ej6        dʦ          Z7 ej6        d˦          Z8g d̢Z9g d͢Z:g d΢Z;dddddddddלZ<dddddܜZ=g dݢZ>g dޢZ?g dߢZ@g dZAi dddddddd@ddnddGdddddd4dddddd9ddmddPdd2dd6dd,d#dd dLd<dddddd
ZBd ZCd ZDd ZEd ZFd ZGd  ZHd ZIeJdk    r0 ej        dddddd          ZK eL eIeK                     dS dS (  u0   
Date: 2025/7/21 15:00
Desc: 期货配置文件
    NaAagAGalALaoAOAPauAUbBbbbcbrBRbuBUcCCFCJcsCScuCUCYebEBecegEGfbFGPLfuFUhcHCiIICIFIHIMjJjdJDjmJMJRlLlclhLHLRlumMMAniNInrOIpPpbPBPFpgPGPKPMppPPPXrbRBRIRMrrRSruRUSAscSFSHsiSMsnSNspSPSRssSSTTATFTLTSURVYZN)rg   rh   ri   rj   rk   rl   vWHwryZCznzvtext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3zgzip, deflatezzh-CN,zh;q=0.9,en;q=0.8zno-cachez
keep-alivezfinance.sina.com.cnz)https://finance.sina.com.cn/futuremarket/1zrMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36)
AcceptAccept-EncodingAccept-LanguageCache-Control
ConnectionHostPragmaRefererUpgrade-Insecure-Requests
User-AgentzLhttp://vip.stock.finance.sina.com.cn/quotes_service/view/js/qihuohangqing.jszbhttp://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQFuturesData5position0001futures)pagenumsortascnodebasez*/*zgzip, deflate, brzhq.sinajs.cnzno-corsz
cross-site)rw   rx   ry   rz   r{   r|   r}   r~   zSec-Fetch-ModezSec-Fetch-Siter   z'image/webp,image/apng,image/*,*/*;q=0.8z!application/x-www-form-urlencodeda  UM_distinctid=16c378978de5cc-02cfeac5f7869b-c343162-1fa400-16c378978df8d7; __utmz=181566328.1570520149.3.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; ASP.NET_SessionId=wj5gxuzl3fvvr25503tquq55; __utmc=181566328; _fxaid=1D9A634AB9F5D0265856F7E85E7BC196%1D%2BOOl1inxPE7181fmKs5HCs%2BdLO%2Fq%2FbSvf46UVjo%2BE7w%3D%1DPYphpUa9OlzWUzatrOQTXLPOVillbwMhTIJas%2ByfkyVL2Hd5XA1GOSslksqDkMTccXvQ2duLNsc0CHT4789JrYNbakJrpzrxLnwtBC5GCTssKHGEpor6EwAZfWJgBUlCs4JYFcGUnh3jIO69A4LsOlRMOGf4c9cd%2FbohSjTx3VA%3D; __utma=181566328.1348268634.1564299852.1571066568.1571068391.7; tgw_l7_route=eb1311426274fc07631b2135a6431f7d; __utmt=1; __utmb=181566328.7.10.1571068391zservice.99qh.comz6http://service.99qh.com/Storage/Storage.aspx?page=99qhzrMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36)	rw   rx   ry   r{   Content-TypeCookier|   r~   r   z)https://www.qhkch.com/ajax/index_show.phpz(https://qhkch.com/ajax/indexes_trend.phpz.https://qhkch.com/ajax/indexes_profit_loss.phpz&https://qhkch.com/ajax/fund_bs_pie.phpz,https://qhkch.com/ajax/fund_position_pie.phpz1https://qhkch.com/ajax/fund_position_chge_pie.phpz(https://qhkch.com/ajax/fund_deal_pie.phpz(https://qhkch.com/ajax/fund_big_chge.phpz*https://qhkch.com/ajax/toolbox_foreign.phpz8https://qhkch.com/dist/views/toolbox/gdp.html?v=1.10.7.1)r.   r-   r0   r/   rg   ri   rk   rj   )r   r   r   r   r@   rn   rG   FBBBr4   r9   rm   rP   r2   r6   r,   r#   RRr    rL   r<   LGBZ)%rq   rN   r   rd   rh   rE   rT   rA   MEr%   rW   rU   rt   r7   r=   r\   r_   WTTCGNROERSRXSRYWSXWSYr   r   rl   r   rZ   rM   rJ   rQ   r]   PRr&   )r   r   ro   rI   rC   ra   r   r   rS   WRr*   r(   r   rY   SCNRrc   rf   LUBCr
   r   ECADOP)SILCPS)cffexdceczceshfegfexc                 B    g | ]}t                               |          S  )contract_symbolsextend).0r+   s     ?/usr/local/lib/python3.11/dist-packages/akshare/futures/cons.py
<listcomp>r     s'     F F F F F F    zwww.czce.com.cnz	max-age=0ztext/html, */*; q=0.01XMLHttpRequestzlMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36z8http://www.super-ping.com/?ping=www.google.com&locale=sczgzip, deflate, sdchzzh-CN,zh;q=0.8,ja;q=0.6)
r|   r{   rz   rw   zX-Requested-Withr   DNTr~   rx   ry   r   z.Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)71zwww.dce.com.cnzhttp://www.dce.com.cnz<http://www.dce.com.cn/publicweb/quotesdata/weekQuotesCh.html)rw   rx   ry   rz   zContent-Lengthr   r|   OriginzProxy-Connectionr~   r   r   z$http://www.100ppi.com/sf/day-{}.htmlzhttp://www.100ppi.com/sf/z4https://tsite.shfe.com.cn/data/dailydata/kx/pm%s.datz@https://www.shfe.com.cn/data/tradedata/future/dailydata/pm%s.datz.http://www.cffex.com.cn/sj/ccpm/%s/%s/%s_1.csvzhttp://portal.dce.com.cn/publicweb/quotesdata/exportMemberDealPosiQuotesData.html?memberDealPosiQuotes.variety=%s&memberDealPosiQuotes.trade_type=0&contract.contract_id=%s&contract.variety_id=%s&year=%s&month=%s&day=%s&exportFlag=txtzhttp://portal.dce.com.cn/publicweb/quotesdata/memberDealPosiQuotes.html?memberDealPosiQuotes.variety=%s&memberDealPosiQuotes.trade_type=0&contract.contract_id=all&contract.variety_id=%s&year=%s&month=%s&day=%sz4http://www.czce.com.cn/cn/exchange/jyxx/pm/pm%s.htmlz=http://www.czce.com.cn/cn/exchange/%s/datatradeholding/%s.htmzKhttp://www.czce.com.cn/cn/DFSStaticFiles/Future/%s/%s/FutureDataHolding.htmzDhttp://portal.dce.com.cn/publicweb/quotesdata/wbillWeeklyQuotes.htmlz9http://tsite.shfe.com.cn/data/dailydata/%sdailystock.htmlz8http://tsite.shfe.com.cn/data/dailydata/%sdailystock.datzHhttps://www.shfe.com.cn/data/tradedata/future/dailydata/%sdailystock.datz:http://www.czce.com.cn/cn/exchange/jyxx/sheet/sheet%s.htmlz8http://www.czce.com.cn/cn/exchange/%s/datawhsheet/%s.htmzKhttp://www.czce.com.cn/cn/DFSStaticFiles/Future/%s/%s/FutureDataWhsheet.htmz0http://www.cffex.com.cn/fzjy/mrhq/{}/{}/{}_1.csvz3http://tsite.shfe.com.cn/data/dailydata/kx/kx%s.datz@https://www.shfe.com.cn/data/tradedata/future/dailydata/kx%s.datz?http://tsite.shfe.com.cn/data/dailydata/ck/%sdailyTimePrice.datz<http://www.dce.com.cn//publicweb/quotesdata/dayQuotesCh.htmlz4http://www.czce.com.cn/cn/exchange/jyxx/hq/hq%s.htmlz6http://www.czce.com.cn/cn/exchange/%s/datadaily/%s.txtzIhttp://www.czce.com.cn/cn/DFSStaticFiles/Future/%s/%s/FutureDataDaily.txtz)^([0-9]{4})[-/]?([0-9]{2})[-/]?([0-9]{2})z(^[A-Za-z]{1,2})[0-9]+)
openhighlowvolumeturnoveropen_interestclosesettlechange1change2)
pre_settler   r   r   r   r   r   r   r   r   oi_chgr   final_settle)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
CLOSEPRICEHIGHESTPRICELOWESTPRICEOPENINTEREST	OPENPRICEPRESETTLEMENTPRICESETTLEMENTPRICEVOLUMEdatesymbol
time_rangev_wap)z:B1INSTRUMENT_IDTIMEREF_SETTLEMENT_PRICE)r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   deltar   r   r   r   exercise_volume)r   r   r   r   r   r   r   r   r   r   r   variety)r   r   r   r   r   r   r   r   r   r   r   r   r   implied_volatilityr   r   u   大豆u   豆一u   豆二u   豆粕u   豆油u	   棕榈油u   玉米u   玉米淀粉u   鸡蛋u	   纤维板r   u	   胶合板r   u	   聚乙烯u   聚氯乙烯u	   聚丙烯u   焦炭u   焦煤u	   铁矿石r   r   r   VFPPFLF)
u	   乙二醇u   粳米u	   苯乙烯u   液化石油气u   生猪u   原木u   纯苯u   聚氯乙烯月均价u   聚丙烯月均价u   聚乙烯月均价c                    t          | t          j                  r| S t          | t                    rt                              |           }|rw|                                }t          |          dk    rPt          j        t          |d                   t          |d                   t          |d                             S dS )z
    transform a date string to datetime.date object
    :param date, string, e.g. 2016-01-01, 20160101 or 2016/01/01
    :return: object of datetime.date(such as 2016-01-01) or None
       r         )yearmonthdayN)	
isinstancedatetimer   strDATE_PATTERNmatchgroupslenint)r   r   r   s      r   convert_dater   
  s     $&& 	D#		 	""4(( 	\\^^F6{{a}VAYfQi..F1I   
 4r   c                     t           j                            t           j                            t           j                            |                              }t           j                            |d|           }|S )u   
    获取 JSON 配置文件的路径(从模块所在目录查找)
    :param name: 文件名
    :param module_file: filename
    :return: str json_file_path
    	file_foldospathabspathdirnamejoinnamemodule_filemodule_foldermodule_json_paths       r   get_json_pathr     Q     GOOBGOOBGOOK4P4P$Q$QRRMw||M;EEr   c                     t           j                            t           j                            t           j                            |                              }t           j                            |d|           }|S )u   
    获取 pickle 配置文件的路径(从模块所在目录查找)
    :param name: 文件名
    :param module_file: filename
    :return: str json_file_path
    r   r   r   s       r   get_pk_pathr   +  r   r   c                 t    | }t          |t                    }t          j        t	          |d                    S )ui   
    获取交易日历至 2019 年结束, 这里的交易日历需要按年更新
    :return: json
    rR   )r   __file__pickleloadr   )	file_namesetting_file_namesetting_file_paths      r   get_pk_datar  7  s6    
 "#$5x@@;t-t44555r   c                      d} t          | t                    }t          |dd          5 }t          j        |          }ddd           n# 1 swxY w Y   |S )u   
    获取交易日历, 这里的交易日历需要按年更新, 主要是从新浪获取的
    :return: 交易日历
    :rtype: json
    zcalendar.jsonrzutf-8)encodingN)r   r   r   jsonr  )r  r  f	data_jsons       r   get_calendarr  A  s     (%&7BB	w	7	7	7 !1IaLL	! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   AAAc                    t                      }t          | t                    r:| |vrt          d| z              dS |                    |           }||dz
           }|S t          | t
          j                  r|                     d          }||vrt          d|z              dS |                    |          }||dz
           }t
          j                            |d                                          }|S dS )u   
    获取前一个交易日
    :param day: "%Y%m%d" or  datetime.date()
    :return last_day: "%Y%m%d" or  datetime.date()
    u   Today is not trading day：Fr   %Y%m%du   Today is not working day：N)	r  r   r   printindexr   r   strftimestrptime)r   calendarposlast_dayd_strs        r   last_trading_dayr  N  s    ~~H#s h/#56665nnS!!C!G$	C	'	' X&&  /%78885nnU##C!G$$--hAAFFHH r   c                    t                      }|                     d          |v rc|                                 t          j        ddd          k    r|                     d          S t	          |                     d                    S |                     d          |vr/| t          j        d          z
  } |                     d          |v/|                     d          S )ul   
    获取最新的有数据的交易日
    :param day: datetime.datetime
    :return string YYYYMMDD
    r     r   r   )days)r  r  timer   r  	timedelta)r   r  s     r   get_latest_data_dater  i  s     ~~H
||H))88::b!Q////<<)))#CLL$:$:;;;ll8$$H44*2222C ll8$$H44||H%%%r   __main__i  
      r  r   )M__doc__r   r	  r   r   re futures_inventory_em_symbol_dicthq_sina_spot_headers zh_subscribe_exchange_symbol_urlzh_match_main_contract_urlzh_match_main_contract_payloadzh_sina_spot_headersinventory_temp_headersQHKC_INDEX_URLQHKC_INDEX_TREND_URLQHKC_INDEX_PROFIT_LOSS_URLQHKC_FUND_BS_URLQHKC_FUND_POSITION_URLQHKC_FUND_POSITION_CHANGE_URLQHKC_FUND_DEAL_URLQHKC_FUND_BIG_CHANGE_URLQHKC_TOOL_FOREIGN_URLQHKC_TOOL_GDP_URLmarket_exchange_symbolsr   valuesheadersshfe_headersdce_headersSYS_SPOT_PRICE_URLSYS_SPOT_PRICE_LATEST_URLSHFE_VOL_RANK_URLSHFE_VOL_RANK_URL_20250701CFFEX_VOL_RANK_URLDCE_VOL_RANK_URL_1DCE_VOL_RANK_URL_2CZCE_VOL_RANK_URL_1CZCE_VOL_RANK_URL_2CZCE_VOL_RANK_URL_3DCE_RECEIPT_URLSHFE_RECEIPT_URL_1SHFE_RECEIPT_URL_2SHFE_RECEIPT_URL_20250701CZCE_RECEIPT_URL_1CZCE_RECEIPT_URL_2CZCE_RECEIPT_URL_3CFFEX_DAILY_URLSHFE_DAILY_URLSHFE_DAILY_URL_20250630SHFE_V_WAP_URLDCE_DAILY_URLCZCE_DAILY_URL_1CZCE_DAILY_URL_2CZCE_DAILY_URL_3compiler   FUTURES_SYMBOL_PATTERNCFFEX_COLUMNSCZCE_COLUMNSCZCE_COLUMNS_2SHFE_COLUMNSSHFE_V_WAP_COLUMNSDCE_COLUMNSDCE_OPTION_COLUMNSOUTPUT_COLUMNSOPTION_OUTPUT_COLUMNSDCE_MAPr   r   r   r  r  r  r  __name__dr  r   r   r   <module>r`     s	   
   				  				Q$Q$$Q$ 	$Q$ 	$	Q$
 	$Q$ 	$Q$ Q$ 	$Q$ 	$Q$ 	$Q$ 	$Q$ Q$ 	$Q$ 	$Q$ 	$Q$  	$!Q$" 	$#Q$ Q$$ 	$%Q$& 	$'Q$( 	$)Q$* 	$+Q$, 	$-Q$. 	$/Q$0 	$1Q$2 	$3Q$4 5Q$6 	$7Q$8 	$9Q$: 	$;Q$< 	$=Q$> ?Q$@ 	$AQ$B 	$CQ$D 	$EQ$ Q$ Q$F GQ$H 	$IQ$J 	$KQ$L 	$MQ$N 	$OQ$P QQ$R 	$SQ$T 	$UQ$V 	$WQ$X 	$YQ$Z [Q$\ 	$]Q$^ 	$_Q$` 	$aQ$b 	$cQ$d 	$eQ$f 	$gQ$ Q$ Q$h 	$iQ$j 	$kQ$l 	$mQ$n 	$oQ$p 	$qQ$r 	$sQ$t 	$uQ$v 	$wQ$x 	$yQ$z 	${Q$| 	$}Q$~ 	$Q$@ 	$AQ$B 	$CQ$D 	$EQ$F 	$GQ$H 	$IQ$ Q$J 





	

	

aQ$ Q$ Q$  h<&0!:!$<  " S !5 
 " "  *0:"(  " 8&07C G<!  * =A M ; G  S ? E D N  =<<  2& & &N  6 {^ ^ @   F F%<%C%C%E%E F F F F  &((I,0  NO1&0 7%$M!$( " < 7 J F  F O 9 
 M U Q  YP O N  R O Q  EFF  SNI K O  rzFGG#$=>>          #&	 	 #	       "     &cc c c	
 c  c D d    C  c  d!" #$ !7  >  *	 	 		 	 	6 6 6
 
 
  6& & &$ z$Ar1a00A	E

q
!
!""""" r   