gpt4 book ai didi

python - 反向交易者错误 : 'DataFrame' object has no attribute 'setenvironment'

转载 作者:行者123 更新时间:2023-12-04 12:24:14 36 4
gpt4 key购买 nike

我是 backtrader 的新手,我有一个大问题。我想开始我的策略(只是一个简单的 GoldenCross 策略)。这个 GoldenCross.py 脚本如下所示:

import math
import backtrader as bt



class GoldenCross(bt.Strategy):
params = (("fast", 50),
("slow", 200),
("order percentage", 0.95),
("ticker", "AAPL"))

def __init__(self):
self.fast_moving_average = self.bt.indicators.SmoothedMovingAverage(
self.data.close,
period=self.p.fast,
plotname="50 day moving average")
self.slow_moving_average = self.bt.indicators.SmoothedMovingAverage(
self.data.close,
period=self.p.slow,
plotname="200 day moving average")
self.crossover = self.bt.indicators.crossover(self.fast_moving_average, self.slow_moving_average)

def next(self):
pass

现在我想用我的 run.py 脚本运行策略。在此脚本中,代码如下所示:
import os, sys, argparse
import pandas as pd
import backtrader as bt
from Strategien.GoldenCross import GoldenCross
import datetime



cerebro = bt.Cerebro()
cerebro.broker.setcash(100000)

symbol = "AAPL"
path = "/Users/me/Desktop/allgemein/Visual Studio/Stock Data/S&P500 Aktien 1H/" + symbol + ".csv"
stock_prices = pd.read_csv(path)


feed = bt.feeds.PandasData(dataname=stock_prices)
#(dataname=stock_prices)
cerebro.adddata(stock_prices)

cerebro.addstrategy(GoldenCross)
cerebro.run()
cerebro.plot()

现在 Visual Studio 编译器给了我一个 错误 被称为: “AttributeError: 'DataFrame' 对象没有属性 'setenvironment'” .

我不知道有什么问题。 Maby 问题出在我的 csv 数据中。我的日期列如下所示:
     Unnamed: 0                      date    close     high      low     open
0 0 2017-01-03T15:00:00.000Z 115.450 115.815 115.400 115.600
1 1 2017-01-03T16:00:00.000Z 115.370 115.670 115.135 115.450
2 2 2017-01-03T17:00:00.000Z 115.470 115.525 115.270 115.365
3 3 2017-01-03T18:00:00.000Z 115.235 115.495 115.235 115.475
4 4 2017-01-03T19:00:00.000Z 115.435 115.445 115.160 115.235
... ... ... ... ... ... ...

但我已经尝试使用以下方法将此日期转换为日期时间:
stock_prices['date'] = pd.to_datetime(stock_prices['date']) #object to datetime

但这也改变不了问题。。

有没有人对我有好的建议?

此致
基督教

最佳答案

必须添加数据提要(不是 stock_prices)
feed = bt.feeds.PandasData(dataname=stock_prices)
cerebro.adddata(股票价格)

feed = bt.feeds.PandasData(dataname=stock_prices)
cerebro.adddata(feed)
对我来说,如果您将日期时间设置为索引并解析日期时间,这将起作用
stock_prices = pd.read_csv(path, index_col='datetime', parse_dates=True)

关于python - 反向交易者错误 : 'DataFrame' object has no attribute 'setenvironment' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62301378/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com