
    fig                     @   d 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m	Z	m
Z
mZmZ 	 ddeded	ej        fd
Zd Z	 d deded	ej        fdZ	 d!deded	ej        fdZ	 d!deded	ej        fdZ	 d"deded	ej        fdZd#dedefdZedk    r edd          Z ee            edd          Z ee            edd          Z ee            edd          Z ee            edd          Z ee            edd          Z ee           dS dS )$ul  
Date: 2025/10/17 21:00
Desc: 商品期权数据
说明：
(1) 价格：自2019年12月02日起，纤维板报价单位由元/张改为元/立方米
(2) 价格：元/吨，鸡蛋为元/500千克，纤维板为元/立方米，胶合板为元/张
(3) 成交量、持仓量：手（按双边计算）
(4) 成交额：万元（按双边计算）
(5) 涨跌＝收盘价－前结算价
(6) 涨跌1=今结算价-前结算价
(7) 合约系列：具有相同月份标的期货合约的所有期权合约的统称
(8) 隐含波动率：根据期权市场价格，利用期权定价模型计算的标的期货合约价格波动率
    N)StringIO)get_calendarconvert_dateCZCE_DAILY_OPTION_URL_3SHFE_HEADERS   聚丙烯期权20251016symbol
trade_datereturnc                    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"}t                      }|t          |          nt          j                                        }|                    d$          |vr=t          j        d%|                    d$          z             t          j	                    S d&}d'd(d'd)| d*||           d+}t          j        ||,          }|                                }t          j	        |d-                   }	|	                    i d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPQ           |	g dR         }	g dS}
|
D ]]}|	|                             t                    j                            dTd'                              t          j        dUV          |	|<   ^|	S )WuM  
    大连商品交易所-期权-日频行情数据
    http://www.dce.com.cn/
    :param trade_date: 交易日
    :type trade_date: str
    :param symbol: choice of {"玉米期权", "豆粕期权", "铁矿石期权", "液化石油气期权", "聚乙烯期权", "聚氯乙烯期权",
    "聚丙烯期权", "棕榈油期权", "黄大豆1号期权", "黄大豆2号期权", "豆油期权", "乙二醇期权", "苯乙烯期权",
    "鸡蛋期权", "玉米淀粉期权", "生猪期权", "原木期权"}
    :type symbol: str
    :return: 日频行情数据
    :rtype: pandas.DataFrame
    u   玉米期权cu   豆粕期权mu   铁矿石期权iu   液化石油气期权pgu   聚乙烯期权lu   聚氯乙烯期权vr   ppu   棕榈油期权pu   黄大豆1号期权au   黄大豆2号期权bu   豆油期权yu   乙二醇期权egu   苯乙烯期权ebu   鸡蛋期权jdu   玉米淀粉期权csu   生猪期权lhu   原木期权lgN%Y%m%d   %s非交易日z=http://www.dce.com.cn/dcereport/publicweb/dailystat/dayQuotes zhr   2)
contractIdlangoptionSeriesstatisticsType	tradeDate	tradeType	varietyId)jsondatavariety   品种名称r$      合约open	   开盘价high	   最高价low	   最低价close	   收盘价	lastClear   前结算价
clearPrice	   结算价diff   涨跌diff1   涨跌1deltaDeltavolumn	   成交量openInterest	   持仓量diffI   持仓量变化turnover	   成交额matchQtySum	   行权量impliedVolatility   隐含波动率(%)Tcolumnsinplace)r.   r/   r1   r3   r5   r7   r9   r;   r=   r?   rA   rM   rC   rE   rG   rI   rK   )r1   r3   r5   r7   r9   r;   r=   r?   rA   rM   rI   ,coerce)errors)r   r   datetimedatetodaystrftimewarningswarnpd	DataFramerequestspostr+   renameastypestrreplacepipe
to_numeric)r
   r   option_code_mapcalendardayurlpayloadr	data_jsontemp_df
comma_colscols               J/usr/local/lib/python3.11/dist-packages/akshare/option/option_commodity.pyoption_hist_dcero       s!    	3 	 	
 	3 	c 	4 	3 	s 	s 	 	4 	4 	 	d  	!" 	#O& ~~H&0&<,z
"
"
"(-BUBUBWBWC
||HX--&h)?)??@@@|~~
IC"_'/1 G 	c(((AIl9V,--GNN
~
(
 K
 K	

 ;
 [
 
 +
 H
 Y
 W
 k
 K
 &
 
  ;!
"  !5#
& )    , 	
 	
 	
G*  J  
 
CLVC[[b!!T"-T11	 	 N    c                     g d}d }|                                  }d |D             |_        |D ] }||                             |          ||<   !|S )N)	   昨结算	   今开盘r3   r5   	   今收盘	   今结算r?      涨跌2   成交量(手)rE   	   增减量   成交额(万元)DELTA   隐含波动率rK   c                 v    	 t          t          |                               dd                    S #  | cY S xY w)NrQ   r!   )floatr`   ra   )xs    rn   convert_to_floatzE__option_czce_daily_convert_numeric_columns.<locals>.convert_to_float   s;    	QR00111	HHHs   /2 8c                 6    g | ]}|                                 S  )strip).0items     rn   
<listcomp>z?__option_czce_daily_convert_numeric_columns.<locals>.<listcomp>   s     888tzz||888rp   )copyrO   apply)dfcolumns_to_convertr   df_copyrm   s        rn   +__option_czce_daily_convert_numeric_columnsr      sy      &   ggiiG88888GO! < <s|))*:;;Nrp      白糖期权20191017c                 Z   t                      }|t          |          nt          j                                        }|                    d          |vrMt          j        d                    |                    d                               t          j
                    S |t          j        ddd          k    r\t          j        |                    d          |                    d                    }	 t          j        |          }t          |j                  }t          j        |d	d
d          }g d|_        | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | dk    r|||j        dddf         j                            d                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d k    r|||j        dddf         j                            d!                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d"k    r|||j        dddf         j                            d#                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d$k    r|||j        dddf         j                            d%                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d&k    r|||j        dddf         j                            d'                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d(k    r|||j        dddf         j                            d)                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d"k    r|||j        dddf         j                            d#                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d*k    r|||j        dddf         j                            d+                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d,k    r|||j        dddf         j                            d-                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d.k    r|||j        dddf         j                            d/                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d0k    r|||j        dddf         j                            d1                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d2k    r|||j        dddf         j                            d3                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d4k    r|||j        dddf         j                            d5                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d6k    r|||j        dddf         j                            d7                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S | d8k    r|||j        dddf         j                            d9                   }|                    dd           |j        ddddf                                         }t/          |          }	|	S t          j
                    S #  t          j
                    cY S xY wt          j
                    S ):u  
    郑州商品交易所-期权-日频行情数据
    http://www.czce.com.cn/cn/sspz/dejbqhqq/H770227index_1.htm#tabs-2
    :param trade_date: 交易日
    :type trade_date: str
    :param symbol: choice of {"白糖期权", "棉花期权", "甲醇期权", "PTA期权", "动力煤期权", "菜籽粕期权", "菜籽油期权",
    "花生期权", "对二甲苯期权", "烧碱期权", "纯碱期权", "短纤期权", "锰硅期权", "硅铁期权", "尿素期权", "苹果期权", "红枣期权",
    "玻璃期权", "瓶片期权", "丙烯期货"}
    :type symbol: str
    :return: 日频行情数据
    :rtype: pandas.DataFrame
    Nr   u   {}非交易日        yearmonthrf   z%Yzutf-8   |)encodingskiprowssep)   合约代码rr   rs   r3   r5   rt   ru   r?   rv   rw   rE   rx   ry   rz   r{   rK   r   r   SRTrP   dropu   棉花期权CFu   甲醇期权MAu	   PTA期权TAu   动力煤期权ZCu   菜籽粕期权RMu   菜籽油期权OIu   花生期权PKu   短纤期权PFu   对二甲苯期权PXu   烧碱期权SHu   纯碱期权SAu   锰硅期权SMu   硅铁期权SFu   尿素期权URu   苹果期权APu   红枣期权CJu   玻璃期权FGu   瓶片期权PRu   丙烯期权PL)r   r   rT   rU   rV   rW   rX   rY   formatrZ   r[   r   r\   getr   text
read_tablerO   ilocr`   containsreset_indexr   r   )
r
   r   re   rf   rg   ri   ftable_dfrk   new_dfs
             rn   option_hist_czcer      s#    ~~H&0&<,z
"
"
"(-BUBUBWBWC
||HX--&--cll8.D.DEEFFF|~~
X]A266666%,S\\$-?-?hAWAWXXW	"S!!A  A}Q1#NNNH     H$ ''"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM;&&"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM,,,"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM,,,"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM,,,"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM///"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM>))"8=A#6#:#C#CD#I#IJ##Dt#<<<!,ssAAAv.3355DWMM|~~%	"<>>!!!|~~s   :C
p  Bp  Bp  	Bp  Bp  Bp  Bp  Bp  Bp  Bp  Bp  Bp  Bp  Bp  Bp  !Bp  #Bp  %Bp  'Bp  )Bp  +Bp  -p   p	   铝期权20250418c                 t   t                      }|t          |          nt          j                                        }|                    d          |vr=t          j        d|                    d          z             t          j	                    S |t          j        ddd          k    rd|                    d           d	}	 t          j        |t          
          }|                                }t          j	        d |d         D                       }||d         j                                        | k             }|                    ddddddddddddddddd           |g d          }|                    dd!           |S #  t          j	                    cY S xY wt          j	                    S )"  
    上海期货交易所-期权-日频行情数据
    https://www.shfe.com.cn/reports/tradedata/dailyandweeklydata/
    :param trade_date: 交易日
    :type trade_date: str
    :param symbol: choice of {'原油期权', '铜期权', '铝期权', '锌期权', '铅期权', '螺纹钢期权', '镍期权', '锡期权', '氧化铝期权',
    '黄金期权', '白银期权', '丁二烯橡胶期权', '天胶期权'}
    :type symbol: str
    :return: 日频行情数据
    :rtype: pandas.DataFrame
    Nr   r    r   r   r   r   :https://www.shfe.com.cn/data/tradedata/option/dailydata/kx.datheadersc                 >    g | ]}|d          dvr|d          dk    |S )INSTRUMENTID)u   小计u   合计r!   r   )r   rows     rn   r   z$option_hist_shfe.<locals>.<listcomp>  sE       >*2FFFN+r11  211rp   o_curinstrumentPRODUCTNAMEr   r1   r3   r5   r7   r9   r;   r?   rv   rC   rE   rG   rI   	   德尔塔rK   )r   	OPENPRICEHIGHESTPRICELOWESTPRICE
CLOSEPRICEPRESETTLEMENTPRICESETTLEMENTPRICEZD1_CHGZD2_CHGVOLUMEOPENINTERESTOPENINTERESTCHGTURNOVERrz   
EXECVOLUMETrN   )r   r1   r3   r5   r7   r9   r;   r?   rv   rC   rE   rG   rI   r   rK   r   r   r   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r   r   r+   r`   r   r^   r   )	r
   r   re   rf   rg   ri   	json_datar   contract_dfs	            rn   option_hist_shfer   m  s    ~~H&0&<,z
"
"
"(-BUBUBWBWC
||HX--&h)?)??@@@|~~
X]A266666kS\\ZbMcMckkk6	"S,777AI| ():;   H #8M#:#>#D#D#F#F&#PQK$2!,$/#."-*8'2(()$/'8 +("- " %    ( &  K& ##Dt#<<<	"<>>!!!|~~s   CF F$c           
      P   t                      }|t          |          nt          j                                        }|                    d          |vr=t          j        d|                    d          z             t          j	                    S |t          j        ddd          k    rd|                    d           d	}	 t          j        |t          
          }|                                }t          j	        |d                   }||d         j                                        | k             }|                    ddddddddd           |g d         }|                    dd           |S #  t          j	                    cY S xY wt          j	                    S )r   Nr   r    r   r   r   r   r   r   r   
o_cursigmar      合约系列rC   rE   rG   rI   rK   r{   )r   r   r   r   r   r   SIGMATrN   )r   rC   rE   rG   rI   rK   r{   r   r   )r
   r   re   rf   rg   ri   r   volatility_dfs           rn   option_vol_shfer     s    ~~H&0&<,z
"
"
"(-BUBUBWBWC
||HX--&h)?)??@@@|~~
X]A266666kS\\ZbMcMckkk!	"S,777AIL<)@AAM)m,06688FBM   $2)$/'8 +"-.   !    *  
M %%d%>>>  	"<>>!!!|~~s   B3E; ;F	   工业硅20230724c                 2   t                      }|t          |          nt          j                                        }|                    d          |vr=t          j        d|                    d          z             t          j	                    S d}|                    d          dd}ddd	d
ddddd
dddddd}t          j        |||          }|                                }t          j	        |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.d/d0d1d2d3d4d5d6d7d8d9d:id;<           |	g d=         }	|	|	d         j                            |                    }	|	                    d;d;>           |	S )?u1  
    广州期货交易所-日频率-量价数据
    http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtml
    :param trade_date: 交易日
    :type trade_date: str
    :param symbol: choice of {"工业硅", "碳酸锂"}
    :type symbol: str
    :return: 日频行情数据
    :rtype: pandas.DataFrame
    Nr   r    z:http://www.gfex.com.cn/u/interfacesWebTiDayQuotes/loadList1)r   
trade_type.application/json, text/javascript, */*; q=0.01gzip, deflatezh-CN,zh;q=0.9,en;q=0.8no-cache320application/x-www-form-urlencoded; charset=UTF-8www.gfex.com.cnhttp://www.gfex.com.cn
keep-alive0http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtmloMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36XMLHttpRequest!application/x-www-form-urlencodedAcceptzAccept-EncodingzAccept-LanguagezCache-ControlzContent-LengthzContent-TypeHostOriginPragmazProxy-ConnectionRefererz
User-AgentzX-Requested-Withzcontent-typer,   r   r,   r-      商品名称rF   rG   r2   r3   rH   rI   rL   r{   r<   r=   r@   rA   r6   r7   r>   r?   r8   r9   r0   r1   rJ   rK   
delivMonth   合约名称r4   r5   r:   r;   varietyOrderu   品种代码rD   rE   rB   rC   TrN   )r   r   r1   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   rI   rK   r{   r   )r   r   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r+   r^   r`   r   r   )
r
   r   re   rf   rg   rh   r   ri   rj   rk   s
             rn   option_hist_gfexr     sa    ~~H&0&<,z
"
"
"(-BUBUBWBWC
||HX--&h)?)??@@@|~~
FC \\(333GGGB*4#J!*(E),; G" 	c999AIl9V,--GNN
~
&
 K
 	

  !2
 H
 W
 [
 Y
 
 K
 ;
 .
 ;
 +
  N!
" K#
$ k%
 
( +    . 	
 	
 	
G* gn-1::6BBCG4000Nrp   	   碳酸锂c                    dddd}t                      }|t          |          nt          j                                        }|                    d          |vr,t          j        d|                    d          z             dS d}d	|                    d          i}d
dddddddddddddd}t          j	        |||          }|
                                }	t          j        |	d                   }
|
                    ddddd           |
ddg         }
|
|
d         j                            ||                             }
|
                    dd            |
S )!uD  
    广州期货交易所-日频率-合约隐含波动率
    http://www.gfex.com.cn/gfex/rihq/hqsj_tjsj.shtml
    :param symbol: choice of choice of {"工业硅", "碳酸锂"}
    :type symbol: str
    :param trade_date: 交易日
    :type trade_date: str
    :return: 日频行情数据
    :rtype: pandas.DataFrame
    silcps)r   r   	   多晶硅Nr   r    zGhttp://www.gfex.com.cn/u/interfacesWebTiDayQuotes/loadListOptVolatilityr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r   -r{   )seriesIdr*   hisVolatilityTrN   r   )r   r   rT   rU   rV   rW   rX   rY   r\   r]   r+   rZ   r[   r^   r`   r   r   )r
   r   symbol_code_mapre   rf   rg   rh   r   ri   rj   rk   s              rn   option_vol_gfexr
  Q  s     O
 ~~H&0&<,z
"
"
"(-BUBUBWBWC
||HX--&h)?)??@@@
SCS\\(334GB*4#J!*(E),; G" 	c999AIl9V,--GNN&.
 

      	
G gn-1::?6;RSSTG4000Nrp   __main__20250812)r
   r   u   天胶期权20250801r  20250123)r   r	   )r   r   )r   r   )r   r   )r   r   )__doc__rT   rX   ior   pandasrZ   r\   akshare.option.consr   r   r   r   r`   r[   ro   r   r   r   r   r   r
  __name__option_hist_czce_dfprintoption_hist_dce_dfoption_hist_shfe_dfoption_vol_shfe_dfoption_hist_gfex_dfoption_vol_gfex_dfr   rp   rn   <module>r     s                            8Bs ss14s\s s s sl" " "L 5?o oo.1o\o o o of 2<M MM+.M\M M M Mb 2<8 88+.8\8 8 8 8x 2<V VV+.V\V V V Vr; ;C ;3 ; ; ; ;| z**.ZXXX	E
(0AjYYY	E
**.ZXXX	E
(:VVV	E
**+*UUU	E
(
SSS	E
# rp   