mirror of
https://github.com/wassname/options_backtester.git
synced 2026-06-27 16:46:04 +08:00
fixed
This commit is contained in:
@@ -11,7 +11,18 @@ class OptionMetricsData:
|
|||||||
if schema is None:
|
if schema is None:
|
||||||
self.schema = OptionMetricsData.default_schema()
|
self.schema = OptionMetricsData.default_schema()
|
||||||
|
|
||||||
self._data = load_for_tickers(tickers).reset_index()
|
self._data = load_for_tickers(tickers).reset_index().rename(columns={'secid': 'underlying',
|
||||||
|
'forward_price': 'underlying_last',
|
||||||
|
'optionid': 'contract',
|
||||||
|
'cp_flag': 'type',
|
||||||
|
'exdate': 'expiration',
|
||||||
|
'strike_price': 'strike',
|
||||||
|
'best_bid': 'bid',
|
||||||
|
'best_offer': 'ask',
|
||||||
|
'open_interest': 'open_interest',
|
||||||
|
'impl_volatility': 'impliedvol'})
|
||||||
|
self._data['type'] = self._data['type'].replace('C', 'call').replace('P', 'put')
|
||||||
|
self._data['contract'] = self._data['contract'].astype(str)
|
||||||
# self._data['date']=self._data.date.dt.tz_localize('utc')
|
# self._data['date']=self._data.date.dt.tz_localize('utc')
|
||||||
# self._data['exdate']=self._data['exdate'].dt.tz_localize('utc')
|
# self._data['exdate']=self._data['exdate'].dt.tz_localize('utc')
|
||||||
# print(self._data.head(5))
|
# print(self._data.head(5))
|
||||||
@@ -80,32 +91,23 @@ class OptionMetricsData:
|
|||||||
def default_schema():
|
def default_schema():
|
||||||
"""Returns default schema for Historical Options Data"""
|
"""Returns default schema for Historical Options Data"""
|
||||||
schema = Schema.options()
|
schema = Schema.options()
|
||||||
schema.update({
|
# schema.update({
|
||||||
'underlying': 'secid',
|
# 'underlying': 'secid',
|
||||||
'underlying_last': 'forward_price', #last price of underlying
|
# 'underlying_last': 'forward_price', #last price of underlying
|
||||||
'date': 'date',
|
# 'date': 'date',
|
||||||
'contract': 'optionid',
|
# 'contract': 'optionid',
|
||||||
'type': 'cp_flag',
|
# 'type': 'cp_flag',
|
||||||
'expiration': 'exdate',
|
# 'expiration': 'exdate',
|
||||||
'strike': 'strike_price',
|
# 'strike': 'strike_price',
|
||||||
'bid': 'best_bid',
|
# 'bid': 'best_bid',
|
||||||
'ask': 'best_offer',
|
# 'ask': 'best_offer',
|
||||||
'volume': 'volume',
|
# 'volume': 'volume',
|
||||||
'open_interest': 'open_interest',
|
# 'open_interest': 'open_interest',
|
||||||
'last': 'forward_price',
|
# 'last': 'forward_price',
|
||||||
'impliedvol': 'impl_volatility',
|
# 'impliedvol': 'impl_volatility',
|
||||||
'vega': 'vega',
|
# 'vega': 'vega',
|
||||||
'delta': 'delta',
|
# 'delta': 'delta',
|
||||||
'gamma': 'gamma',
|
# 'gamma': 'gamma',
|
||||||
'theta': 'theta',
|
# 'theta': 'theta',
|
||||||
})
|
# })
|
||||||
return schema
|
return schema
|
||||||
|
|
||||||
|
|
||||||
# Index(['symbol', 'symbol_flag', 'exdate', 'last_date', 'cp_flag',
|
|
||||||
# 'strike_price', 'best_bid', 'best_offer', 'volume', 'open_interest',
|
|
||||||
# 'impl_volatility', 'delta', 'gamma', 'vega', 'theta', 'optionid',
|
|
||||||
# 'cfadj', 'am_settlement', 'contract_size', 'ss_flag', 'forward_price',
|
|
||||||
# 'expiry_indicator', 'root', 'suffix', 'secid'],
|
|
||||||
# dtype='object')
|
|
||||||
# Schema([Field(name='underlying', mapping='underlying'), Field(name='underlying_last', mapping='underlying_last'), Field(name='date', mapping='quotedate'), Field(name='contract', mapping='optionroot'), Field(name='type', mapping='type'), Field(name='expiration', mapping='expiration'), Field(name='strike', mapping='strike'), Field(name='bid', mapping='bid'), Field(name='ask', mapping='ask'), Field(name='volume', mapping='volume'), Field(name='open_interest', mapping='openinterest'), Field(name='last', mapping='last'), Field(name='impliedvol', mapping='impliedvol'), Field(name='delta', mapping='delta'), Field(name='gamma', mapping='gamma'), Field(name='theta', mapping='theta'), Field(name='vega', mapping='vega')])
|
|
||||||
|
|||||||
Reference in New Issue
Block a user