Ошибка : 'DataFrame' object has no attribute 'time'

Рудик

Новичок
Пользователь
Янв 24, 2022
1
0
1
Screenshot_27.png
Код выдает ошибку " время". Пробовал вводить где (х , '%m/%d/%Y') 01-24-2022 -- не помогло.
Ниже часть рабочего кода от первоисточника ,
и файл CNDR_History.csv с данными , где надо в строке: In [5] cndr = pd.read_csv('static/CNDR_Data.csv')
Tак-же , ссылка на оригинал : https://github.com/pangyuteng/aigonewrong/blob/main/finance/basics/cboe-cndr-replica.ipynb Заранее Спасибо за помощь!

Код:
CBOE CNDR Replica
Below is an attempt to replicate the CBOE's CNDR index
based on the implementation described in their white paper.

http://www.cboe.com/index/dashboard/cndr#cndr-overview
https://www.cboe.com/publish/micropdf/CBOE-SP500-Iron-Condor-CNDR-Methodology-Paper.pdf
https://cdn.cboe.com/api/global/us_indices/governance/CNDR_Methodology.pdf

deviations:

+ option prices are replaced with estimated price using BSM.
+ sigma in BSM is just average of realized and implied vol
+ underlying price is also estimated using open close price.
+ strike at .2 and .05 delta not used instead using 1sd and 2sd based on rolling 21-day price return sd.
+ no liquidation at 10% drawdown (can't find it anymore on the updated paper)
+ added constant to match cndr index. (don't really like this deviation)
import datetime
import numpy as np
import pandas as pd
import yfinance as yf
from py_vollib.ref_python.black_scholes_merton import black_scholes_merton

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
import datetime as dt
from pandas.tseries.holiday import USFederalHolidayCalendar

cal = USFederalHolidayCalendar()
start_date = '1980-1-1'
future_date = datetime.datetime.now().date()+datetime.timedelta(days=45)
end_date = future_date.strftime('%Y-%m-%d')
print(start_date,end_date)
1980-1-1 2021-01-22
def get_business_day(date):
    while date.isoweekday() != 5 or date in cal.holidays():
        date += dt.timedelta(days=1)
    return date.date()

last_friday_of_month = [get_business_day(d) for d in pd.date_range(start_date, end_date, freq='BM')]
# download and read CNDR index from CBOE website
cndr = pd.read_csv('static/CNDR_Data.csv')
cndr.index=[datetime.datetime.strptime(x,'%m/%d/%Y').date() for x in cndr.time]
cndr=cndr.drop(columns=['time','volume','open','high','low'])
cndr=cndr.rename(columns={'close':'cndr'})
cndr.cndr = cndr.cndr.ffill()
cndr['cndr_r'] = cndr.cndr.pct_change(1)
cndr.head()
cndr    cndr_r
1986-06-20    100.0    NaN
1986-06-23    100.0    0.0
1986-06-24    100.0    0.0
1986-06-25    100.0    0.0
1986-06-26    100.0    0.0
 

Вложения

  • zipped.zip
    43 КБ · Просмотры: 0
Последнее редактирование:

Форум IT Специалистов