Ошибка ключа с датой и временем в python. Ошибка метки времени, хотя используется только дата и время - PullRequest
0 голосов
/ 07 апреля 2020

KeyError: Timestamp ('2018-01-01 00:00:00') - это ошибка, возникающая из-за следующего кода, я не совсем уверен, почему я получаю ошибку отметки времени, когда все даты являются целыми или в настоящее время Я попытался использовать целые числа и попытаться сделать дату и время даты, где это было необходимо, но все еще не работает. Функция MACD () работает сама по себе, только когда в течение l oop возникают ошибки.

def macd(input):

day_input = input
d = (day_input - BDay(1)).to_pydatetime()
d100 = (day_input - BDay(100)).to_pydatetime()

AAPL_closed = AAPL_stock[['Adj Close']]
AAPL_closed.columns = ['y']
AAPL_snippet = AAPLClosed[d100:d]

stock_12day = AAPL_snippet.y.ewm(span=12, adjust=False).mean()
stock_26day = AAPL_snippet.y.ewm(span=26, adjust=False).mean()
macd_value = (stock_12day - stock_26day)
signal_line = macd_value.ewm(span=9, adjust=False).mean()[d]
macd_value = macd_value[d]

if macd_value > 1.1 * signal_line:
    signal = "Buy"
elif abs(abs(macd_value) - abs(signal_line)) < abs(1.1 * signal_line):
    signal = "Hold"
else:
    signal = "Sell"

print(signal)


def Backtest(start_year, start_month, start_day, end_year, end_month, end_day):
startdate = datetime.datetime(start_year, start_month, start_day)
enddate = datetime.datetime(end_year, end_month, end_day)

length = (end_date - start_date).days
noOfStocksOwned = 0
Cash = 100000
Invested = 0
PortfolioValue = list()

for i in range(0, length):

    dayToUse = (start_date + BDay(i)).to_pydatetime()
    print(type(day_to_use))

    MACD(day_to_use)


Backtest(2018, 1, 1, 2018, 1, 30)
...