gpt4 book ai didi

python - 获取 JSONDecodeError : Expecting value: line 1 column 1 (char 0) with Python + Zipline + Docker + Jupyter

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:13 26 4
gpt4 key购买 nike

我使用 Docker 安装了 Zipline 和 Jupyter: https://github.com/quantopian/zipline/blob/master/Dockerfile

我现在尝试在 Jupyter 下运行以下 Zipline 代码

%%zipline --bundle quantopian-quantl --start 2008-1-1 --end 2012-1-1 -o strat.pickle

from zipline.api import symbol, order, record

def initialize(context):
pass

def handle_data(context, data):
order(symbol('AAPL'), 10)
record(AAPL=data[symbol('AAPL')].price)

我得到的错误信息是:

**JSONDecodeError: Expecting value: line 1 column 1 (char 0)**

这是错误的图片: enter image description here

再次,当我尝试运行该程序时会发生这种情况。

可能是什么问题?非常感谢任何帮助、提示或建议!

TIA

附录:我也试过这个: https://docs.google.com/document/d/1mvZO_JDirbJNXJfM0bTS9uMipHE5cfSGFj0sUpJIcsw/edit?usp=sharing

最佳答案

我知道这个问题已经解决了,但我尝试了他们在 github 问题上提供的内容,但对我没有帮助,所以我决定展示我是如何解决我的问题的。也许它会对你有所帮助。

问题出在 zipline 的 benchmark.py 文件(和其他几个文件)中,它试图从 iex 获取数据但由于其功能更改而失败。

我将向您展示我为使示例代码运行所做的工作:

(我假设您已经安装了 zipline 并运行了 apple buying 示例代码)

1.benchmark.py:查看计算机中的 zipline 文件夹(已下载或安装的 pip/conda)。打开 benchmark.py(首先找到它)并编辑它,将那里的整个代码更改为:

import numpy as np
import pandas as pd
import pandas_datareader.data as pd_reader
def get_benchmark_returns(symbol, first_date, last_date):
data = pd_reader.DataReader(
symbol,
'yahoo',
first_date,
last_date
)

data = data['Close']

data[pd.Timestamp('2008-12-15')] = np.nan
data[pd.Timestamp('2009-08-11')] = np.nan
data[pd.Timestamp('2012-02-02')] = np.nan

data = data.fillna(method='ffill')

return data.sort_index().tz_localize('UTC').pct_change(1).iloc[1:]

此代码取自 shlomikushchi github page 的回答关于这个问题。这里 shlomikushchi 将数据源从 iex 切换到 pandas,yahoo。

2.接下来,打开文件:loaders.py,也在zipline的某处:

那里有一行他们调用函数:(在代码中寻找这个)

data = get_benchmark_returns(符号

将其更改为:

 data = get_benchmark_returns(symbol,first_date, last_date)

3.打开 trading.py ,也在 zipline 文件夹中的某处,在这一行之后:

class SimulationParameters(object):
def __init__(self, start_session, end_session,
trading_calendar,
capital_base=DEFAULT_CAPITAL_BASE,
emission_rate='daily',
data_frequency='daily',
arena='backtest'):

输入这些行:

start_session = pd.Timestamp(start_session).tz_localize(tz='US/Central')
end_session = pd.Timestamp(end_session).tz_localize(tz='US/Central')

现在当您运行这里的代码时它应该可以工作了:

https://www.zipline.io/beginner-tutorial.html

关于python - 获取 JSONDecodeError : Expecting value: line 1 column 1 (char 0) with Python + Zipline + Docker + Jupyter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56957791/

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